import { ClerkProvider } from '@clerk/clerk-react'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { BrowserRouter, Routes, Route } from 'react-router-dom'; // Import Leaflet CSS import 'leaflet/dist/leaflet.css'; // Layout import { Layout } from './components/layout'; // Auth components import { ProtectedRoute, SignInPage, SignUpPage } from './components/auth'; // Pages import { HomePage, MapPage, ReportFormPage, EventsPage, AnalyticsPage } from './pages'; const queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: 1000 * 60 * 5, // 5 minutes retry: 1, }, }, }); const clerkPubKey = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY; if (!clerkPubKey) { throw new Error('Missing Clerk Publishable Key'); } function App() { return ( {/* Public routes */} } /> } /> {/* Routes with layout */} } /> } /> {/* Protected routes */} } /> } /> } /> ); } export default App;