import React from 'react'; import { Routes, Route, Navigate, useLocation } from 'react-router-dom'; import { useAuth } from './context/AuthContext'; import { Toaster } from 'sonner'; import Auth from './pages/Auth'; import AdminTokenGate from './components/AdminTokenGate'; import Navbar from './components/Navbar'; import LandingPage from './pages/Landing'; import OnboardingPage from './pages/Onboarding'; import PassengerRidePage from './pages/PassengerRide'; import DriverWorkstationPage from './pages/DriverWorkstation'; import CirclesPage from './pages/Circles'; import HistoryPage from './pages/History'; import OnboardingPage from './pages/Onboarding'; import AdminPage from './pages/Admin'; function ProtectedRoute({ children }: { children: React.ReactNode }) { const { user, isLoading } = useAuth(); const location = useLocation(); if (isLoading) return
Loading session...
; if (!user) { const returnTo = encodeURIComponent(location.pathname + location.search); return ; } return <>{children}; } export default function App() { const location = useLocation(); const isPublicShellRoute = location.pathname === '/' || location.pathname === '/auth' || location.pathname.startsWith('/admin'); return ( <>
{!isPublicShellRoute && }
} /> } /> } /> } /> } /> } /> } /> } /> } /> } />
); }