all repos — caroster @ b2a5134b5c341777cf857dc3e253ef93bbbc3215

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