2025-05-08 19:30:00 +03:00

40 lines
1.2 KiB
TypeScript

/* eslint-disable @typescript-eslint/naming-convention */
/* eslint-disable canonical/id-match */
import { type OrderStore } from './types';
import { createStore } from 'zustand';
export function createOrderStore() {
return createStore<OrderStore>((set, get) => ({
_setStepSequence: (steps) => set({ _stepSequence: steps }),
_stepSequence: [],
clientId: null,
date: new Date(),
masterId: null,
nextStep: () => {
const { _stepSequence, step } = get();
const index = _stepSequence.indexOf(step);
const next = _stepSequence[index + 1];
if (next) set({ step: next });
},
prevStep: () => {
const { _stepSequence, step } = get();
const index = _stepSequence.indexOf(step);
const previous = _stepSequence[index - 1];
if (previous) set({ step: previous });
},
serviceId: null,
setClientId: (id) => set({ clientId: id }),
setDate: (date) => set({ date }),
setMasterId: (id) => set({ masterId: id }),
setServiceId: (id) => set({ serviceId: id }),
setSlotId: (id) => set({ slotId: id }),
setStep: (step) => set({ step }),
setTime: (time) => set({ time }),
slotId: null,
step: 'loading',
time: null,
}));
}