import { create } from "zustand" import type { Ancillary } from "@/types/components/myPages/myStay/ancillaries" interface AddAncillaryState { step: number totalSteps: number nextStep: () => void prevStep: () => void resetStore: () => void selectedAncillary: Ancillary["ancillaryContent"][number] | null setSelectedAncillary: ( ancillary: Ancillary["ancillaryContent"][number] ) => void confirmationNumber: string setConfirmationNumber: (confirmationNumber: string) => void openedFrom: "list" | "grid" | null setOpenedFrom: (source: "list" | "grid") => void isGridOpen: boolean setGridIsOpen: (isOpen: boolean) => void } export const useAddAncillaryStore = create((set) => ({ step: 1, totalSteps: 3, nextStep: () => set((state) => state.step < state.totalSteps ? { step: state.step + 1 } : {} ), prevStep: () => set((state) => (state.step > 1 ? { step: state.step - 1 } : {})), resetStore: () => set({ step: 1 }), selectedAncillary: null, setSelectedAncillary: (ancillary) => set({ selectedAncillary: ancillary }), confirmationNumber: "", setConfirmationNumber: (confirmationNumber) => set({ confirmationNumber: confirmationNumber }), openedFrom: null, setOpenedFrom: (source) => set({ openedFrom: source }), isGridOpen: false, setGridIsOpen: (isOpen) => set({ isGridOpen: isOpen }), }))