import React, { useEffect, useRef, useState } from 'react'; import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock'; import { useTranslation } from 'react-i18next'; import { PrismicDocument } from '../../prismic/api'; import { ProductPageData, SharedProductData } from '../../typings/entities'; import PrismicLinkComponent from '../PrismicLink'; import { MenuContainer, MenuHeaderDesktop, MenuHeaderMobile } from '../../styles/components/shared/MenuHeader.style'; import { detectClientDevice } from '../../utils/deviceDetection'; import { Link, Router } from '../../i18n'; import { Overlay } from '../../styles/components/shared/Overlay.style'; import { PrismicLink } from 'easy-prismic-react'; interface Props { products?: PrismicDocument[]; FAQLink: PrismicLink; } const Menu: React.FC = ({ products, FAQLink }) => { const navRef = useRef(null); const [openMenu, setOpenMenu] = useState(false); const [t] = useTranslation('header'); 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 { if (!products) { return; } return (
); } return (
{t('solutions')} {renderLinks()}
{t('blog')} {t('faq')}
setOpenMenu(true)}> {t('menu')}
setOpenMenu(false)} />
); }; export default Menu;