diff --git a/src/routes/_authenticated/route.tsx b/src/routes/_authenticated/route.tsx deleted file mode 100644 index c43a908..0000000 --- a/src/routes/_authenticated/route.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { createFileRoute, Link, Outlet, useNavigate, useRouterState } from "@tanstack/react-router"; -import { useAuth, highestRole } from "@/hooks/use-auth"; -import { supabase } from "@/integrations/supabase/client"; -import { Button } from "@/components/ui/button"; -import { - GraduationCap, LayoutDashboard, Users, ClipboardCheck, Receipt, - MessageSquare, FileText, CalendarDays, Settings, LogOut, Loader2, BookOpen, ClipboardList, Printer, Mail -} from "lucide-react"; -import { useEffect } from "react"; - -export const Route = createFileRoute("/_authenticated")({ - ssr: false, - component: ProtectedLayout, -}); - -function ProtectedLayout() { - const { user, roles, loading } = useAuth(); - const navigate = useNavigate(); - const path = useRouterState({ select: (s) => s.location.pathname }); - - useEffect(() => { - if (!loading && !user) navigate({ to: "/auth" }); - }, [loading, user, navigate]); - - if (loading || !user) { - return
; - } - - const role = highestRole(roles); - const isAdmin = roles.includes("admin"); - - const nav = [ - { to: "/dashboard", label: "Dashboard", icon: LayoutDashboard, show: true }, - { to: "/students", label: "Students", icon: Users, show: true }, - { to: "/classes", label: "Classes", icon: BookOpen, show: isAdmin || roles.includes("teacher") }, - { to: "/attendance", label: "Attendance", icon: ClipboardCheck, show: isAdmin || roles.includes("teacher") }, - { to: "/plans", label: "504 / IEP", icon: ClipboardList, show: isAdmin || roles.includes("teacher") }, - { to: "/reports", label: "Reports", icon: Printer, show: isAdmin || roles.includes("teacher") }, - { to: "/ledger", label: "Tuition", icon: Receipt, show: true }, - { to: "/messages", label: "Messages", icon: MessageSquare, show: true }, - { to: "/mail", label: "Mail", icon: Mail, show: isAdmin || roles.includes("teacher") }, - { to: "/forms", label: "Forms", icon: FileText, show: true }, - { to: "/calendar", label: "Calendar", icon: CalendarDays, show: true }, - { to: "/admin", label: "Admin", icon: Settings, show: isAdmin }, - ]; - - const signOut = async () => { - await supabase.auth.signOut(); - navigate({ to: "/auth" }); - }; - - return ( -
- -
-
- ); -}