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 { languageSwitcherVariants } from "./variants"
import styles from "./languageSwitcher.module.css"
import { DropdownType } from "@/types/components/dropdown/dropdown"
import type { LanguageSwitcherProps } from "@/types/components/languageSwitcher/languageSwitcher"
export default function LanguageSwitcher({
@@ -22,22 +23,23 @@ export default function LanguageSwitcher({
}: LanguageSwitcherProps) {
const intl = useIntl()
const currentLanguage = useLang()
const {
toggleLanguageSwitcher,
isHeaderLanguageSwitcherOpen,
isFooterLanguageSwitcherOpen,
} = useDropdownStore()
const { toggleDropdown, openDropdown } = useDropdownStore()
const position = type === "footer" ? "footer" : "header"
const dropdownType =
type === "footer"
? DropdownType.FooterLanguage
: DropdownType.HeaderLanguage
const color = type === "footer" ? "pale" : "burgundy"
const isLanguageSwitcherOpen =
type === "footer"
? isFooterLanguageSwitcherOpen
: isHeaderLanguageSwitcherOpen
? openDropdown === DropdownType.FooterLanguage
: openDropdown === DropdownType.HeaderLanguage
useHandleKeyUp((event: KeyboardEvent) => {
if (event.key === "Escape" && isLanguageSwitcherOpen) {
toggleLanguageSwitcher(position)
toggleDropdown(dropdownType)
}
})
@@ -53,7 +55,7 @@ export default function LanguageSwitcher({
? "Close language menu"
: "Open language menu",
})}
onClick={() => toggleLanguageSwitcher(position)}
onClick={() => toggleDropdown(dropdownType)}
>
<GlobeIcon width={20} height={20} color={color} />
<span>{languages[currentLanguage]}</span>