import type { ReactNode } from "react"; import { BrowserRouter, Navigate, Route, Routes, useLocation } from "react-router-dom"; import { AuthProvider, useAuth } from "./auth/AuthContext"; import { LoadingState } from "./components/Feedback"; import { AdminPage } from "./pages/AdminPage"; import { DisplayPage } from "./pages/DisplayPage"; import { PublicDisplayCenterPage } from "./pages/PublicDisplayCenterPage"; import { LoginPage } from "./pages/LoginPage"; import { HistoryPage } from "./pages/HistoryPage"; import { StaffPage } from "./pages/StaffPage"; import { VisitorPage } from "./pages/VisitorPage"; import { VisitorLookupPage } from "./pages/VisitorLookupPage"; import { VisitorPhonePage } from "./pages/VisitorPhonePage"; function RequireStaff({ children }: { children: ReactNode }) { const { user, loading } = useAuth(); const location = useLocation(); if (loading) return
; if (!user) return ; return children; } function RequireAdmin({ children }: { children: ReactNode }) { const { user, loading } = useAuth(); if (loading) return
; if (!user) return ; return children; } export function App() { return ( } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); }