Newer
Older
import React, { useContext } from "react";
Federico Hurtado
committed
import {
BrowserRouter as Router,
Route,
Routes,
Navigate,
} from "react-router-dom";
import { UserProvider, UserContext } from "./util/UserContext";
Federico Hurtado
committed
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);
Federico Hurtado
committed
console.log("ProtectedRoute - isAuthenticated:", user.isAuthenticated);
console.log("ProtectedRoute - permission:", user.permission);
return user.permission === "admin" ? children : <Navigate to="/login" />;
Federico Hurtado
committed
};
function App() {
return (
<UserProvider>
<Router>
<div className="App">
<Routes>
{/* Protected Home route, accessible only if authenticated */}
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;