Files
web/apps/scandic-web/components/LanguageSwitcher/LanguageSwitcherContainer/index.tsx
Matilda Landström 1239f0c662 Merged in feat/SW-1711-SW-2077-icons (pull request #1709)
Fix(SW-1711)/(SW-2077): Export icons individually

* fix(SW-1711): export icons individually


Approved-by: Michael Zetterberg
Approved-by: Erik Tiekstra
2025-04-07 07:25:25 +00:00

71 lines
2.0 KiB
TypeScript

import { useIntl } from "react-intl"
import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
import useDropdownStore from "@/stores/main-menu"
import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
import styles from "./languageSwitcherContainer.module.css"
import { DropdownTypeEnum } from "@/types/components/dropdown/dropdown"
import {
type LanguageSwitcherContainerProps,
LanguageSwitcherTypesEnum,
} from "@/types/components/languageSwitcher/languageSwitcher"
export default function LanguageSwitcherContainer({
children,
type,
}: LanguageSwitcherContainerProps) {
const { toggleDropdown } = useDropdownStore()
const intl = useIntl()
const isFooter = type === LanguageSwitcherTypesEnum.Footer
const isMobileHeader = type === LanguageSwitcherTypesEnum.MobileHeader
const position = isFooter
? DropdownTypeEnum.FooterLanguageSwitcher
: DropdownTypeEnum.HamburgerMenu
return (
<div>
{isMobileHeader ? (
<div className={styles.backWrapper}>
<button
type="button"
className={styles.backButton}
onClick={() => toggleDropdown(position)}
>
<MaterialIcon
icon="chevron_left"
color="Icon/Interactive/Accent"
size={20}
/>
<Subtitle type="one" asChild>
<span>
{intl.formatMessage({
id: "Main menu",
})}
</span>
</Subtitle>
</button>
</div>
) : null}
{isFooter ? (
<div className={styles.closeWrapper}>
<button
type="button"
className={styles.closeButton}
aria-label={intl.formatMessage({
id: "Close menu",
})}
onClick={() => toggleDropdown(position)}
>
<span className={styles.bar} />
</button>
</div>
) : null}
{children}
</div>
)
}