"use client"; import { useState } from "react"; import { useSoloGame } from "../lib/useSoloGame"; import { useMultiGame } from "../lib/useMultiGame"; import { useGameEffects } from "../lib/useGameEffects"; import { useGameHandlers } from "../lib/useGameHandlers"; import { fmt } from "../lib/utils"; import type { Screen } from "../lib/types"; import { HomeScreen } from "./components/HomeScreen"; import { LobbyScreen } from "./components/LobbyScreen"; import { SoloScreen } from "./components/SoloScreen"; import { GameScreen } from "./components/GameScreen"; import { AuthModal } from "./components/AuthModal"; import { ProfileScreen } from "./components/ProfileScreen"; export default function WikiRush() { const [screen, setScreen] = useState("home"); const [playerName, setPlayerName] = useState(""); const [joinCode, setJoinCode] = useState(""); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); const [showAuth, setShowAuth] = useState(false); const solo = useSoloGame(); const multi = useMultiGame(); const { session } = useGameEffects({ solo, multi, screen, setScreen, setPlayerName }); const handlers = useGameHandlers({ solo, multi, playerName, joinCode, setScreen, setError, setLoading }); if (screen === "profile") return ( setScreen("home")} /> ); if (screen === "home") return ( <> setShowAuth(true)} onShowProfile={() => setScreen("profile")} /> {showAuth && setShowAuth(false)} onSuccess={() => setShowAuth(false)} />} ); if (screen === "solo") return ( { solo.reset(); setScreen("home"); }} onNewGame={solo.start} onRetry={solo.retryLoad} /> ); if (screen === "lobby" && multi.room && multi.playerId) return ( ); if (screen === "game" && multi.room && multi.playerId) return ( ); return null; }