Skip to content

Commit 76d3fc5

Browse files
committed
BEYONDWORM-124 서버 UI 사용자 친화적으로 변경
1 parent c5f2abc commit 76d3fc5

1 file changed

Lines changed: 20 additions & 20 deletions

File tree

‎web-io-game/src/LoginScene.ts‎

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -103,37 +103,37 @@ export default class LoginScene extends Phaser.Scene {
103103
const response = await fetch(`${lobbyServerUrl}/servers`);
104104
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
105105

106-
const serversJson: Record<string, GameServer> = await response.json();
107-
const serverMap = new Map<string, GameServer>(Object.entries(serversJson));
106+
const servers = (await response.json()) as GameServer[];
108107

109-
if (serverMap.size > 0) {
110-
this.updateServerListUI(serverMap, serverListElement);
108+
if (servers.length > 0) {
109+
this.updateServerListUI(servers, serverListElement);
111110
} else {
112-
serverListElement.innerHTML = '<li class="server-empty">No active servers right now.</li>';
111+
serverListElement.innerHTML = '<li class="server-empty">현재 접속 가능한 서버가 없습니다.</li>';
113112
}
114113
} catch (error) {
115114
console.error("Failed to fetch server list:", error);
116-
serverListElement.innerHTML = '<li class="server-empty server-error">Failed to load server list.</li>';
115+
serverListElement.innerHTML = '<li class="server-empty server-error">서버 목록을 불러오지 못했습니다.</li>';
117116
}
118117
}
119118

120-
private updateServerListUI(serverMap: Map<string, GameServer>, serverListElement: HTMLUListElement) {
119+
private updateServerListUI(servers: GameServer[], serverListElement: HTMLUListElement) {
121120
serverListElement.innerHTML = ""; // 기존 목록 삭제
122121

123-
serverMap.forEach((server, name) => {
124-
const listItem = document.createElement("li");
125-
listItem.className = "server-item";
126-
listItem.textContent = `${name} • ${server.playerCount} online`;
127-
128-
listItem.addEventListener("click", () => {
129-
this.selectedServer = server;
130-
// 선택된 항목 강조
131-
serverListElement.querySelectorAll("li").forEach((li) => {
132-
li.classList.remove("selected");
122+
servers
123+
.forEach((server, index) => {
124+
const listItem = document.createElement("li");
125+
listItem.className = "server-item";
126+
listItem.textContent = `${index + 1}번 서버 · 현재 ${server.playerCount}명 접속중`;
127+
128+
listItem.addEventListener("click", () => {
129+
this.selectedServer = server;
130+
// 선택된 항목 강조
131+
serverListElement.querySelectorAll("li").forEach((li) => {
132+
li.classList.remove("selected");
133+
});
134+
listItem.classList.add("selected");
133135
});
134-
listItem.classList.add("selected");
136+
serverListElement.appendChild(listItem);
135137
});
136-
serverListElement.appendChild(listItem);
137-
});
138138
}
139139
}

0 commit comments

Comments
 (0)