'use client'; import { useSession } from 'next-auth/react'; import { useState, useEffect } from 'react'; const ACTIVE_CLUB_KEY = 'activeClubId'; export interface ActiveClubData { activeClubId: string | null; role: string | null; clubs: Record | null; setActiveClub: (clubId: string) => void; } export function useActiveClub(): ActiveClubData { const { data: session, status } = useSession(); const [activeClubId, setActiveClubIdState] = useState(null); useEffect(() => { if (status === 'authenticated' && session?.user?.clubs) { const clubs = session.user.clubs; const storedClubId = localStorage.getItem(ACTIVE_CLUB_KEY); if (storedClubId && clubs[storedClubId]) { setActiveClubIdState(storedClubId); } else { const firstClubId = Object.keys(clubs)[0]; if (firstClubId) { setActiveClubIdState(firstClubId); } } } }, [session, status]); const setActiveClub = (clubId: string) => { if (session?.user?.clubs && session.user.clubs[clubId]) { localStorage.setItem(ACTIVE_CLUB_KEY, clubId); setActiveClubIdState(clubId); } }; const clubs = session?.user?.clubs || null; const role = activeClubId && clubs ? clubs[activeClubId] : null; return { activeClubId, role, clubs, setActiveClub, }; }