import React, { useEffect, useRef, useState } from 'react'; import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock'; import { MenuContainer, MenuHeaderDesktop, MenuHeaderMobile } from '../../styles/components/shared/MenuHeader.style'; import { Link as RouterLink, Router } from '../../i18n'; import { detectClientDevice } from '../../utils/deviceDetection'; import { Overlay } from '../../styles/components/shared/Overlay.style'; import { useRouter } from 'next/router'; interface Props { postTags?: any[]; children: JSX.Element; } const Menu: React.FC = ({ postTags, children }) => { const navRef = useRef(null); const router = useRouter(); const [openMenu, setOpenMenu] = useState(false); useEffect(() => { Router.events.on('routeChangeStart', () => { setOpenMenu(false); }); }, []); useEffect(() => { if (!detectClientDevice().isIOS) { if (openMenu) { disableBodyScroll(navRef.current, { reserveScrollBarGap: true }); } else { enableBodyScroll(navRef.current); } } }, [openMenu]); function renderLinks(): React.ReactElement[] { return postTags.map((postTag, index: number) => { const isActive = router?.query?.tag === postTag.uid; return ( postTag.id && {postTag?.data?.name} ); }); } return ( {renderLinks()}
setOpenMenu(true)}>
setOpenMenu(false)} />
); }; export default Menu;