import { Routes, Route, Navigate } from "react-router-dom"; import { AuthProvider, useAuth } from "@/context/Auth"; import { AppShell } from "@/components/AppShell"; import { LoadingState } from "@/components/ui"; import { DashboardPage } from "@/pages/Dashboard"; import { AttendancePage } from "@/pages/Attendance"; import { ProjectsPage } from "@/pages/Projects"; import { ProjectDetailPage } from "@/pages/ProjectDetail"; import { IncentivePage } from "@/pages/Incentive"; import { ProfilePage } from "@/pages/Profile"; import { InboxPage } from "@/pages/Inbox"; import { ApprovalsPage } from "@/pages/admin/Approvals"; import { AttendanceAdminPage } from "@/pages/admin/AttendanceAdmin"; import { ProjectsAdminPage } from "@/pages/admin/ProjectsAdmin"; import { IncentiveAdminPage } from "@/pages/admin/IncentiveAdmin"; import { AccountingPage } from "@/pages/admin/Accounting"; import { MembersPage } from "@/pages/admin/Members"; import { SettingsPage } from "@/pages/admin/Settings"; function RequireAdmin({ children }: { children: JSX.Element }) { const { isAdmin, loading } = useAuth(); if (loading) return ; return isAdmin ? children : ; } function Shell() { const { loading } = useAuth(); if (loading) { return (
); } return ( }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); } export default function App() { return ( ); }