import getGreetingMessage from "../../utils/greetingHandler"; import { clearAllCache } from "../../slices/apiDataManager"; import AuthRepository from "../../repositories/AuthRepository"; import { useDispatch } from "react-redux"; import { changeMaster } from "../../slices/localVariablesSlice"; import useMaster from "../../hooks/masterHook/useMaster"; import { useProfile } from "../../hooks/useProfile"; import { useNavigate } from "react-router-dom"; import Avatar from "../../components/common/Avatar"; const Header = () => { const { profile } = useProfile(); const dispatch = useDispatch(changeMaster("Job Role")); const { data, loading } = useMaster(); const navigate = useNavigate(); const getRole = (roles, joRoleId) => { if (!Array.isArray(roles)) return "User"; let role = roles.find((role) => role.id === joRoleId); return role ? role.name : "User"; }; const handleLogout = (e) => { e.preventDefault(); // Prevent default anchor behavior (e.g., page reload) logout(); }; const logout = async () => { try { // Notify server about the logout (optional) let data = { refreshToken: localStorage.getItem("refreshToken"), }; AuthRepository.logout(data) .then((response) => { localStorage.removeItem("jwtToken"); localStorage.removeItem("refreshToken"); localStorage.removeItem("user"); localStorage.clear(); clearAllCache(); window.location.href = "/auth/login"; }) .catch((error) => { localStorage.removeItem("jwtToken"); localStorage.removeItem("refreshToken"); localStorage.removeItem("user"); clearAllCache(); window.location.href = "/auth/login"; }); } catch (error) { console.error( "Error during logout:", error.response?.data || error.message ); } }; const handleProfilePage = () => { navigate(`/employee/${profile?.employeeInfo?.id}?for=account`); }; return ( ); }; export default Header;