"use client" import { useIntl } from "react-intl" import { languages } from "@/constants/languages" import useDropdownStore from "@/stores/main-menu" import { ChevronDownIcon, GlobeIcon } from "@/components/Icons" import { useHandleKeyUp } from "@/hooks/useHandleKeyUp" import useLang from "@/hooks/useLang" import LanguageSwitcherContent from "./LanguageSwitcherContent" import { languageSwitcherVariants } from "./variants" import styles from "./languageSwitcher.module.css" import { DropdownTypeEnum } from "@/types/components/dropdown/dropdown" import type { LanguageSwitcherProps } from "@/types/components/languageSwitcher/languageSwitcher" export default function LanguageSwitcher({ urls, type, }: LanguageSwitcherProps) { const intl = useIntl() const currentLanguage = useLang() const { toggleDropdown, isFooterLanguageSwitcherOpen, isHeaderLanguageSwitcherOpen, isHeaderLanguageSwitcherMobileOpen, } = useDropdownStore() const position = type === "footer" ? "footer" : "header" const color = type === "footer" ? "pale" : "burgundy" const dropdownType = { footer: DropdownTypeEnum.FooterLanguageSwitcher, desktopHeader: DropdownTypeEnum.HeaderLanguageSwitcher, mobileHeader: DropdownTypeEnum.HeaderLanguageSwitcherMobile, }[type] const isLanguageSwitcherOpen = (type === "footer" && isFooterLanguageSwitcherOpen) || (type !== "footer" && (isHeaderLanguageSwitcherOpen || isHeaderLanguageSwitcherMobileOpen)) useHandleKeyUp((event: KeyboardEvent) => { if (event.key === "Escape" && isLanguageSwitcherOpen) { toggleDropdown(dropdownType) } }) const classNames = languageSwitcherVariants({ color, position }) return (