import React from 'react' import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom' import { Toaster } from 'react-hot-toast' import { AuthProvider } from './context/AuthContext' import { useAuth } from './hooks/useAuth' // Layout import Navbar from './components/Layout/Navbar' import Sidebar from './components/Layout/Sidebar' import Footer from './components/Layout/Footer' // Pages import Login from './components/Auth/Login' import Register from './components/Auth/Register' import Dashboard from './components/Dashboard/Dashboard' import Learn from './components/Learn/Learn' import Quiz from './components/Quiz/Quiz' import Progress from './components/Progress/Progress' // Protected Route Component const ProtectedRoute = ({ children }) => { const { user, loading } = useAuth() if (loading) { return (
) } return user ? children : } // Main Layout Component const MainLayout = ({ children }) => { const [sidebarOpen, setSidebarOpen] = React.useState(true) return (
setSidebarOpen(!sidebarOpen)} />
{children}
) } function App() { return ( {/* Public Routes */} } /> } /> {/* Protected Routes */} } /> } /> } /> } /> } /> } /> {/* Redirect unknown routes */} } /> ) } export default App