27 lines
818 B
TypeScript
27 lines
818 B
TypeScript
import { create } from 'zustand';
|
|
|
|
interface UIState {
|
|
isCartOpen: boolean;
|
|
isLoginModalOpen: boolean;
|
|
isB2BPortalOpen: boolean;
|
|
advisorData: any;
|
|
setCartOpen: (open: boolean) => void;
|
|
setLoginModalOpen: (open: boolean, advisorData?: any) => void;
|
|
setB2BPortalOpen: (open: boolean) => void;
|
|
clearAdvisorData: () => void;
|
|
}
|
|
|
|
export const useUIStore = create<UIState>((set) => ({
|
|
isCartOpen: false,
|
|
isLoginModalOpen: false,
|
|
isB2BPortalOpen: false,
|
|
advisorData: null,
|
|
setCartOpen: (open) => set({ isCartOpen: open }),
|
|
setLoginModalOpen: (open, data) => set((state) => ({
|
|
isLoginModalOpen: open,
|
|
advisorData: data !== undefined ? data : state.advisorData
|
|
})),
|
|
setB2BPortalOpen: (open) => set({ isB2BPortalOpen: open }),
|
|
clearAdvisorData: () => set({ advisorData: null }),
|
|
}));
|