import { useEffect, useState } from 'react'; import { useRouter } from 'next/router'; import Layout from './Layout'; export default function AdminProtected({ children }) { const router = useRouter(); const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); const [accessDenied, setAccessDenied] = useState(false); useEffect(() => { checkAdminAccess(); }, []); const checkAdminAccess = async () => { try { const response = await fetch('/api/auth/verify'); if (response.ok) { const userData = await response.json(); if (userData.role === 'admin') { setUser(userData); setAccessDenied(false); } else { setAccessDenied(true); } } else { setAccessDenied(true); } } catch (error) { console.error('Admin auth check failed:', error); setAccessDenied(true); } finally { setLoading(false); } }; if (loading) { return (

Checking admin access...

); } if (accessDenied) { return (
🚫

Access Denied

You need administrator privileges to access this page.

); } return children; }