From 3b28543b5818302ace573ebb6a1666ce702aa2a7 Mon Sep 17 00:00:00 2001 From: kaulfield23 Date: Wed, 13 Dec 2023 16:06:22 +0100 Subject: [PATCH 1/3] add eventcreated middleware listener --- src/core/store.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/core/store.ts b/src/core/store.ts index 3d8bbb07fc..502c234cd9 100644 --- a/src/core/store.ts +++ b/src/core/store.ts @@ -17,7 +17,10 @@ import campaignsSlice, { campaignDeleted, CampaignsStoreSlice, } from 'features/campaigns/store'; -import eventsSlice, { EventsStoreSlice } from 'features/events/store'; +import eventsSlice, { + eventCreated, + EventsStoreSlice, +} from 'features/events/store'; import journeysSlice, { journeyInstanceCreated, JourneysStoreSlice, @@ -103,6 +106,16 @@ listenerMiddleware.startListening({ }, }); +listenerMiddleware.startListening({ + actionCreator: eventCreated, + effect: (action) => { + const event = action.payload; + Router.push( + `/organize/${event.organization?.id}/projects/${event.campaign?.id}/events/${event.id}` + ); + }, +}); + listenerMiddleware.startListening({ actionCreator: surveyCreated, effect: (action) => { From d2c1be90dd06db5f4d7b2fa877490456fd79fe36 Mon Sep 17 00:00:00 2001 From: kaulfield23 Date: Thu, 14 Dec 2023 10:33:50 +0100 Subject: [PATCH 2/3] remove middleware, push router instead --- src/core/store.ts | 15 +-------------- src/features/events/hooks/useCreateEvent.ts | 7 ++++++- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/core/store.ts b/src/core/store.ts index 502c234cd9..3d8bbb07fc 100644 --- a/src/core/store.ts +++ b/src/core/store.ts @@ -17,10 +17,7 @@ import campaignsSlice, { campaignDeleted, CampaignsStoreSlice, } from 'features/campaigns/store'; -import eventsSlice, { - eventCreated, - EventsStoreSlice, -} from 'features/events/store'; +import eventsSlice, { EventsStoreSlice } from 'features/events/store'; import journeysSlice, { journeyInstanceCreated, JourneysStoreSlice, @@ -106,16 +103,6 @@ listenerMiddleware.startListening({ }, }); -listenerMiddleware.startListening({ - actionCreator: eventCreated, - effect: (action) => { - const event = action.payload; - Router.push( - `/organize/${event.organization?.id}/projects/${event.campaign?.id}/events/${event.id}` - ); - }, -}); - listenerMiddleware.startListening({ actionCreator: surveyCreated, effect: (action) => { diff --git a/src/features/events/hooks/useCreateEvent.ts b/src/features/events/hooks/useCreateEvent.ts index 12fc261dfc..d83d307fc7 100644 --- a/src/features/events/hooks/useCreateEvent.ts +++ b/src/features/events/hooks/useCreateEvent.ts @@ -1,7 +1,7 @@ import { ZetkinEvent } from 'utils/types/zetkin'; import { ZetkinEventPostBody } from './useEventMutations'; import { eventCreate, eventCreated } from '../store'; -import { useApiClient, useAppDispatch } from 'core/hooks'; +import { useApiClient, useAppDispatch, useEnv } from 'core/hooks'; type useCreateEventReturn = { createEvent: (eventBody: ZetkinEventPostBody) => Promise; @@ -10,6 +10,7 @@ type useCreateEventReturn = { export default function useCreateEvent(orgId: number): useCreateEventReturn { const dispatch = useAppDispatch(); const apiClient = useApiClient(); + const env = useEnv(); const createEvent = async (eventBody: ZetkinEventPostBody) => { dispatch(eventCreate()); @@ -20,6 +21,10 @@ export default function useCreateEvent(orgId: number): useCreateEventReturn { eventBody ); dispatch(eventCreated(event)); + env.router.push( + `/organize/${orgId}/projects/${event.campaign?.id}/events/${event.id}` + ); + return event; }; From eef682ec3f79d0a048f4d603a99e9b24990f5a86 Mon Sep 17 00:00:00 2001 From: kaulfield23 Date: Thu, 14 Dec 2023 11:18:48 +0100 Subject: [PATCH 3/3] use getEventUrl to get event url --- src/features/events/hooks/useCreateEvent.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/features/events/hooks/useCreateEvent.ts b/src/features/events/hooks/useCreateEvent.ts index d83d307fc7..ad8527a246 100644 --- a/src/features/events/hooks/useCreateEvent.ts +++ b/src/features/events/hooks/useCreateEvent.ts @@ -1,3 +1,4 @@ +import getEventUrl from '../utils/getEventUrl'; import { ZetkinEvent } from 'utils/types/zetkin'; import { ZetkinEventPostBody } from './useEventMutations'; import { eventCreate, eventCreated } from '../store'; @@ -21,9 +22,7 @@ export default function useCreateEvent(orgId: number): useCreateEventReturn { eventBody ); dispatch(eventCreated(event)); - env.router.push( - `/organize/${orgId}/projects/${event.campaign?.id}/events/${event.id}` - ); + env.router.push(getEventUrl(event)); return event; };