import React from 'react'; import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { Analytics } from '@vercel/analytics/react'; import { SpeedInsights } from '@vercel/speed-insights/react'; import { AuthProvider, useAuth } from './contexts/AuthContext'; 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 LoginForm from './components/auth/LoginForm'; import RegisterForm from './components/auth/RegisterForm'; import AdminPanel from './components/admin/AdminPanel'; const queryClient = new QueryClient({ defaultOptions: { queries: { retry: 1, refetchOnWindowFocus: false, }, }, }); // Protected Route Component const ProtectedRoute: React.FC<{ children: React.ReactNode }> = ({ children }) => { const { user, isLoading } = useAuth(); if (isLoading) { return (
); } if (!user) { return ; } return <>{children}; }; // Public Route Component (redirect if authenticated) const PublicRoute: React.FC<{ children: React.ReactNode }> = ({ children }) => { const { user, isLoading } = useAuth(); if (isLoading) { return (
); } if (user) { return ; } return <>{children}; }; // Layout Component const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) => { return (
{children}
); }; function App() { return ( {/* Public Routes */} } /> } /> {/* Protected Routes */} } /> } /> } /> } /> } /> {/* Admin Routes */} } /> {/* Default redirect */} } /> {/* 404 fallback */}

404 - Page Not Found

The page you're looking for doesn't exist.

Go to Dashboard
} />
); } export default App;