Merge develop

This commit is contained in:
Linus Flood
2024-09-27 14:20:53 +02:00
171 changed files with 3507 additions and 5188 deletions

View File

@@ -6,9 +6,6 @@ import {
DropdownTypeEnum,
} from "@/types/components/dropdown/dropdown"
// TODO: When MyPagesMobileMenu is removed, also remove the
// isMyPagesMobileMenuOpen state
const useDropdownStore = create<DropdownState>((set, get) => ({
isHamburgerMenuOpen: false,
isMyPagesMobileMenuOpen: false,
@@ -16,32 +13,47 @@ const useDropdownStore = create<DropdownState>((set, get) => ({
isHeaderLanguageSwitcherOpen: false,
isHeaderLanguageSwitcherMobileOpen: false,
isFooterLanguageSwitcherOpen: false,
handleHamburgerClick: () => {
const state = get()
if (state.isMyPagesMobileMenuOpen) {
set({ isMyPagesMobileMenuOpen: false })
} else {
if (state.isHeaderLanguageSwitcherMobileOpen) {
set({ isHeaderLanguageSwitcherMobileOpen: false })
}
if (!state.isFooterLanguageSwitcherOpen) {
set({ isHamburgerMenuOpen: !state.isHamburgerMenuOpen })
} else {
set({ isFooterLanguageSwitcherOpen: false })
}
}
},
openMegaMenu: false,
toggleMegaMenu: (menu: string | false) =>
set(
produce((state: DropdownState) => {
if (state.openMegaMenu === menu) {
state.openMegaMenu = false
} else {
state.openMegaMenu = menu
}
state.isMyPagesMobileMenuOpen = false
state.isMyPagesMenuOpen = false
state.isHeaderLanguageSwitcherOpen = false
state.isHeaderLanguageSwitcherMobileOpen = false
state.isFooterLanguageSwitcherOpen = false
})
),
toggleDropdown: (dropdown: DropdownTypeEnum) =>
set(
produce((state: DropdownState) => {
const hamburgerShouldStayExpanded =
state.isMyPagesMenuOpen ||
state.isHeaderLanguageSwitcherMobileOpen ||
state.isFooterLanguageSwitcherOpen ||
!!state.openMegaMenu
switch (dropdown) {
case DropdownTypeEnum.HamburgerMenu:
state.isHamburgerMenuOpen = !state.isHamburgerMenuOpen
state.isMyPagesMobileMenuOpen = false
state.isMyPagesMenuOpen = false
state.isHeaderLanguageSwitcherOpen = false
state.isHeaderLanguageSwitcherMobileOpen = false
state.isFooterLanguageSwitcherOpen = false
if (state.isHamburgerMenuOpen) {
if (hamburgerShouldStayExpanded) {
state.isMyPagesMobileMenuOpen = false
state.isHeaderLanguageSwitcherMobileOpen = false
state.isFooterLanguageSwitcherOpen = false
state.openMegaMenu = false
} else {
state.isHamburgerMenuOpen = false
}
} else if (state.isMyPagesMobileMenuOpen) {
state.isMyPagesMobileMenuOpen = false
} else {
state.isHamburgerMenuOpen = true
}
break
case DropdownTypeEnum.MyPagesMobileMenu:
state.isMyPagesMobileMenuOpen = !state.isMyPagesMobileMenuOpen
@@ -50,6 +62,7 @@ const useDropdownStore = create<DropdownState>((set, get) => ({
state.isHeaderLanguageSwitcherOpen = false
state.isHeaderLanguageSwitcherMobileOpen = false
state.isFooterLanguageSwitcherOpen = false
state.openMegaMenu = false
break
case DropdownTypeEnum.MyPagesMenu:
state.isMyPagesMenuOpen = !state.isMyPagesMenuOpen
@@ -58,6 +71,7 @@ const useDropdownStore = create<DropdownState>((set, get) => ({
state.isHeaderLanguageSwitcherOpen = false
state.isHeaderLanguageSwitcherMobileOpen = false
state.isFooterLanguageSwitcherOpen = false
state.openMegaMenu = false
break
case DropdownTypeEnum.HeaderLanguageSwitcher:
state.isHeaderLanguageSwitcherOpen =
@@ -67,15 +81,16 @@ const useDropdownStore = create<DropdownState>((set, get) => ({
state.isMyPagesMenuOpen = false
state.isHeaderLanguageSwitcherMobileOpen = false
state.isFooterLanguageSwitcherOpen = false
state.openMegaMenu = false
break
case DropdownTypeEnum.HeaderLanguageSwitcherMobile:
state.isHeaderLanguageSwitcherMobileOpen =
!state.isHeaderLanguageSwitcherMobileOpen
state.isHamburgerMenuOpen = false
state.isMyPagesMobileMenuOpen = false
state.isMyPagesMenuOpen = false
state.isHeaderLanguageSwitcherOpen = false
state.isFooterLanguageSwitcherOpen = false
state.openMegaMenu = false
break
case DropdownTypeEnum.FooterLanguageSwitcher:
state.isFooterLanguageSwitcherOpen =
@@ -85,6 +100,7 @@ const useDropdownStore = create<DropdownState>((set, get) => ({
state.isMyPagesMenuOpen = false
state.isHeaderLanguageSwitcherOpen = false
state.isHeaderLanguageSwitcherMobileOpen = false
state.openMegaMenu = false
if (state.isFooterLanguageSwitcherOpen) {
document.body.classList.add("overflow-hidden")
} else {