all repos — caroster @ b8b34223c99fc20b7f329b2950cbe0375ebeec5b

[Octree] Group carpool to your event https://caroster.io

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;