diff --git a/packages/features/bookings/Booker/__tests__/test-utils.tsx b/packages/features/bookings/Booker/__tests__/test-utils.tsx index 49202e56c7..f0bde6342a 100644 --- a/packages/features/bookings/Booker/__tests__/test-utils.tsx +++ b/packages/features/bookings/Booker/__tests__/test-utils.tsx @@ -51,6 +51,7 @@ const createMockStore = (initialState?: Partial): StoreApi state.eventId); const isInstantMeeting = useBookerStoreContext((state) => state.isInstantMeeting); - const rescheduleUid = useBookerStoreContext((state) => state.rescheduleUid); + const [rescheduleUid, setRescheduleUid] = useBookerStoreContext( + (state) => [state.rescheduleUid, state.setRescheduleUid], + shallow + ); const rescheduledBy = useBookerStoreContext((state) => state.rescheduledBy); - const bookingData = useBookerStoreContext((state) => state.bookingData); + const [bookingData, setBookingData] = useBookerStoreContext( + (state) => [state.bookingData, state.setBookingData], + shallow + ); const timeslot = useBookerStoreContext((state) => state.selectedTimeslot); const { t } = useLocale(); const bookingSuccessRedirect = useBookingSuccessRedirect(); @@ -383,16 +389,12 @@ export const useBookings = ({ }; if (error.message === ErrorCode.BookerLimitExceededReschedule && error.data?.rescheduleUid) { - useBookerStore.setState({ - rescheduleUid: error.data?.rescheduleUid, - }); - useBookerStore.setState({ - bookingData: { - uid: error.data?.rescheduleUid, - startTime: error.data?.startTime, - attendees: error.data?.attendees, - } as unknown as GetBookingType, - }); + setRescheduleUid(error.data?.rescheduleUid); + setBookingData({ + uid: error.data?.rescheduleUid, + startTime: error.data?.startTime, + attendees: error.data?.attendees, + } as unknown as GetBookingType); } }, }); diff --git a/packages/features/bookings/Booker/store.ts b/packages/features/bookings/Booker/store.ts index 39d97e5b40..5f63454b4e 100644 --- a/packages/features/bookings/Booker/store.ts +++ b/packages/features/bookings/Booker/store.ts @@ -138,6 +138,7 @@ export type BookerStore = { * object is something that's fetched server side. */ rescheduleUid: string | null; + setRescheduleUid: (rescheduleUid: string | null) => void; rescheduledBy: string | null; bookingUid: string | null; bookingData: GetBookingType | null; @@ -415,6 +416,9 @@ export const createBookerStore = () => setBookingData: (bookingData: GetBookingType | null | undefined) => { set({ bookingData: bookingData ?? null }); }, + setRescheduleUid: (rescheduleUid: string | null) => { + set({ rescheduleUid }); + }, recurringEventCount: null, setRecurringEventCount: (recurringEventCount: number | null) => set({ recurringEventCount }), occurenceCount: null,