all repos — caroster @ 671bf12812b5cb332d94dcd491e18b7264d4844e

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

app/src/containers/CreateEvent/index.js (view raw)

 1import React, {useState, useReducer} from 'react';
 2import {useStrapi} from 'strapi-react-context';
 3import useProfile from '../../hooks/useProfile';
 4
 5// Steps
 6import Step1 from './Step1';
 7import Step2 from './Step2';
 8
 9const steps = [Step1, Step2];
10
11const eventReducer = (state, item) => ({...state, ...item});
12
13const CreateEvent = () => {
14  const strapi = useStrapi();
15  const [step, setStep] = useState(0);
16  const [event, addToEvent] = useReducer(eventReducer, {});
17  const Step = steps[step];
18  const {connected, addEvent} = useProfile();
19
20  const createEvent = async eventData => {
21    try {
22      const result = await strapi.services.events.create({
23        ...event,
24        ...eventData,
25      });
26      if (connected) addEvent(result);
27      return result;
28    } catch (err) {
29      console.error(err);
30      return false;
31    }
32  };
33
34  return (
35    <Step
36      event={event}
37      addToEvent={addToEvent}
38      createEvent={createEvent}
39      nextStep={() => setStep(step + 1)}
40      previousStep={() => setStep(step - 1)}
41      id="NewEvent"
42    />
43  );
44};
45
46export default CreateEvent;