Szabo Ivan c168da359e implement complete frontend:
- add lobby, game, leaderboard, results pages
- add scripts: storage, lobby, game, drawing, scoring, countries
- add styles: main, lobby, game
- unify header/footer across all pages
- show lobby name in lobby view
- remove clear board from leaderboard
2026-05-05 13:01:14 +02:00

48 lines
1.3 KiB
JavaScript

// lobby.js
document.addEventListener("DOMContentLoaded", () => {
const input = document.getElementById("username");
const btn = document.getElementById("btn-start");
const errMsg = document.getElementById("name-error");
// Show lobby name
const lobbyNameEl = document.getElementById("lobby-name-display");
if (lobbyNameEl) {
lobbyNameEl.textContent = Storage.getLobbyName();
}
btn.addEventListener("click", () => {
const name = input.value.trim();
if (!name) {
errMsg.textContent = "Please enter a username to continue.";
input.classList.add("input--error");
input.focus();
return;
}
if (name.length < 2) {
errMsg.textContent = "Username must be at least 2 characters.";
input.classList.add("input--error");
input.focus();
return;
}
Storage.savePlayerName(name);
Storage.clearGameState();
location.href = "game.html";
});
input.addEventListener("input", () => {
errMsg.textContent = "";
input.classList.remove("input--error");
});
input.addEventListener("keydown", (e) => {
if (e.key === "Enter") btn.click();
});
// Pre-fill if returning player
const existing = Storage.getPlayerName();
if (existing && existing !== "Anonymous") {
input.value = existing;
}
});