import { useEffect, type ReactNode } from "react"; import { useNavigate } from "@tanstack/react-router"; import { useAuth } from "@/lib/auth"; import { AppShell } from "@/components/app-shell"; import { Loader2 } from "lucide-react"; export function ProtectedLayout({ children, adminOnly }: { children: ReactNode; adminOnly?: boolean }) { const { loading, session, isAdmin } = useAuth(); const navigate = useNavigate(); useEffect(() => { if (loading) return; if (!session) { navigate({ to: "/login" }); } else if (adminOnly && !isAdmin) { navigate({ to: "/" }); } }, [loading, session, isAdmin, adminOnly, navigate]); if (loading || !session || (adminOnly && !isAdmin)) { return (
); } return {children}; }