import { headers } from 'next/headers'; import { redirect } from 'next/navigation'; import { createRouteGuard } from '@/lib/auth/createRouteGuard'; import Section from '@/ui/Section'; interface AdminLayoutProps { children: React.ReactNode; } /** * Admin Layout * * Provides role-based protection for admin routes. * Uses RouteGuard to enforce access control server-side. */ export default async function AdminLayout({ children }: AdminLayoutProps) { const headerStore = await headers(); const pathname = headerStore.get('x-pathname') || '/'; const guard = createRouteGuard(); const result = await guard.enforce({ pathname }); if (result.type === 'redirect') { redirect(result.to); } return (
{children}
); }