import { Link, NavLink } from "react-router-dom"; import './HeaderMain.style.scss' import { useEffect, useRef, useState } from "react"; import {history} from '../../../_helpers/history' import { apiCaller } from "../../../_helpers"; import { listHeader } from "../../../_constants/headerNews"; export default function HeaderMain() { const [isHoverLogout, setIsHoverLogout] = useState(false) const [isOpenMenuMobile, setIsOpenMenuMobile] = useState(false) const menuMobileRef = useRef(); const handleLogout = async () => { await apiCaller('/logout', "POST", {}) window.location.href = "/login"; localStorage.removeItem("authentication"); localStorage.removeItem("access_token"); setIsOpenMenuMobile(false) } const renderListHeader = () => { return ( <> {listHeader.map(item => ( "header-item" + (isActive ? " header-item-selected" : "") } onClick={() => setIsOpenMenuMobile(false)} key={item.id} > {item.name} ))} ) } const handleClickOutside = (event) => { if (menuMobileRef.current && !menuMobileRef.current.contains(event.target)) { setIsOpenMenuMobile(false); } }; useEffect(() => { document.addEventListener('click', handleClickOutside, true); return () => { document.removeEventListener('click', handleClickOutside, true); }; }, []); return (
{"Logo"}
{renderListHeader()}
setIsHoverLogout(true)} onMouseOut={() => setIsHoverLogout(false)} onClick={handleLogout}> {isHoverLogout && Đăng xuất}
setIsOpenMenuMobile(!isOpenMenuMobile)} xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24"> {isOpenMenuMobile &&
{renderListHeader()}
Đăng xuất
}
); }