/
vinderman
/
presentation
Обзор
Документация
Войти
/
vinderman
/
presentation
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
business/EventForm/store/useEventStore.ts
1 строка
1 KB
kalev
initial commit
06 май 2024, 12:05
06 май 2024, 12:05
4258fa9
Код
Авторство
О чём код?
import { EventCreateSteps } from '../utils/constants' import { CreateEventRequest } from '../../../../mock-server/api/data-contracts' import { createWithEqualityFn } from 'zustand/traditional' import { shallow } from 'zustand/shallow' export const EMPTY_MEETING_FORM: Partial<CreateEventRequest> = { // step 1 name: '', type: undefined, // step 2 formType: undefined, date: '', time: '', place: '', endDate: '', registrationMethod: '', registrationStartTime: '', registrationEndTime: '', lockParticipantsDate: '', creator: '', acquaintanceOrder: '', questions: [], participantIds: [], votingType: undefined, votingStartDate: undefined, votingEndDate: undefined } export interface UseEventCreateStore { step: EventCreateSteps form: Partial<CreateEventRequest> setStep: (payload: EventCreateSteps) => void updateForm: (payload: Partial<CreateEventRequest>) => void reset: () => void } const useEventCreateStore = createWithEqualityFn<UseEventCreateStore>( (set) => ({ step: EventCreateSteps.One, form: EMPTY_MEETING_FORM, setStep: (payload) => { set(() => ({ step: payload })) }, updateForm: (payload) => { set((state) => ({ ...state, form: { ...state.form, ...payload } })) }, reset: () => { set((state) => ({ ...state, form: EMPTY_MEETING_FORM, step: EventCreateSteps.One, templateId: undefined })) } }), shallow ) export default useEventCreateStore