Changeset 6eba109 for reactapp/src/App.js
- Timestamp:
- 08/17/22 16:21:10 (23 months ago)
- Branches:
- main
- Children:
- 702ca77
- Parents:
- 800779d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
reactapp/src/App.js
r800779d r6eba109 2 2 import SearchResults from "./Pages/SearchResults"; 3 3 import Login from "./Pages/Login"; 4 import { BrowserRouter, Routes, Route } from "react-router-dom";4 import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom"; 5 5 import Home from "./Pages/Home"; 6 import User from "./Pages/User"; 7 import { useEffect, useState, useMemo } from "react"; 8 import AuthApi from "./api/AuthApi"; 9 import Cookies from "js-cookie"; 6 10 7 11 export default function App() { 12 const [auth, setAuth] = useState(false); 13 const variableAuth = useMemo(() => ({ auth, setAuth }), [auth]); 14 15 const readCookie = () => { 16 const session = Cookies.get("JSESSIONID"); 17 if (session) { 18 setAuth(true); // go stava true ako postoi takvo cookie (zasto auth=false na sekoe renderiranje) 19 } 20 }; 21 22 useEffect(() => { 23 readCookie(); 24 }, []); 25 26 const ProtectedRoute = ({ auth, children }) => { 27 if (!auth) { 28 return <Navigate to="/login" replace />; 29 } 30 return children; 31 }; 32 8 33 return ( 9 <BrowserRouter> 10 <Routes> 11 <Route path="/" element={<Home />}> 12 <Route path="login" element={<Login />}></Route> 13 <Route path="professor"> 14 <Route path=":professorId" element={<Professor />} /> 34 <AuthApi.Provider value={variableAuth}> 35 <BrowserRouter> 36 <Routes> 37 <Route path="/" element={<Home />}> 38 <Route path="login" element={<Login />}></Route> 39 <Route path="professor"> 40 <Route path=":professorId" element={<Professor />} /> 41 </Route> 42 <Route path="search" element={<SearchResults />}></Route> 43 <Route 44 path="user" 45 element={ 46 <ProtectedRoute auth={auth}> 47 <User /> 48 </ProtectedRoute> 49 } 50 ></Route> 15 51 </Route> 16 <Route path="search" element={<SearchResults />}></Route> 17 </Route> 18 </Routes> 19 </BrowserRouter> 52 </Routes> 53 </BrowserRouter> 54 </AuthApi.Provider> 20 55 ); 21 56 }
Note:
See TracChangeset
for help on using the changeset viewer.