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
This commit is contained in:
Bianca Widstam
2025-05-13 06:51:31 +00:00
committed by Linus Flood
parent 7031ad3fae
commit 45f61bd81e
4 changed files with 26 additions and 20 deletions

View File

@@ -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

View File

@@ -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(
{

View File

@@ -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
),

View File

@@ -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)