auth WIP
This commit is contained in:
39
src/App.tsx
Normal file
39
src/App.tsx
Normal file
@ -0,0 +1,39 @@
|
||||
import { BrowserRouter as Router, Routes, Route, Navigate, Outlet, useLocation } from 'react-router-dom';
|
||||
import {useContext } from "react";
|
||||
import Login from "./pages/login/login"
|
||||
import Register from "./pages/register/register"
|
||||
import Home from "./pages/home/home"
|
||||
import AuthContext, { AuthProvider } from "./auth/auth-provider"
|
||||
|
||||
|
||||
function App() {
|
||||
return (
|
||||
<AuthProvider>
|
||||
<Router>
|
||||
<Routes>
|
||||
<Route path="/login" element={<Login />} />
|
||||
<Route path="/register" element={<Register />} />
|
||||
|
||||
<Route element={<PrivateRoute />}>
|
||||
<Route path='/' element={<Home />} />
|
||||
</Route>
|
||||
</Routes>
|
||||
</Router>
|
||||
</AuthProvider>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
const PrivateRoute = () => {
|
||||
const { isAuthenticated } = useContext(AuthContext);
|
||||
const location = useLocation();
|
||||
|
||||
return (
|
||||
isAuthenticated === true ?
|
||||
<Outlet />
|
||||
:
|
||||
<Navigate to="/login" state={{ from: location }} replace />
|
||||
);
|
||||
}
|
||||
|
||||
export default App;
|
||||
Reference in New Issue
Block a user