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;