"use client" import { useEffect } from "react" import { Dialog, Modal } from "react-aria-components" import { useIntl } from "react-intl" import { useMediaQuery } from "usehooks-ts" import { findMyBooking } from "@/constants/myBooking" import useDropdownStore from "@/stores/main-menu" import LanguageSwitcher from "@/components/LanguageSwitcher" import { useHandleKeyUp } from "@/hooks/useHandleKeyUp" import useLang from "@/hooks/useLang" import HeaderLink from "../../HeaderLink" import TopLink from "../../TopLink" import styles from "./mobileMenu.module.css" import { DropdownTypeEnum } from "@/types/components/dropdown/dropdown" import type { MobileMenuProps } from "@/types/components/header/mobileMenu" import { IconName } from "@/types/components/icon" export default function MobileMenu({ children, topLink, isLoggedIn, }: React.PropsWithChildren) { const lang = useLang() const intl = useIntl() const { toggleDropdown, isHamburgerMenuOpen, isMyPagesMobileMenuOpen, isHeaderLanguageSwitcherMobileOpen, isFooterLanguageSwitcherOpen, } = useDropdownStore() const isHamburgerExtended = isHamburgerMenuOpen || isMyPagesMobileMenuOpen || isHeaderLanguageSwitcherMobileOpen || isFooterLanguageSwitcherOpen const isAboveMobile = useMediaQuery("(min-width: 768px)") useEffect(() => { if (isAboveMobile && isHamburgerMenuOpen) { toggleDropdown(DropdownTypeEnum.HamburgerMenu) } }, [isAboveMobile, isHamburgerMenuOpen, toggleDropdown]) useHandleKeyUp((event: KeyboardEvent) => { if (event.key === "Escape" && isHamburgerMenuOpen) { toggleDropdown(DropdownTypeEnum.HamburgerMenu) } }) // Making sure the menu is always opened at the top of the page, just below the header. useEffect(() => { if (isHamburgerMenuOpen) { window.scrollTo({ top: 0, behavior: "instant" }) } }, [isHamburgerMenuOpen]) const closeMsg = intl.formatMessage({ id: "Close menu", }) const openMsg = intl.formatMessage({ id: "Open menu", }) return ( <> {children}
{intl.formatMessage({ id: "Find booking" })} {intl.formatMessage({ id: "Customer service" })}
) } export function MobileMenuSkeleton() { const intl = useIntl() return ( ) }