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;