diff --git a/packages/lib/bookingSuccessRedirect.test.ts b/packages/lib/bookingSuccessRedirect.test.ts new file mode 100644 index 00000000000000..c5a919a1bb0ada --- /dev/null +++ b/packages/lib/bookingSuccessRedirect.test.ts @@ -0,0 +1,28 @@ +import { describe, expect, it } from "vitest"; + +import { filterEmbedParameter } from "./bookingSuccessRedirect"; + +describe("Booking Success Redirect", () => { + it(" removes embed parameter", () => { + const params = new URLSearchParams(); + params.append("embed", "namespace"); + params.append("param1", "value1"); + + const filtered = filterEmbedParameter(params, true); + + expect(filtered.has("embed")).toBe(false); + expect(filtered.get("param1")).toBe("value1"); + }); + + it("keeps embed parameter ", () => { + const params = new URLSearchParams(); + params.append("embed", "namespace"); + params.append("param1", "value1"); + + const filtered = filterEmbedParameter(params, false); + + expect(filtered.has("embed")).toBe(true); + expect(filtered.get("embed")).toBe("namespace"); + expect(filtered.get("param1")).toBe("value1"); + }); +}); diff --git a/packages/lib/bookingSuccessRedirect.ts b/packages/lib/bookingSuccessRedirect.ts index c1e0dcb1d0aaab..9fc0fd53f84129 100644 --- a/packages/lib/bookingSuccessRedirect.ts +++ b/packages/lib/bookingSuccessRedirect.ts @@ -149,6 +149,15 @@ export const getBookingRedirectExtraParams = (booking: SuccessRedirectBookingTyp return queryCompatibleParams; }; +export const filterEmbedParameter = (params: URLSearchParams, isEmbed: boolean | undefined) => { + // Only filter embed parameter if we're in an embedded context + if (!isEmbed) return new URLSearchParams(params.toString()); + + const filteredParams = new URLSearchParams(params.toString()); + filteredParams.delete("embed"); + return filteredParams; +}; + export const useBookingSuccessRedirect = () => { const router = useRouter(); const searchParams = useCompatSearchParams(); @@ -185,7 +194,7 @@ export const useBookingSuccessRedirect = () => { ...query, ...bookingExtraParams, }, - searchParams: new URLSearchParams(searchParams.toString()), + searchParams: filterEmbedParameter(searchParams, isEmbed), }); newSearchParams.forEach((value, key) => {