import { useEffect } from 'react'; import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { LoginPage, RegisterPage, useAuthStore } from '@/features/auth'; import { CampaignsPage, CampaignDetailPage } from '@/features/campaigns'; import { CharacterSheetPage } from '@/features/characters'; import { BattlePage } from '@/features/battle'; import { LibraryPage } from '@/features/library'; import { ProtectedRoute } from '@/shared/components/protected-route'; import { Layout } from '@/shared/components/layout'; // Create a client const queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: 1000 * 60 * 5, // 5 minutes retry: 1, }, }, }); function AppContent() { const { checkAuth, isAuthenticated } = useAuthStore(); useEffect(() => { checkAuth(); }, [checkAuth]); return ( {/* Public Routes */} : } /> : } /> {/* Protected Routes */} }> }> } /> } /> } /> } /> } /> {/* Fallback */} } /> ); } function App() { return ( ); } export default App;