import { useState, useEffect } from 'react'; import { BrowserRouter as Router, Routes, Route, NavLink, Navigate } from 'react-router-dom'; import { ThemeProvider } from './context/ThemeContext'; import Login from './pages/Login'; import AdminDashboard from './pages/AdminDashboard'; import UserDashboard from './pages/UserDashboard'; import ThemeSettings from './components/ThemeSettings'; import api from './api'; import { LogOut, Home, Shield, BookOpen } from 'lucide-react'; function AppContent() { const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { const fetchUser = async () => { const token = localStorage.getItem('token'); if (token) { try { const res = await api.get('/auth/me'); setUser(res.data); } catch (err) { localStorage.removeItem('token'); } } setLoading(false); }; fetchUser(); }, []); const logout = () => { localStorage.removeItem('token'); setUser(null); }; if (loading) { return (
); } return (
{/* Brand */}
MCQ Portal
{/* Navigation */} {user && ( )} {/* Actions */}
{user ? (
{user.username.charAt(0).toUpperCase()}
{user.username}
) : ( Login )}
: } /> : } /> : } />
); } export default function App() { return ( ); }