feat(SW-187): simplify dropdown menu

This commit is contained in:
Pontus Dreij
2024-09-09 14:58:22 +02:00
parent ef33d082d8
commit 07eb0401bb
9 changed files with 93 additions and 158 deletions

View File

@@ -14,6 +14,7 @@ import NavigationMenu from "../NavigationMenu"
import styles from "./mobileMenu.module.css"
import { DropdownType } from "@/types/components/dropdown/dropdown"
import type { MobileMenuProps } from "@/types/components/header/mobileMenu"
export default function MobileMenu({
@@ -22,30 +23,28 @@ export default function MobileMenu({
topLink,
}: MobileMenuProps) {
const intl = useIntl()
const {
isHamburgerMenuOpen,
isMyPagesMobileMenuOpen,
isHeaderLanguageSwitcherOpen,
toggleHamburgerMenu,
toggleMyPagesMobileMenu,
toggleLanguageSwitcher,
} = useDropdownStore()
const { toggleDropdown, openDropdown } = useDropdownStore()
const isHamburgerMenuOpen = openDropdown === DropdownType.HamburgerMenu
const isMyPagesMobileMenuOpen =
openDropdown === DropdownType.MyPagesMobileMenu
const isHeaderLanguageSwitcherOpen =
openDropdown === DropdownType.HeaderLanguage
useHandleKeyUp((event: KeyboardEvent) => {
if (event.key === "Escape" && isHamburgerMenuOpen) {
toggleHamburgerMenu()
toggleDropdown(DropdownType.HamburgerMenu)
}
})
function handleHamburgerClick() {
if (isMyPagesMobileMenuOpen) {
toggleMyPagesMobileMenu()
toggleDropdown(DropdownType.MyPagesMobileMenu)
} else {
if (isHeaderLanguageSwitcherOpen) {
toggleLanguageSwitcher("header")
toggleDropdown(DropdownType.HeaderLanguage)
}
toggleHamburgerMenu()
toggleDropdown(DropdownType.HamburgerMenu)
}
}
@@ -61,7 +60,10 @@ export default function MobileMenu({
>
<span className={styles.bar}></span>
</button>
<Modal className={styles.modal} isOpen={isHamburgerMenuOpen}>
<Modal
className={styles.modal}
isOpen={isHamburgerMenuOpen || isHeaderLanguageSwitcherOpen}
>
<Dialog
className={styles.dialog}
aria-label={intl.formatMessage({ id: "Menu" })}