class LoginScreen extends HTMLElement {
constructor() {
super();
this.app = null;
}
connectedCallback() {
this.innerHTML = `
`;
const input = this.querySelector('#nicknameInput');
const button = this.querySelector('#startButton');
// Enter key to submit
input.addEventListener('keypress', (e) => {
if (e.key === 'Enter') {
this.startGame();
}
});
button.addEventListener('click', () => this.startGame());
// Focus input
setTimeout(() => input.focus(), 100);
}
startGame() {
const input = this.querySelector('#nicknameInput');
const nickname = input.value.trim();
if (!nickname) {
alert('Please enter a nickname');
return;
}
if (nickname.length < 2) {
alert('Nickname must be at least 2 characters');
return;
}
if (this.app) {
this.app.startGame(nickname);
}
}
}
customElements.define('login-screen', LoginScreen);