import "./App.css"; import React, { useContext } from "react"; import { BrowserRouter as Router, Route, Routes, Navigate, } from "react-router-dom"; import { UserProvider, UserContext } from "./util/UserContext"; import Home from "./components/Home"; import Login from "./components/Login"; import PracticeHome from "./components/APITest/PracticeHome"; // Custom Protected Route component that checks if the user is authenticated const ProtectedRoute = ({ children }) => { const { user } = useContext(UserContext); console.log("ProtectedRoute - isAuthenticated:", user.isAuthenticated); console.log("ProtectedRoute - permission:", user.permission); return user.permission === "admin" ? children : <Navigate to="/login" />; }; function App() { return ( <UserProvider> <Router> <div className="App"> <Routes> {/* Protected Home route, accessible only if authenticated */} <Route path="/" element={ <ProtectedRoute> <Home /> </ProtectedRoute> } /> <Route path="/practice" element={ <ProtectedRoute> <PracticeHome /> </ProtectedRoute> } /> {/* Login route */} <Route path="/login" element={<Login />} /> </Routes> </div> </Router> </UserProvider> ); } export default App;