mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-23 14:31:13 -05:00
Reverted to commit 0091584677
This commit is contained in:
58
src/App.tsx
58
src/App.tsx
@@ -3,12 +3,10 @@ import { lazy, Suspense } from "react";
|
||||
import { Toaster } from "@/components/ui/toaster";
|
||||
import { Toaster as Sonner } from "@/components/ui/sonner";
|
||||
import { TooltipProvider } from "@/components/ui/tooltip";
|
||||
import { QueryClient, QueryClientProvider, QueryCache } from "@tanstack/react-query";
|
||||
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
|
||||
import { CacheMonitor } from "@/components/dev/CacheMonitor";
|
||||
import { BrowserRouter, Routes, Route } from "react-router-dom";
|
||||
import { AuthProvider } from "@/hooks/useAuth";
|
||||
import { Auth0Provider } from "@/contexts/Auth0Provider";
|
||||
import { AuthModalProvider } from "@/contexts/AuthModalContext";
|
||||
import { LocationAutoDetectProvider } from "@/components/providers/LocationAutoDetectProvider";
|
||||
import { Analytics } from "@vercel/analytics/react";
|
||||
@@ -63,7 +61,6 @@ const AdminEmailSettings = lazy(() => import("./pages/admin/AdminEmailSettings")
|
||||
const Profile = lazy(() => import("./pages/Profile"));
|
||||
const UserSettings = lazy(() => import("./pages/UserSettings"));
|
||||
const AuthCallback = lazy(() => import("./pages/AuthCallback"));
|
||||
const Auth0Callback = lazy(() => import("./pages/Auth0Callback"));
|
||||
|
||||
// Utility routes (lazy-loaded)
|
||||
const NotFound = lazy(() => import("./pages/NotFound"));
|
||||
@@ -80,41 +77,8 @@ const queryClient = new QueryClient({
|
||||
gcTime: 5 * 60 * 1000, // 5 minutes - keep in cache for 5 mins
|
||||
},
|
||||
},
|
||||
// Add cache size management
|
||||
queryCache: new QueryCache({
|
||||
onSuccess: () => {
|
||||
// Monitor cache size in development
|
||||
if (import.meta.env.DEV) {
|
||||
const cacheSize = queryClient.getQueryCache().getAll().length;
|
||||
if (cacheSize > 100) {
|
||||
console.warn(`⚠️ Query cache size: ${cacheSize} queries`);
|
||||
}
|
||||
}
|
||||
},
|
||||
}),
|
||||
});
|
||||
|
||||
// Add cache size monitoring and automatic cleanup (dev mode)
|
||||
if (import.meta.env.DEV) {
|
||||
setInterval(() => {
|
||||
const cache = queryClient.getQueryCache();
|
||||
const queries = cache.getAll();
|
||||
|
||||
// Remove oldest queries if cache exceeds 250 items (increased limit)
|
||||
if (queries.length > 250) {
|
||||
const sortedByLastUpdated = queries
|
||||
.sort((a, b) => (a.state.dataUpdatedAt || 0) - (b.state.dataUpdatedAt || 0));
|
||||
|
||||
const toRemove = sortedByLastUpdated.slice(0, queries.length - 200);
|
||||
toRemove.forEach(query => {
|
||||
queryClient.removeQueries({ queryKey: query.queryKey });
|
||||
});
|
||||
|
||||
console.log(`🧹 Removed ${toRemove.length} stale queries from cache`);
|
||||
}
|
||||
}, 60000); // Check every minute
|
||||
}
|
||||
|
||||
function AppContent(): React.JSX.Element {
|
||||
return (
|
||||
<TooltipProvider>
|
||||
@@ -161,7 +125,6 @@ function AppContent(): React.JSX.Element {
|
||||
|
||||
{/* User routes - lazy loaded */}
|
||||
<Route path="/auth/callback" element={<AuthCallback />} />
|
||||
<Route path="/auth/auth0-callback" element={<Auth0Callback />} />
|
||||
<Route path="/profile" element={<Profile />} />
|
||||
<Route path="/profile/:username" element={<Profile />} />
|
||||
<Route path="/settings" element={<UserSettings />} />
|
||||
@@ -193,19 +156,12 @@ function AppContent(): React.JSX.Element {
|
||||
|
||||
const App = (): React.JSX.Element => (
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<Auth0Provider>
|
||||
<AuthProvider>
|
||||
<AuthModalProvider>
|
||||
<AppContent />
|
||||
</AuthModalProvider>
|
||||
</AuthProvider>
|
||||
</Auth0Provider>
|
||||
{import.meta.env.DEV && (
|
||||
<>
|
||||
<ReactQueryDevtools initialIsOpen={false} position="bottom" />
|
||||
<CacheMonitor />
|
||||
</>
|
||||
)}
|
||||
<AuthProvider>
|
||||
<AuthModalProvider>
|
||||
<AppContent />
|
||||
</AuthModalProvider>
|
||||
</AuthProvider>
|
||||
{import.meta.env.DEV && <ReactQueryDevtools initialIsOpen={false} position="bottom" />}
|
||||
<Analytics />
|
||||
</QueryClientProvider>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user