'use client'; import React, { useState } from 'react'; import { motion } from 'framer-motion'; interface LobbyProps { onCreateRoom: (playerName: string) => void; onJoinRoom: (roomId: string, playerName: string) => void; onStartAI: (playerName: string) => void; roomId: string | null; } export function Lobby({ onCreateRoom, onJoinRoom, onStartAI, roomId }: LobbyProps) { const [playerName, setPlayerName] = useState(''); const [joinRoomId, setJoinRoomId] = useState(''); const [mode, setMode] = useState<'menu' | 'create' | 'join' | 'ai'>('menu'); const handleCreate = () => { if (!playerName.trim()) return; onCreateRoom(playerName); }; const handleJoin = () => { if (!playerName.trim() || !joinRoomId.trim()) return; onJoinRoom(joinRoomId.toUpperCase(), playerName); }; const handleAI = () => { if (!playerName.trim()) return; onStartAI(playerName); }; if (mode === 'menu') { return (
Online Multiplayer Game
Built with Next.js, Canvas & Socket.IO