mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 18:51:12 -05:00
Code edited in Lovable Code Editor
This commit is contained in:
122
src/App.tsx
122
src/App.tsx
@@ -3,23 +3,20 @@ import { Toaster } from "@/components/ui/toaster";
|
|||||||
import { Toaster as Sonner } from "@/components/ui/sonner";
|
import { Toaster as Sonner } from "@/components/ui/sonner";
|
||||||
import { TooltipProvider } from "@/components/ui/tooltip";
|
import { TooltipProvider } from "@/components/ui/tooltip";
|
||||||
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||||
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
|
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
|
||||||
import { BrowserRouter, Routes, Route } from "react-router-dom";
|
import { BrowserRouter, Routes, Route } from "react-router-dom";
|
||||||
import { AuthProvider } from "@/hooks/useAuth";
|
import { AuthProvider } from "@/hooks/useAuth";
|
||||||
import { LocationAutoDetectProvider } from "@/components/providers/LocationAutoDetectProvider";
|
import { LocationAutoDetectProvider } from "@/components/providers/LocationAutoDetectProvider";
|
||||||
import { AuthModalProvider } from "@/contexts/AuthModalContext";
|
|
||||||
import { Footer } from "@/components/layout/Footer";
|
import { Footer } from "@/components/layout/Footer";
|
||||||
import Index from "./pages/Index";
|
import Index from "./pages/Index";
|
||||||
import Parks from "./pages/Parks";
|
import Parks from "./pages/Parks";
|
||||||
import ParkDetail from "./pages/ParkDetail";
|
import ParkDetail from "./pages/ParkDetail";
|
||||||
import ParkRides from "./pages/ParkRides";
|
|
||||||
import RideDetail from "./pages/RideDetail";
|
import RideDetail from "./pages/RideDetail";
|
||||||
import Rides from "./pages/Rides";
|
import Rides from "./pages/Rides";
|
||||||
import Manufacturers from "./pages/Manufacturers";
|
import Manufacturers from "./pages/Manufacturers";
|
||||||
import ManufacturerDetail from "./pages/ManufacturerDetail";
|
import ManufacturerDetail from "./pages/ManufacturerDetail";
|
||||||
import ManufacturerRides from "./pages/ManufacturerRides";
|
import ManufacturerRides from "./pages/ManufacturerRides";
|
||||||
import ManufacturerModels from "./pages/ManufacturerModels";
|
import ManufacturerModels from "./pages/ManufacturerModels";
|
||||||
import RideModelDetail from "./pages/RideModelDetail";
|
|
||||||
import Designers from "./pages/Designers";
|
import Designers from "./pages/Designers";
|
||||||
import DesignerDetail from "./pages/DesignerDetail";
|
import DesignerDetail from "./pages/DesignerDetail";
|
||||||
import DesignerRides from "./pages/DesignerRides";
|
import DesignerRides from "./pages/DesignerRides";
|
||||||
@@ -55,9 +52,9 @@ const queryClient = new QueryClient({
|
|||||||
defaultOptions: {
|
defaultOptions: {
|
||||||
queries: {
|
queries: {
|
||||||
refetchOnWindowFocus: false, // Disable automatic refetch on tab focus
|
refetchOnWindowFocus: false, // Disable automatic refetch on tab focus
|
||||||
refetchOnMount: true, // Keep refetch on component mount
|
refetchOnMount: true, // Keep refetch on component mount
|
||||||
refetchOnReconnect: true, // Keep refetch on network reconnect
|
refetchOnReconnect: true, // Keep refetch on network reconnect
|
||||||
retry: 1, // Keep retry attempts
|
retry: 1, // Keep retry attempts
|
||||||
staleTime: 30000, // 30 seconds - queries stay fresh for 30s
|
staleTime: 30000, // 30 seconds - queries stay fresh for 30s
|
||||||
gcTime: 5 * 60 * 1000, // 5 minutes - keep in cache for 5 mins
|
gcTime: 5 * 60 * 1000, // 5 minutes - keep in cache for 5 mins
|
||||||
},
|
},
|
||||||
@@ -71,73 +68,66 @@ function AppContent() {
|
|||||||
<LocationAutoDetectProvider />
|
<LocationAutoDetectProvider />
|
||||||
<Toaster />
|
<Toaster />
|
||||||
<Sonner />
|
<Sonner />
|
||||||
<div className="min-h-screen flex flex-col">
|
<div className="min-h-screen flex flex-col">
|
||||||
<div className="flex-1">
|
<div className="flex-1">
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/" element={<Index />} />
|
<Route path="/" element={<Index />} />
|
||||||
<Route path="/parks" element={<Parks />} />
|
<Route path="/parks" element={<Parks />} />
|
||||||
<Route path="/parks/:slug" element={<ParkDetail />} />
|
<Route path="/parks/:slug" element={<ParkDetail />} />
|
||||||
<Route path="/parks/:parkSlug/rides" element={<ParkRides />} />
|
<Route path="/parks/:parkSlug/rides/:rideSlug" element={<RideDetail />} />
|
||||||
<Route path="/parks/:parkSlug/rides/:rideSlug" element={<RideDetail />} />
|
<Route path="/rides" element={<Rides />} />
|
||||||
<Route path="/rides" element={<Rides />} />
|
<Route path="/search" element={<Search />} />
|
||||||
<Route path="/search" element={<Search />} />
|
<Route path="/blog" element={<BlogIndex />} />
|
||||||
<Route path="/blog" element={<BlogIndex />} />
|
<Route path="/blog/:slug" element={<BlogPost />} />
|
||||||
<Route path="/blog/:slug" element={<BlogPost />} />
|
<Route path="/manufacturers" element={<Manufacturers />} />
|
||||||
<Route path="/manufacturers" element={<Manufacturers />} />
|
<Route path="/manufacturers/:slug" element={<ManufacturerDetail />} />
|
||||||
<Route path="/manufacturers/:slug" element={<ManufacturerDetail />} />
|
<Route path="/manufacturers/:manufacturerSlug/rides" element={<ManufacturerRides />} />
|
||||||
<Route path="/manufacturers/:manufacturerSlug/rides" element={<ManufacturerRides />} />
|
<Route path="/manufacturers/:manufacturerSlug/models" element={<ManufacturerModels />} />
|
||||||
<Route path="/manufacturers/:manufacturerSlug/models" element={<ManufacturerModels />} />
|
<Route path="/manufacturers/:manufacturerSlug/models/:modelSlug" element={<RideModelDetail />} />
|
||||||
<Route path="/manufacturers/:manufacturerSlug/models/:modelSlug" element={<RideModelDetail />} />
|
<Route path="/manufacturers/:manufacturerSlug/models/:modelSlug/rides" element={<RideModelRides />} />
|
||||||
<Route path="/designers" element={<Designers />} />
|
<Route path="/designers" element={<Designers />} />
|
||||||
<Route path="/designers/:slug" element={<DesignerDetail />} />
|
<Route path="/designers/:slug" element={<DesignerDetail />} />
|
||||||
<Route path="/designers/:designerSlug/rides" element={<DesignerRides />} />
|
<Route path="/designers/:designerSlug/rides" element={<DesignerRides />} />
|
||||||
<Route path="/owners" element={<ParkOwners />} />
|
<Route path="/owners" element={<ParkOwners />} />
|
||||||
<Route path="/owners/:slug" element={<PropertyOwnerDetail />} />
|
<Route path="/owners/:slug" element={<PropertyOwnerDetail />} />
|
||||||
<Route path="/owners/:ownerSlug/parks" element={<OwnerParks />} />
|
<Route path="/owners/:ownerSlug/parks" element={<OwnerParks />} />
|
||||||
<Route path="/operators" element={<Operators />} />
|
<Route path="/operators" element={<Operators />} />
|
||||||
<Route path="/operators/:slug" element={<OperatorDetail />} />
|
<Route path="/operators/:slug" element={<OperatorDetail />} />
|
||||||
<Route path="/operators/:operatorSlug/parks" element={<OperatorParks />} />
|
<Route path="/operators/:operatorSlug/parks" element={<OperatorParks />} />
|
||||||
<Route path="/auth" element={<Auth />} />
|
<Route path="/auth" element={<Auth />} />
|
||||||
<Route path="/auth/callback" element={<AuthCallback />} />
|
<Route path="/auth/callback" element={<AuthCallback />} />
|
||||||
<Route path="/auth/mfa-step-up" element={<MFAStepUp />} />
|
<Route path="/auth/mfa-step-up" element={<MFAStepUp />} />
|
||||||
<Route path="/profile" element={<Profile />} />
|
<Route path="/profile" element={<Profile />} />
|
||||||
<Route path="/profile/:username" element={<Profile />} />
|
<Route path="/profile/:username" element={<Profile />} />
|
||||||
<Route path="/settings" element={<UserSettings />} />
|
<Route path="/settings" element={<UserSettings />} />
|
||||||
<Route path="/admin" element={<AdminDashboard />} />
|
<Route path="/admin" element={<AdminDashboard />} />
|
||||||
<Route path="/admin/moderation" element={<AdminModeration />} />
|
<Route path="/admin/moderation" element={<AdminModeration />} />
|
||||||
<Route path="/admin/reports" element={<AdminReports />} />
|
<Route path="/admin/reports" element={<AdminReports />} />
|
||||||
<Route path="/admin/system-log" element={<AdminSystemLog />} />
|
<Route path="/admin/system-log" element={<AdminSystemLog />} />
|
||||||
<Route path="/admin/users" element={<AdminUsers />} />
|
<Route path="/admin/users" element={<AdminUsers />} />
|
||||||
<Route path="/admin/blog" element={<AdminBlog />} />
|
<Route path="/admin/blog" element={<AdminBlog />} />
|
||||||
<Route path="/admin/settings" element={<AdminSettings />} />
|
<Route path="/admin/settings" element={<AdminSettings />} />
|
||||||
<Route path="/terms" element={<Terms />} />
|
<Route path="/terms" element={<Terms />} />
|
||||||
<Route path="/privacy" element={<Privacy />} />
|
<Route path="/privacy" element={<Privacy />} />
|
||||||
<Route path="/submission-guidelines" element={<SubmissionGuidelines />} />
|
<Route path="/submission-guidelines" element={<SubmissionGuidelines />} />
|
||||||
<Route path="/force-logout" element={<ForceLogout />} />
|
<Route path="/force-logout" element={<ForceLogout />} />
|
||||||
{/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */}
|
{/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */}
|
||||||
<Route path="*" element={<NotFound />} />
|
<Route path="*" element={<NotFound />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
</div>
|
|
||||||
<Footer />
|
|
||||||
</div>
|
</div>
|
||||||
</BrowserRouter>
|
<Footer />
|
||||||
</TooltipProvider>
|
</div>
|
||||||
|
</BrowserRouter>
|
||||||
|
</TooltipProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const App = () => (
|
const App = () => (
|
||||||
<QueryClientProvider client={queryClient}>
|
<QueryClientProvider client={queryClient}>
|
||||||
<AuthProvider>
|
<AuthProvider>
|
||||||
<AuthModalProvider>
|
<AppContent />
|
||||||
<AppContent />
|
|
||||||
</AuthModalProvider>
|
|
||||||
</AuthProvider>
|
</AuthProvider>
|
||||||
{import.meta.env.DEV && (
|
{import.meta.env.DEV && <ReactQueryDevtools initialIsOpen={false} position="bottom" />}
|
||||||
<ReactQueryDevtools
|
|
||||||
initialIsOpen={false}
|
|
||||||
position="bottom"
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</QueryClientProvider>
|
</QueryClientProvider>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user