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

@@ -7,7 +7,6 @@ import useDropdownStore from "@/stores/main-menu"
import { ChevronDownIcon } from "@/components/Icons"
import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
import { useHandleKeyUp } from "@/hooks/useHandleKeyUp"
import useLang from "@/hooks/useLang"
import { getInitials } from "@/utils/user"
import Avatar from "../Avatar"
@@ -16,6 +15,7 @@ import MyPagesMenuContent from "../MyPagesMenuContent"
import styles from "./myPagesMenu.module.css"
import { DropdownType } from "@/types/components/dropdown/dropdown"
import type { MyPagesMenuProps } from "@/types/components/header/myPagesMenu"
export default function MyPagesMenu({
@@ -24,18 +24,22 @@ export default function MyPagesMenu({
user,
}: MyPagesMenuProps) {
const intl = useIntl()
const lang = useLang()
const { toggleMyPagesMenu, isMyPagesMenuOpen } = useDropdownStore()
const { toggleDropdown, openDropdown } = useDropdownStore()
const isMyPagesMenuOpen = openDropdown === DropdownType.MyPagesMenu
useHandleKeyUp((event: KeyboardEvent) => {
if (event.key === "Escape" && isMyPagesMenuOpen) {
toggleMyPagesMenu()
toggleDropdown(DropdownType.MyPagesMenu)
}
})
return (
<div className={styles.myPagesMenu}>
<MainMenuButton className={styles.button} onClick={toggleMyPagesMenu}>
<MainMenuButton
className={styles.button}
onClick={() => toggleDropdown(DropdownType.MyPagesMenu)}
>
<Avatar initials={getInitials(user.firstName, user.lastName)} />
<Subtitle type="two" className={styles.userName}>
{intl.formatMessage({ id: "Hi" })} {user.firstName}!
@@ -51,7 +55,7 @@ export default function MyPagesMenu({
navigation={navigation}
user={user}
membership={membership}
toggleOpenStateFn={toggleMyPagesMenu}
toggleOpenStateFn={() => toggleDropdown(DropdownType.MyPagesMenu)}
/>
</div>
) : null}