feat: add my pages mobile dropdown cmoponent, parallel route, and consume + zustand store
This commit is contained in:
committed by
Michael Zetterberg
parent
f5d998d056
commit
cfb08fff2c
31
stores/main-menu.ts
Normal file
31
stores/main-menu.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { create } from "zustand"
|
||||
|
||||
interface DropdownState {
|
||||
isHamburgerMenuOpen: boolean
|
||||
isMyPagesMobileMenuOpen: boolean
|
||||
toggleHamburgerMenu: () => void
|
||||
toggleMyPagesMobileMenu: () => void
|
||||
}
|
||||
|
||||
const useDropdownStore = create<DropdownState>((set) => ({
|
||||
isHamburgerMenuOpen: false,
|
||||
isMyPagesMobileMenuOpen: false,
|
||||
toggleHamburgerMenu: () =>
|
||||
set((state) => {
|
||||
// Close the other dropdown if it's open
|
||||
if (!state.isHamburgerMenuOpen && state.isMyPagesMobileMenuOpen) {
|
||||
set({ isMyPagesMobileMenuOpen: false })
|
||||
}
|
||||
return { isHamburgerMenuOpen: !state.isHamburgerMenuOpen }
|
||||
}),
|
||||
toggleMyPagesMobileMenu: () =>
|
||||
set((state) => {
|
||||
// Close the other dropdown if it's open
|
||||
if (!state.isMyPagesMobileMenuOpen && state.isHamburgerMenuOpen) {
|
||||
set({ isHamburgerMenuOpen: false })
|
||||
}
|
||||
return { isMyPagesMobileMenuOpen: !state.isMyPagesMobileMenuOpen }
|
||||
}),
|
||||
}))
|
||||
|
||||
export default useDropdownStore
|
||||
Reference in New Issue
Block a user