canina/frontend/application/lib/store/uiStore.ts

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 }),
}));