import { useState } from "react" import { useLocation } from "wouter" import { Button } from "@workspace/ui/components/button" import { useRoomStore } from "@/store/room" const inputClass = "border-input bg-background ring-offset-background focus-visible:ring-ring h-10 w-full rounded-md border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:outline-none disabled:opacity-50" export function HomePage() { const [, navigate] = useLocation() const createRoom = useRoomStore((s) => s.createRoom) const joinRoom = useRoomStore((s) => s.joinRoom) const connected = useRoomStore((s) => s.connected) const [name, setName] = useState("") const [code, setCode] = useState("") const [error, setError] = useState(null) const [busy, setBusy] = useState(false) const canSubmit = name.trim().length > 0 && connected && !busy async function handleCreate() { setError(null) setBusy(true) try { const { roomCode } = await createRoom(name.trim()) navigate(`/room/${roomCode}`) } catch (err) { setError((err as { message?: string }).message ?? "Erreur") } finally { setBusy(false) } } async function handleJoin() { setError(null) setBusy(true) try { const { roomCode } = await joinRoom(code.trim().toUpperCase(), name.trim()) navigate(`/room/${roomCode}`) } catch (err) { setError((err as { message?: string }).message ?? "Erreur") } finally { setBusy(false) } } return (

NerdWare

Party game culture geek

setName(e.target.value)} />
ou rejoindre
setCode(e.target.value)} />
{!connected && (

Connexion au serveur…

)} {error && (

{error}

)}
) }