2025-07-21 14:53:06 -04:00
|
|
|
import React from 'react';
|
|
|
|
|
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
|
|
|
|
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
2025-07-21 15:34:34 -04:00
|
|
|
import { Analytics } from '@vercel/analytics/react';
|
|
|
|
|
import { SpeedInsights } from '@vercel/speed-insights/react';
|
2025-07-21 14:53:06 -04:00
|
|
|
import Navbar from './components/Navbar';
|
|
|
|
|
import Dashboard from './pages/Dashboard';
|
|
|
|
|
import Collections from './pages/Collections';
|
|
|
|
|
import Decks from './pages/Decks';
|
|
|
|
|
import Cards from './pages/Cards';
|
|
|
|
|
import Scanner from './pages/Scanner';
|
|
|
|
|
import Login from './pages/Login';
|
|
|
|
|
import { AuthProvider } from './contexts/AuthContext';
|
|
|
|
|
import './App.css';
|
|
|
|
|
|
|
|
|
|
const queryClient = new QueryClient({
|
|
|
|
|
defaultOptions: {
|
|
|
|
|
queries: {
|
|
|
|
|
staleTime: 5 * 60 * 1000, // 5 minutes
|
|
|
|
|
refetchOnWindowFocus: false,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function App() {
|
|
|
|
|
return (
|
|
|
|
|
<QueryClientProvider client={queryClient}>
|
|
|
|
|
<AuthProvider>
|
|
|
|
|
<Router>
|
|
|
|
|
<div className="min-h-screen bg-gray-50">
|
|
|
|
|
<Navbar />
|
|
|
|
|
<main className="container mx-auto px-4 py-8">
|
|
|
|
|
<Routes>
|
|
|
|
|
<Route path="/" element={<Dashboard />} />
|
|
|
|
|
<Route path="/login" element={<Login />} />
|
|
|
|
|
<Route path="/collections" element={<Collections />} />
|
|
|
|
|
<Route path="/decks" element={<Decks />} />
|
|
|
|
|
<Route path="/cards" element={<Cards />} />
|
|
|
|
|
<Route path="/scanner" element={<Scanner />} />
|
|
|
|
|
</Routes>
|
|
|
|
|
</main>
|
|
|
|
|
</div>
|
2025-07-21 15:34:34 -04:00
|
|
|
<Analytics />
|
|
|
|
|
<SpeedInsights />
|
2025-07-21 14:53:06 -04:00
|
|
|
</Router>
|
|
|
|
|
</AuthProvider>
|
|
|
|
|
</QueryClientProvider>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default App;
|