import {Link, NavLink} from "react-router-dom"; import "./Header.css" import { jwtDecode } from "jwt-decode"; import {useDispatch, useSelector} from 'react-redux'; import {useEffect, useState} from "react"; import {AuthActions} from "../../redux/actions/authActions"; import Roles from "../../enumerations/Roles"; import {useNavigate} from "react-router"; import {AUTH_TOKEN} from "../../axios/axiosInstance"; export const Header = (props) => { const auth = useSelector(state => state.auth.currentUser); const dispatch = useDispatch(); const navigator = useNavigate(); const [role, setRole] = useState(""); const [username, setUsername] = useState(""); const [user, setUser] = useState(""); const signOut = () => { dispatch(AuthActions.signOut()); window.location = "/"; } useEffect(() => { const token = localStorage.getItem(AUTH_TOKEN); if (token!=null) { try { const decodedToken = jwtDecode(token); setUser({ name: decodedToken.name, role: decodedToken.role, hasAccess: decodedToken.hasAccess, }); } catch (error) { console.error('Failed to decode token', error); } } }, [auth]); useEffect(() => { if (auth) { setRole(auth.role); setUsername(auth.name); } }, [auth]); return ( ) }