feat(SW-187): simplify dropdown menu
This commit is contained in:
@@ -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" })}
|
||||
|
||||
Reference in New Issue
Block a user