Changeset b248810 for jobvista-frontend/src/App.js
- Timestamp:
- 06/10/24 22:34:32 (3 weeks ago)
- Branches:
- main
- Children:
- befb988
- Parents:
- 28b3398
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
jobvista-frontend/src/App.js
r28b3398 rb248810 1 1 import logo from './logo.svg'; 2 2 import './App.css'; 3 import {useDispatch } from "react-redux";3 import {useDispatch, useSelector} from "react-redux"; 4 4 import {BrowserRouter} from "react-router-dom"; 5 5 import {Header} from "./views/static/Header"; 6 6 import {RoutesConfig} from "./auth/RoutesConfig"; 7 import {useEffect } from "react";7 import {useEffect, useState} from "react"; 8 8 import {AuthActions} from "./redux/actions/authActions"; 9 9 import {AUTH_TOKEN} from "./axios/axiosInstance"; 10 import {jwtDecode} from "jwt-decode"; 11 import {NoAccess} from "./views/static/NoAccess"; 10 12 11 13 function App() { … … 16 18 }, [dispatch]) 17 19 20 const [user, setUser] = useState(null); 21 const [loading, setLoading] = useState(true); 22 const auth = useSelector(state => state.auth); 23 24 useEffect(() => { 25 const token = localStorage.getItem(AUTH_TOKEN); 26 if (token !== null) { 27 try { 28 const decodedToken = jwtDecode(token); 29 setUser({ 30 name: decodedToken.name, 31 role: decodedToken.role, 32 hasAccess: auth.currentUser.access, 33 }); 34 setLoading(false); 35 } catch (error) { 36 console.error('Failed to decode token', error); 37 setLoading(false); 38 } 39 } else { 40 setLoading(false); 41 } 42 }, [auth]); 43 44 if (loading) { 45 return <NoAccess />; // Replace LoadingSpinner with your loading indicator component 46 } 47 18 48 return ( 19 49 <div className="App"> 20 50 <BrowserRouter> 21 <Header/> 22 <RoutesConfig/> 51 {user === null ? ( 52 <> 53 <Header /> 54 <RoutesConfig /> 55 </> 56 ) : user.hasAccess ? ( 57 <> 58 <Header /> 59 <RoutesConfig /> 60 </> 61 ) : ( 62 <NoAccess user={user}/> 63 )} 64 65 23 66 </BrowserRouter> 24 67 </div>
Note:
See TracChangeset
for help on using the changeset viewer.