import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { Auth0Provider } from '@auth0/auth0-react'; import { Toaster } from 'react-hot-toast'; import { AuthProvider } from '@/contexts/AuthContext'; import { AbilityProvider } from '@/contexts/AbilityContext'; import { ThemeProvider } from '@/contexts/ThemeContext'; import { ProtectedRoute } from '@/components/ProtectedRoute'; import { Layout } from '@/components/Layout'; import { ErrorBoundary } from '@/components/ErrorBoundary'; import { Login } from '@/pages/Login'; import { Callback } from '@/pages/Callback'; import { PendingApproval } from '@/pages/PendingApproval'; import { Dashboard } from '@/pages/Dashboard'; import { CommandCenter } from '@/pages/CommandCenter'; import { VIPList } from '@/pages/VipList'; import { VIPSchedule } from '@/pages/VIPSchedule'; import { DriverList } from '@/pages/DriverList'; import { VehicleList } from '@/pages/VehicleList'; import { EventList } from '@/pages/EventList'; import { FlightList } from '@/pages/FlightList'; import { UserList } from '@/pages/UserList'; import { AdminTools } from '@/pages/AdminTools'; import { DriverProfile } from '@/pages/DriverProfile'; import { MySchedule } from '@/pages/MySchedule'; import { useAuth } from '@/contexts/AuthContext'; // Smart redirect based on user role function HomeRedirect() { const { backendUser } = useAuth(); // Drivers go to their schedule, everyone else goes to dashboard if (backendUser?.role === 'DRIVER') { return ; } return ; } const queryClient = new QueryClient({ defaultOptions: { queries: { refetchOnWindowFocus: false, retry: 1, }, }, }); const domain = import.meta.env.VITE_AUTH0_DOMAIN; const clientId = import.meta.env.VITE_AUTH0_CLIENT_ID; const audience = import.meta.env.VITE_AUTH0_AUDIENCE; function App() { return ( } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); } export default App;