"use client"; import Link from "next/link"; import { SubmitEvent, useState } from "react"; import { useRouter } from "next/navigation"; import { usePathname } from "next/navigation"; import { useConnection } from "@/lib/connection"; import { cmd } from "@/lib/protocol"; export default function Nav() { const pathname = usePathname(); const router = useRouter(); const { status, role, username, send, becomePlayer, disconnect } = useConnection(); const [showPlayerModal, setShowPlayerModal] = useState(false); const [nextUsername, setNextUsername] = useState(username); const isConnectionPage = pathname === "/"; const disableRoleSwitch = status === "connecting" || status === "reconnecting"; const handleBecomeObserver = () => { send(cmd.disconnect()); router.push("/spectate"); }; const handleBecomePlayer = (event: SubmitEvent) => { event.preventDefault(); const trimmed = nextUsername.trim(); if (!trimmed) return; becomePlayer(trimmed); setShowPlayerModal(false); router.push("/play"); }; return ( <> {showPlayerModal && (

Become Player

Enter a username to connect as a player.

setNextUsername(event.target.value)} className="w-full bg-gray-800 border border-gray-600 rounded-lg px-3 py-2 text-sm text-white focus:border-blue-500 focus:outline-none" placeholder="Username" />
)} ); }