'use client'; // Mark as a Client Component import { useState, useEffect } from 'react'; import { useSession } from 'next-auth/react'; import { useRouter } from 'next/navigation'; import { startHuntTimer, getHuntStatus } from '../actions/auth'; export default function Admin() { const { data: session, status } = useSession(); const [timerActive, setTimerActive] = useState(false); const [loading, setLoading] = useState(true); const [error, setError] = useState(''); const router = useRouter(); // Load timer status on page load useEffect(() => { async function loadTimerStatus() { try { const status = await getHuntStatus(); setTimerActive(status.active); } catch (err) { console.error('Failed to load timer status:', err); setError('Failed to load timer status'); } finally { setLoading(false); } } if (status === 'authenticated') { loadTimerStatus(); } }, [status]); // Check if user is admin useEffect(() => { if (status === 'authenticated' && session?.user?.role !== 'admin') { router.push('/'); } }, [session, status, router]); // Handle access denied and loading states if (status === 'loading' || loading) { return
Status: {timerActive ? 'Active' : 'Inactive'}
{error}
}