"use client"; import { useState, useEffect } from "react"; import { useSession } from "next-auth/react"; import { useRouter } from "next/navigation"; import Link from "next/link"; export default function TeamSelection() { const { data: session, status } = useSession(); const [teamCode, setTeamCode] = useState(""); const [error, setError] = useState(""); const [isLoading, setIsLoading] = useState(true); const router = useRouter(); useEffect(() => { if (status === "authenticated") { if (session.user.teamId) { router.push(`/team/${session.user.teamId}`); } else { setIsLoading(false); } } else if (status === "unauthenticated") { router.push("/login"); } }, [status, session, router]); const handleJoinTeam = async (e) => { e.preventDefault(); setIsLoading(true); setError(""); try { const response = await fetch("/api/join-team", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ teamCode }), }); const data = await response.json(); if (!response.ok) { throw new Error(data.error || "Failed to join team"); } router.push(`/team/${data.teamId}`); } catch (err) { setError(err.message); setIsLoading(false); } }; if (isLoading) { return
Loading...
; } return (
Team Selection

Join a Team

setTeamCode(e.target.value)} required className="auth-input" />
{error &&

{error}

}
🏠
📊
🏆
👤
); }