fix(SW-272): now closing hamburger menu upon navigation from mega menu
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user