Newer
Older
navi-1 / templates / index.html
@Eugene Sukhodolskiy Eugene Sukhodolskiy on 25 Apr 2 KB ?
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Animals at War - Lobby</title>
    <link rel="stylesheet" href="/static/css/style.css">
    <script src="https://cdn.socket.io/4.7.2/socket.io.min.js"></script>
</head>
<body>
    <div id="lobby" class="container">
        <h1>Animals at War</h1>
        <div class="form-group">
            <input type="text" id="nickname" placeholder="Enter your nickname" maxlength="20">
        </div>
        <div class="actions">
            <button id="btn-create" class="btn btn-primary">Create New Game</button>
        </div>
        <div id="room-info" class="hidden">
            <p>Share this link with your friend:</p>
            <input type="text" id="share-link" readonly>
            <button id="btn-copy" class="btn btn-secondary">Copy Link</button>
        </div>
        <div id="error-msg" class="error"></div>
    </div>

    <script>
        const socket = io();
        const nicknameInput = document.getElementById('nickname');
        const btnCreate = document.getElementById('btn-create');
        const roomInfo = document.getElementById('room-info');
        const shareLink = document.getElementById('share-link');
        const btnCopy = document.getElementById('btn-copy');
        const errorMsg = document.getElementById('error-msg');

        btnCreate.onclick = () => {
            const nickname = nicknameInput.value.trim();
            if (!nickname) {
                errorMsg.innerText = "Please enter a nickname";
                return;
            }
            socket.emit('create_game', { nickname: nickname });
        };

        socket.on('game_created', (data) => {
            const url = window.location.origin + '/game/' + data.room_id;
            shareLink.value = url;
            roomInfo.classList.remove('hidden');
            // Store token for reconnection
            localStorage.setItem('player_token', data.player_token);
            localStorage.setItem('current_room', data.room_id);
            window.location.href = url;
        });

        btnCopy.onclick = () => {
            shareLink.select();
            document.execCommand('copy');
            alert('Link copied to clipboard!');
        };

        socket.on('error', (data) => {
            errorMsg.innerText = data.message;
        });
    </script>
</body>
</html>