()
| 21 | import { AlertsView } from "@/views/AlertsView"; |
| 22 | |
| 23 | function App() { |
| 24 | // Connect to backend services |
| 25 | useDiscovery(); |
| 26 | useGpsStatus(); |
| 27 | useAlerts(); |
| 28 | |
| 29 | const { resolvedTheme } = useTheme(); |
| 30 | const themeClass = resolvedTheme === "dark" ? "dark" : ""; |
| 31 | |
| 32 | return ( |
| 33 | <div className={`${themeClass} min-h-screen`}> |
| 34 | <SidebarProvider> |
| 35 | <AppSidebar /> |
| 36 | <SidebarInset> |
| 37 | <AlertBanner /> |
| 38 | <ErrorBoundary> |
| 39 | <Routes> |
| 40 | <Route path="/" element={<DashboardView />} /> |
| 41 | <Route path="/base-station" element={<BaseStationView />} /> |
| 42 | <Route path="/fleet" element={<FleetView />} /> |
| 43 | <Route path="/fleet/:roverId" element={<RoverView />} /> |
| 44 | <Route path="/sessions" element={<SessionsView />} /> |
| 45 | <Route path="/sessions/:sessionName" element={<SessionDetailView />} /> |
| 46 | <Route path="/maps" element={<MapsView />} /> |
| 47 | <Route path="/maps/:mapId" element={<MapsView />} /> |
| 48 | <Route path="/dispatch" element={<DispatchView />} /> |
| 49 | <Route path="/alerts" element={<AlertsView />} /> |
| 50 | </Routes> |
| 51 | </ErrorBoundary> |
| 52 | </SidebarInset> |
| 53 | </SidebarProvider> |
| 54 | <Toast /> |
| 55 | </div> |
| 56 | ); |
| 57 | } |
| 58 | |
| 59 | export default App; |
nothing calls this directly
no test coverage detected