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"; import {JobSeekerActions} from "../../redux/actions/JobSeekerActions"; import {RecruiterActions} from "../../redux/actions/recruiterActions"; 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 [profilePics, setProfilePics] = useState({}); let profilePicState = useSelector(state => state.images.profilePictures); const [profilePicDispatched, setProfilePicDispatched] = useState(false); const [logos, setLogos] = useState({}); let logoState = useSelector(state => state.images.logos); const [logoDispatched, setLogoDispatched] = useState(false); const signOut = () => { dispatch(AuthActions.signOut()); window.location = "/"; //navigator("/") } const [isActive, setIsActive] = useState(false); const toggleMenu = () => { setIsActive(!isActive); }; 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, id: decodedToken.id }); } catch (error) { console.error('Failed to decode token', error); } } }, [auth]); useEffect(() => { if (auth) { setRole(auth.role); setUsername(auth.name); console.log("ROLE: " + auth.role) if (auth.role === Roles.JOBSEEKER) { dispatch(JobSeekerActions.downloadProfilePic(auth.id, (success, reponse) => { if (success) { setProfilePics(prevState => ({...prevState, [auth.id]: reponse})) console.log(reponse) } })) } else if (auth.role === Roles.RECRUITER) { dispatch(RecruiterActions.downloadLogo(auth.id, (success, reponse) => { if (success) { setLogos(prevState => ({...prevState, [auth.id]: reponse})) console.log(reponse) } })) } } }, [auth]); return ( ) }