fix(SW-272): now closing hamburger menu upon navigation from mega menu

This commit is contained in:
Erik Tiekstra
2024-09-27 09:34:17 +02:00
parent 3f7b8a524e
commit b72d2aae3d

View File

@@ -11,6 +11,7 @@ import { useTrapFocus } from "@/hooks/useTrapFocus"
import styles from "./megaMenu.module.css" import styles from "./megaMenu.module.css"
import { DropdownTypeEnum } from "@/types/components/dropdown/dropdown"
import type { MegaMenuProps } from "@/types/components/header/megaMenu" import type { MegaMenuProps } from "@/types/components/header/megaMenu"
export default function MegaMenu({ export default function MegaMenu({
@@ -20,12 +21,17 @@ export default function MegaMenu({
submenu, submenu,
card, card,
}: MegaMenuProps) { }: MegaMenuProps) {
const { toggleMegaMenu } = useDropdownStore() const { toggleMegaMenu, toggleDropdown, isHamburgerMenuOpen } =
useDropdownStore()
const megaMenuRef = useTrapFocus() const megaMenuRef = useTrapFocus()
function closeMegaMenu() { function handleNavigate() {
toggleMegaMenu(false) toggleMegaMenu(false)
if (isHamburgerMenuOpen) {
toggleDropdown(DropdownTypeEnum.HamburgerMenu)
} }
}
return ( return (
<nav className={styles.megaMenu}> <nav className={styles.megaMenu}>
{isMobile ? ( {isMobile ? (
@@ -33,7 +39,7 @@ export default function MegaMenu({
<button <button
type="button" type="button"
className={styles.backButton} className={styles.backButton}
onClick={closeMegaMenu} onClick={() => toggleMegaMenu(false)}
> >
<ChevronLeftIcon color="red" /> <ChevronLeftIcon color="red" />
<Subtitle type="one" color="burgundy"> <Subtitle type="one" color="burgundy">
@@ -49,7 +55,7 @@ export default function MegaMenu({
href={seeAllLink.link.url} href={seeAllLink.link.url}
color="burgundy" color="burgundy"
variant="icon" variant="icon"
onClick={closeMegaMenu} onClick={handleNavigate}
> >
{seeAllLink.title} {seeAllLink.title}
<ArrowRightIcon color="burgundy" /> <ArrowRightIcon color="burgundy" />
@@ -70,7 +76,7 @@ export default function MegaMenu({
href={link.url} href={link.url}
variant="menu" variant="menu"
className={styles.link} className={styles.link}
onClick={closeMegaMenu} onClick={handleNavigate}
> >
{title} {title}
<ArrowRightIcon <ArrowRightIcon
@@ -95,8 +101,8 @@ export default function MegaMenu({
primaryButton={card.primaryButton} primaryButton={card.primaryButton}
secondaryButton={card.secondaryButton} secondaryButton={card.secondaryButton}
scriptedTopTitle={card.scripted_top_title} scriptedTopTitle={card.scripted_top_title}
onPrimaryButtonClick={closeMegaMenu} onPrimaryButtonClick={handleNavigate}
onSecondaryButtonClick={closeMegaMenu} onSecondaryButtonClick={handleNavigate}
theme="image" theme="image"
/> />
</div> </div>