frontend/stores/useEventCreationStore.ts (view raw)
1import {create} from 'zustand';
2import {persist, createJSONStorage} from 'zustand/middleware';
3import {EventInput} from '../generated/graphql';
4
5interface State {
6 event: Partial<EventInput>;
7 setField: (fieldName: keyof EventInput, value: unknown) => void;
8}
9
10const useEventCreationStore = create<State>()(
11 persist(
12 (set, get) => ({
13 event: {},
14 setField: (field, value) => {
15 const currentEvent = get().event;
16 set({event: {...currentEvent, [field]: value}});
17 },
18 }),
19 {
20 name: 'event-creation',
21 storage: createJSONStorage(() => localStorage),
22 }
23 )
24);
25
26export default useEventCreationStore;