import React, { useState } from 'react'; import ReactDOM from 'react-dom/client'; import { BrowserRouter, Routes, Route, Navigate, Link } from 'react-router-dom'; import { Toaster } from 'react-hot-toast'; import { AuthProvider, useAuth } from './AuthContext'; import { SocketProvider } from './SocketContext'; import Login from './pages/Login'; import Register from './pages/Register'; import ChallengeList from './pages/ChallengeList'; import ChallengeDetail from './pages/ChallengeDetail'; import Profile from './pages/Profile'; import Friends from './pages/Friends'; import Leaderboard from './pages/Leaderboard'; import ErrorBoundary from './components/ErrorBoundary'; import './App.css'; function ProtectedRoute({ children }) { const { user, loading } = useAuth(); if (loading) { return
Loading...
; } return user ? children : ; } function Header() { const { user, logout } = useAuth(); const [mobileMenuOpen, setMobileMenuOpen] = useState(false); if (!user) return null; const handleLogout = () => { setMobileMenuOpen(false); logout(); }; const closeMobileMenu = () => setMobileMenuOpen(false); return (
); } function App() { return (
} /> } /> } /> } /> } /> } /> } /> } /> ); } ReactDOM.createRoot(document.getElementById('root')).render();