'use client'; // Mark as a Client Component import { useState } from 'react'; import { useSession } from 'next-auth/react'; import { useRouter } from 'next/navigation'; import { joinTeam } from '../../actions/auth'; export default function TeamSelection() { const { data: session, status } = useSession(); const [teamCode, setTeamCode] = useState(''); const [error, setError] = useState(''); const [isLoading, setIsLoading] = useState(false); const router = useRouter(); // Redirect if not authenticated if (status === 'unauthenticated') { router.push('/login'); return null; } // Redirect if user is admin if (status === 'authenticated' && session?.user?.role === 'admin') { router.push('/admin'); return null; } const handleJoinTeam = async (e) => { e.preventDefault(); setIsLoading(true); setError(''); try { const result = await joinTeam(session.user.id, teamCode); if (result.success) { router.push(`/team/${result.teamId}`); } else { setError(result.error || 'Team not found'); } } catch (err) { setError('An unexpected error occurred'); console.error(err); } finally { setIsLoading(false); } }; if (status === 'loading') { return
Loading...
; } return (

Team Selection

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

{error}

}
Create a new team
); }