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;