feat(SW-187): Fixed LanguageSwitcher for footer
This commit is contained in:
@@ -6,18 +6,20 @@ interface DropdownState {
|
||||
isHamburgerMenuOpen: boolean
|
||||
isMyPagesMobileMenuOpen: boolean
|
||||
isMyPagesMenuOpen: boolean
|
||||
isLanguageSwitcherOpen: boolean
|
||||
isHeaderLanguageSwitcherOpen: boolean
|
||||
isFooterLanguageSwitcherOpen: boolean
|
||||
toggleHamburgerMenu: () => void
|
||||
toggleMyPagesMobileMenu: () => void
|
||||
toggleMyPagesMenu: () => void
|
||||
toggleLanguageSwitcher: () => void
|
||||
toggleLanguageSwitcher: (location: "header" | "footer") => void
|
||||
}
|
||||
|
||||
const useDropdownStore = create<DropdownState>((set) => ({
|
||||
isHamburgerMenuOpen: false,
|
||||
isMyPagesMobileMenuOpen: false,
|
||||
isMyPagesMenuOpen: false,
|
||||
isLanguageSwitcherOpen: false,
|
||||
isHeaderLanguageSwitcherOpen: false,
|
||||
isFooterLanguageSwitcherOpen: false,
|
||||
toggleHamburgerMenu: () =>
|
||||
set(
|
||||
({ isHamburgerMenuOpen, isMyPagesMenuOpen, isMyPagesMobileMenuOpen }) => {
|
||||
@@ -39,7 +41,8 @@ const useDropdownStore = create<DropdownState>((set) => ({
|
||||
isMyPagesMenuOpen,
|
||||
isMyPagesMobileMenuOpen,
|
||||
isHamburgerMenuOpen,
|
||||
isLanguageSwitcherOpen,
|
||||
isHeaderLanguageSwitcherOpen,
|
||||
isFooterLanguageSwitcherOpen,
|
||||
}) => {
|
||||
// Close the other dropdowns if they're open
|
||||
if (!isMyPagesMobileMenuOpen) {
|
||||
@@ -49,8 +52,11 @@ const useDropdownStore = create<DropdownState>((set) => ({
|
||||
if (isHamburgerMenuOpen) {
|
||||
set({ isHamburgerMenuOpen: false })
|
||||
}
|
||||
if (isLanguageSwitcherOpen) {
|
||||
set({ isLanguageSwitcherOpen: false })
|
||||
if (isHeaderLanguageSwitcherOpen) {
|
||||
set({ isHeaderLanguageSwitcherOpen: false })
|
||||
}
|
||||
if (isFooterLanguageSwitcherOpen) {
|
||||
set({ isFooterLanguageSwitcherOpen: false })
|
||||
}
|
||||
}
|
||||
return { isMyPagesMobileMenuOpen: !isMyPagesMobileMenuOpen }
|
||||
@@ -60,7 +66,8 @@ const useDropdownStore = create<DropdownState>((set) => ({
|
||||
set(
|
||||
({
|
||||
isHamburgerMenuOpen,
|
||||
isLanguageSwitcherOpen,
|
||||
isHeaderLanguageSwitcherOpen,
|
||||
isFooterLanguageSwitcherOpen,
|
||||
isMyPagesMenuOpen,
|
||||
isMyPagesMobileMenuOpen,
|
||||
}) => {
|
||||
@@ -72,32 +79,40 @@ const useDropdownStore = create<DropdownState>((set) => ({
|
||||
if (isMyPagesMobileMenuOpen) {
|
||||
set({ isMyPagesMobileMenuOpen: false })
|
||||
}
|
||||
if (isLanguageSwitcherOpen) {
|
||||
set({ isLanguageSwitcherOpen: false })
|
||||
if (isHeaderLanguageSwitcherOpen) {
|
||||
set({ isHeaderLanguageSwitcherOpen: false })
|
||||
}
|
||||
if (isFooterLanguageSwitcherOpen) {
|
||||
set({ isFooterLanguageSwitcherOpen: false })
|
||||
}
|
||||
}
|
||||
return { isMyPagesMenuOpen: !isMyPagesMenuOpen }
|
||||
}
|
||||
),
|
||||
toggleLanguageSwitcher: () =>
|
||||
set(
|
||||
({
|
||||
isLanguageSwitcherOpen,
|
||||
isMyPagesMenuOpen,
|
||||
isMyPagesMobileMenuOpen,
|
||||
}) => {
|
||||
// Close the other dropdowns if they're open
|
||||
if (!isLanguageSwitcherOpen) {
|
||||
if (isMyPagesMenuOpen) {
|
||||
set({ isMyPagesMenuOpen: false })
|
||||
}
|
||||
if (isMyPagesMobileMenuOpen) {
|
||||
set({ isMyPagesMobileMenuOpen: false })
|
||||
}
|
||||
toggleLanguageSwitcher: (location: "header" | "footer") =>
|
||||
set((state) => {
|
||||
const isCurrentlyOpen =
|
||||
location === "header"
|
||||
? state.isHeaderLanguageSwitcherOpen
|
||||
: state.isFooterLanguageSwitcherOpen
|
||||
|
||||
if (!isCurrentlyOpen) {
|
||||
return {
|
||||
isHeaderLanguageSwitcherOpen: location === "header",
|
||||
isFooterLanguageSwitcherOpen: location === "footer",
|
||||
isMyPagesMenuOpen: false,
|
||||
isMyPagesMobileMenuOpen: false,
|
||||
isHamburgerMenuOpen: false,
|
||||
}
|
||||
return { isLanguageSwitcherOpen: !isLanguageSwitcherOpen }
|
||||
}
|
||||
),
|
||||
|
||||
return {
|
||||
isHeaderLanguageSwitcherOpen:
|
||||
location === "header" ? false : state.isHeaderLanguageSwitcherOpen,
|
||||
isFooterLanguageSwitcherOpen:
|
||||
location === "footer" ? false : state.isFooterLanguageSwitcherOpen,
|
||||
}
|
||||
}),
|
||||
}))
|
||||
|
||||
export default useDropdownStore
|
||||
|
||||
Reference in New Issue
Block a user