feat(SW-184): my pages menu mobile/desktop functionality

This commit is contained in:
Erik Tiekstra
2024-08-23 13:25:41 +02:00
parent 7ef7b4a544
commit bdec054ecd
22 changed files with 459 additions and 226 deletions

View File

@@ -19,44 +19,85 @@ const useDropdownStore = create<DropdownState>((set) => ({
isMyPagesMenuOpen: false,
isLanguageSwitcherOpen: false,
toggleHamburgerMenu: () =>
set(({ isHamburgerMenuOpen, isMyPagesMenuOpen }) => {
// Close the other dropdown if it's open
if (!isHamburgerMenuOpen && isMyPagesMenuOpen) {
set({ isMyPagesMenuOpen: false })
set(
({ isHamburgerMenuOpen, isMyPagesMenuOpen, isMyPagesMobileMenuOpen }) => {
// Close the other dropdowns if they're open
if (!isHamburgerMenuOpen) {
if (isMyPagesMenuOpen) {
set({ isMyPagesMenuOpen: false })
}
if (isMyPagesMobileMenuOpen) {
set({ isMyPagesMobileMenuOpen: false })
}
}
return { isHamburgerMenuOpen: !isHamburgerMenuOpen }
}
return { isHamburgerMenuOpen: !isHamburgerMenuOpen }
}),
// toggleHamburgerMenu: () =>
// set((state) => ({ isHamburgerMenuOpen: !state.isHamburgerMenuOpen })),
),
toggleMyPagesMobileMenu: () =>
set((state) => {
// Close the other dropdown if it's open
if (!state.isMyPagesMobileMenuOpen && state.isHamburgerMenuOpen) {
set({ isHamburgerMenuOpen: false })
set(
({
isMyPagesMenuOpen,
isMyPagesMobileMenuOpen,
isHamburgerMenuOpen,
isLanguageSwitcherOpen,
}) => {
// Close the other dropdowns if they're open
if (!isMyPagesMobileMenuOpen) {
if (isMyPagesMenuOpen) {
set({ isMyPagesMenuOpen: false })
}
if (isHamburgerMenuOpen) {
set({ isHamburgerMenuOpen: false })
}
if (isLanguageSwitcherOpen) {
set({ isLanguageSwitcherOpen: false })
}
}
return { isMyPagesMobileMenuOpen: !isMyPagesMobileMenuOpen }
}
return { isMyPagesMobileMenuOpen: !state.isMyPagesMobileMenuOpen }
}),
),
toggleMyPagesMenu: () =>
set(
({ isHamburgerMenuOpen, isLanguageSwitcherOpen, isMyPagesMenuOpen }) => {
// Close the other dropdown if it's open
if (!isMyPagesMenuOpen && isLanguageSwitcherOpen) {
set({ isLanguageSwitcherOpen: false })
}
if (!isMyPagesMenuOpen && isHamburgerMenuOpen) {
set({ isHamburgerMenuOpen: false })
({
isHamburgerMenuOpen,
isLanguageSwitcherOpen,
isMyPagesMenuOpen,
isMyPagesMobileMenuOpen,
}) => {
// Close the other dropdowns if they're open
if (!isMyPagesMenuOpen) {
if (isHamburgerMenuOpen) {
set({ isHamburgerMenuOpen: false })
}
if (isMyPagesMobileMenuOpen) {
set({ isMyPagesMobileMenuOpen: false })
}
if (isLanguageSwitcherOpen) {
set({ isLanguageSwitcherOpen: false })
}
}
return { isMyPagesMenuOpen: !isMyPagesMenuOpen }
}
),
toggleLanguageSwitcher: () =>
set(({ isLanguageSwitcherOpen, isMyPagesMenuOpen }) => {
// Close the other dropdown if it's open
if (!isLanguageSwitcherOpen && isMyPagesMenuOpen) {
set({ isMyPagesMenuOpen: false })
set(
({
isLanguageSwitcherOpen,
isMyPagesMenuOpen,
isMyPagesMobileMenuOpen,
}) => {
// Close the other dropdowns if they're open
if (!isLanguageSwitcherOpen) {
if (isMyPagesMenuOpen) {
set({ isMyPagesMenuOpen: false })
}
if (isMyPagesMobileMenuOpen) {
set({ isMyPagesMobileMenuOpen: false })
}
}
return { isLanguageSwitcherOpen: !isLanguageSwitcherOpen }
}
return { isLanguageSwitcherOpen: !isLanguageSwitcherOpen }
}),
),
}))
export default useDropdownStore