'use client'; import { useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import Link from 'next/link'; export default function AdminLayout({ children, }: { children: React.ReactNode; }) { const router = useRouter(); const [admin, setAdmin] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { const token = localStorage.getItem('admin_token'); if (!token) { router.push('/admin/login'); return; } // Verify token fetch('/api/admin/auth/verify', { headers: { Authorization: `Bearer ${token}`, }, }) .then((res) => { if (!res.ok) { router.push('/admin/login'); return; } return res.json(); }) .then((data) => { if (data) setAdmin(data); setLoading(false); }) .catch(() => { router.push('/admin/login'); }); }, [router]); if (loading) { return (
); } if (!admin) return null; return (
{children}
); }