From 45f61bd81e2b65b828f2c006a180f110a71423e4 Mon Sep 17 00:00:00 2001 From: Bianca Widstam Date: Tue, 13 May 2025 06:51:31 +0000 Subject: [PATCH] Merged in fix/SW-2716-wrong-package-for-breakfast (pull request #2063) fix: add correct package for callback * fix: add correct package for callback Approved-by: Niclas Edenvin Approved-by: Linus Flood --- .../AddAncillaryFlowModal/index.tsx | 9 +++++---- .../MyStay/Ancillaries/GuaranteeCallback/index.tsx | 10 ++++++---- .../HotelReservation/MyStay/TrackGuarantee.tsx | 14 +++----------- .../HotelReservation/MyStay/utils/ancillaries.ts | 13 ++++++++++++- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/AddAncillaryFlow/AddAncillaryFlowModal/index.tsx b/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/AddAncillaryFlow/AddAncillaryFlowModal/index.tsx index 7fa22551f..9ab835a76 100644 --- a/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/AddAncillaryFlow/AddAncillaryFlowModal/index.tsx +++ b/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/AddAncillaryFlow/AddAncillaryFlowModal/index.tsx @@ -248,10 +248,6 @@ export default function AddAncillaryFlowModal({ const onSubmit = (data: AncillaryFormData) => { if (!validateTermsAndConditions(data)) return - setAncillarySessionData({ - formData: data, - selectedAncillary, - }) const packagesToAdd = !isBreakfast ? buildAncillaryPackages(data, selectedAncillary) : breakfastData @@ -266,6 +262,11 @@ export default function AddAncillaryFlowModal({ ) return } + setAncillarySessionData({ + formData: data, + selectedAncillary, + packages: packagesToAdd, + }) const shouldSkipGuarantee = booking.guaranteeInfo || (data.quantityWithCard ?? 0) <= 0 diff --git a/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/GuaranteeCallback/index.tsx b/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/GuaranteeCallback/index.tsx index 47def4279..6bfecf4fe 100644 --- a/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/GuaranteeCallback/index.tsx +++ b/apps/scandic-web/components/HotelReservation/MyStay/Ancillaries/GuaranteeCallback/index.tsx @@ -6,7 +6,6 @@ import { useEffect } from "react" import { trpc } from "@/lib/trpc/client" import { - buildAncillaryPackages, clearAncillarySessionData, getAncillarySessionData, } from "@/components/HotelReservation/MyStay/utils/ancillaries" @@ -39,13 +38,16 @@ export default function GuaranteeAncillaryHandler({ } const sessionData = getAncillarySessionData() - if (!sessionData?.formData || !sessionData?.selectedAncillary) { + if ( + !sessionData?.formData || + !sessionData?.selectedAncillary || + !sessionData?.packages + ) { router.replace(`${returnUrl}&errorCode=AncillaryFailed`) return } - const { formData, selectedAncillary } = sessionData - const packages = buildAncillaryPackages(formData, selectedAncillary) + const { formData, selectedAncillary, packages } = sessionData addAncillary.mutate( { diff --git a/apps/scandic-web/components/HotelReservation/MyStay/TrackGuarantee.tsx b/apps/scandic-web/components/HotelReservation/MyStay/TrackGuarantee.tsx index 77896769d..18edeb8d1 100644 --- a/apps/scandic-web/components/HotelReservation/MyStay/TrackGuarantee.tsx +++ b/apps/scandic-web/components/HotelReservation/MyStay/TrackGuarantee.tsx @@ -9,10 +9,7 @@ import { clearGlaSessionStorage, readGlaFromSessionStorage, } from "@/components/HotelReservation/EnterDetails/Payment/PaymentCallback/helpers" -import { - buildAncillaryPackages, - getAncillarySessionData, -} from "@/components/HotelReservation/MyStay/utils/ancillaries" +import { getAncillarySessionData } from "@/components/HotelReservation/MyStay/utils/ancillaries" import LoadingSpinner from "@/components/LoadingSpinner" import { trackEvent } from "@/utils/tracking/base" import { buildAncillaries } from "@/utils/tracking/myStay" @@ -35,12 +32,7 @@ export default function TrackGuarantee({ useEffect(() => { const trackAncillaryPaymentEvent = (event: string, status: string) => { const sessionData = getAncillarySessionData() - const { formData, selectedAncillary } = sessionData || {} - - const packages = - formData && selectedAncillary - ? buildAncillaryPackages(formData, selectedAncillary) - : [] + const { formData, selectedAncillary, packages } = sessionData || {} trackEvent({ event, @@ -51,7 +43,7 @@ export default function TrackGuarantee({ guaranteedProduct: "room + ancillary", }, ancillaries: buildAncillaries( - packages, + packages ?? [], selectedAncillary, formData?.deliveryTime ), diff --git a/apps/scandic-web/components/HotelReservation/MyStay/utils/ancillaries.ts b/apps/scandic-web/components/HotelReservation/MyStay/utils/ancillaries.ts index 46d294ad5..07442f21b 100644 --- a/apps/scandic-web/components/HotelReservation/MyStay/utils/ancillaries.ts +++ b/apps/scandic-web/components/HotelReservation/MyStay/utils/ancillaries.ts @@ -43,6 +43,11 @@ export const getAncillarySessionData = (): | { formData?: AncillaryFormData selectedAncillary?: Ancillary["ancillaryContent"][number] | null + packages: { + code: string + quantity: number + comment: string | undefined + }[] } | undefined => { if (typeof window === "undefined") return undefined @@ -59,9 +64,15 @@ export const getAncillarySessionData = (): export function setAncillarySessionData({ formData, selectedAncillary, + packages, }: { formData?: AncillaryFormData selectedAncillary?: Ancillary["ancillaryContent"][number] | null + packages: { + code: string + quantity: number + comment: string | undefined + }[] }) { if (typeof window === "undefined") return @@ -69,7 +80,7 @@ export function setAncillarySessionData({ const currentData = getAncillarySessionData() || {} sessionStorage.setItem( ancillarySessionKey, - JSON.stringify({ ...currentData, formData, selectedAncillary }) + JSON.stringify({ ...currentData, formData, selectedAncillary, packages }) ) } catch (error) { console.error("Error writing to session storage:", error)