diff --git a/packages/lib/bookingSuccessRedirect.ts b/packages/lib/bookingSuccessRedirect.ts index 2e90e973d7..fbc479052d 100644 --- a/packages/lib/bookingSuccessRedirect.ts +++ b/packages/lib/bookingSuccessRedirect.ts @@ -120,18 +120,21 @@ export const getBookingRedirectExtraParams = (booking: SuccessRedirectBookingTyp }; } - const result = (Object.keys(booking) as BookingResponseKey[]) + const bookingParams = (Object.keys(booking) as BookingResponseKey[]) .filter((key) => redirectQueryParamKeys.includes(key)) - .reduce((obj, key) => { - if (key === "responses") return extractResponseDetails(booking, obj); - if (key === "user") return extractUserDetails(booking, obj); - if (key === "attendees") return extractAttendeesAndGuests(booking, obj); - return { ...obj, [key]: booking[key] }; - }, {}); + .reduce( + (obj, key) => { + if (key === "responses") return extractResponseDetails(booking, obj); + if (key === "user") return extractUserDetails(booking, obj); + if (key === "attendees") return extractAttendeesAndGuests(booking, obj); + return { ...obj, [key]: booking[key] }; + }, + { uid: booking.uid } + ); const queryCompatibleParams: Record = { ...Object.fromEntries( - Object.entries(result).map(([key, value]) => { + Object.entries(bookingParams).map(([key, value]) => { if (Array.isArray(value)) { return [key, value.join(", ")]; } @@ -142,10 +145,10 @@ export const getBookingRedirectExtraParams = (booking: SuccessRedirectBookingTyp return [key, value]; }) ), - hostName: result.hostName?.join(", "), - attendeeName: result.attendeeName || undefined, - hostStartTime: result.hostStartTime || undefined, - attendeeStartTime: result.attendeeStartTime || undefined, + hostName: bookingParams.hostName?.join(", "), + attendeeName: bookingParams.attendeeName || undefined, + hostStartTime: bookingParams.hostStartTime || undefined, + attendeeStartTime: bookingParams.attendeeStartTime || undefined, }; return queryCompatibleParams; @@ -179,7 +182,9 @@ export const useBookingSuccessRedirect = () => { navigateInTopWindow(url.toString()); return; } + const bookingExtraParams = getBookingRedirectExtraParams(booking); + const newSearchParams = getNewSearchParams({ query: { ...query, @@ -187,6 +192,7 @@ export const useBookingSuccessRedirect = () => { }, searchParams: searchParams ?? undefined, }); + newSearchParams.forEach((value, key) => { url.searchParams.append(key, value); });