import { Suspense } from 'react'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import { BrowserRouter, useNavigate } from 'react-router-dom'; import { I18nextProvider } from 'react-i18next'; import { Toaster } from 'react-hot-toast'; import { ErrorBoundary } from './components/layout/ErrorBoundary'; import { LoadingSpinner } from './components/ui'; import { AppRouter } from './router/AppRouter'; import { ThemeProvider } from './contexts/ThemeContext'; import { AuthProvider } from './contexts/AuthContext'; import { SSEProvider } from './contexts/SSEContext'; import { SubscriptionEventsProvider } from './contexts/SubscriptionEventsContext'; import GlobalSubscriptionHandler from './components/auth/GlobalSubscriptionHandler'; import { CookieBanner } from './components/ui/CookieConsent'; import { useTenantInitializer } from './stores/useTenantInitializer'; import i18n from './i18n'; const queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: 5 * 60 * 1000, gcTime: 10 * 60 * 1000, retry: 3, refetchOnWindowFocus: false, }, }, }); function AppContent() { const navigate = useNavigate(); // Initialize tenant data when user is authenticated or in demo mode useTenantInitializer(); return ( <> }> navigate('/cookie-preferences')} /> ); } function App() { return ( ); } export default App;