all repos — caroster @ a781a5fafbf60b3c6587213cf3c9bfb735bdf933

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

frontend/containers/CreateEvent/index.js (view raw)

 1import {useState, useReducer} from 'react';
 2import Step1 from './Step1';
 3import Step2 from './Step2';
 4import {useCreateEventMutation} from '../../generated/graphql';
 5
 6const STEPS = [Step1, Step2];
 7
 8const CreateEvent = () => {
 9  const [step, setStep] = useState(0);
10  const [event, addToEvent] = useReducer(eventReducer, {});
11  const [sendEvent] = useCreateEventMutation();
12  const Step = STEPS[step];
13
14  const createEvent = async eventData => {
15    try {
16      const variables = {...event, ...eventData};
17      const {data} = await sendEvent({variables});
18      const returnedEvent = data.createEvent.event;
19      return returnedEvent;
20    } catch (err) {
21      console.error(err);
22      return false;
23    }
24  };
25
26  return (
27    <Step
28      event={event}
29      addToEvent={addToEvent}
30      createEvent={createEvent}
31      nextStep={() => setStep(step + 1)}
32      previousStep={() => setStep(step - 1)}
33      id="NewEvent"
34    />
35  );
36};
37
38const eventReducer = (state, item) => ({...state, ...item});
39
40export default CreateEvent;