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) => { const onSubmit = (data: AncillaryFormData) => {
if (!validateTermsAndConditions(data)) return if (!validateTermsAndConditions(data)) return
setAncillarySessionData({
formData: data,
selectedAncillary,
})
const packagesToAdd = !isBreakfast const packagesToAdd = !isBreakfast
? buildAncillaryPackages(data, selectedAncillary) ? buildAncillaryPackages(data, selectedAncillary)
: breakfastData : breakfastData
@@ -266,6 +262,11 @@ export default function AddAncillaryFlowModal({
) )
return return
} }
setAncillarySessionData({
formData: data,
selectedAncillary,
packages: packagesToAdd,
})
const shouldSkipGuarantee = const shouldSkipGuarantee =
booking.guaranteeInfo || (data.quantityWithCard ?? 0) <= 0 booking.guaranteeInfo || (data.quantityWithCard ?? 0) <= 0

View File

@@ -6,7 +6,6 @@ import { useEffect } from "react"
import { trpc } from "@/lib/trpc/client" import { trpc } from "@/lib/trpc/client"
import { import {
buildAncillaryPackages,
clearAncillarySessionData, clearAncillarySessionData,
getAncillarySessionData, getAncillarySessionData,
} from "@/components/HotelReservation/MyStay/utils/ancillaries" } from "@/components/HotelReservation/MyStay/utils/ancillaries"
@@ -39,13 +38,16 @@ export default function GuaranteeAncillaryHandler({
} }
const sessionData = getAncillarySessionData() const sessionData = getAncillarySessionData()
if (!sessionData?.formData || !sessionData?.selectedAncillary) { if (
!sessionData?.formData ||
!sessionData?.selectedAncillary ||
!sessionData?.packages
) {
router.replace(`${returnUrl}&errorCode=AncillaryFailed`) router.replace(`${returnUrl}&errorCode=AncillaryFailed`)
return return
} }
const { formData, selectedAncillary } = sessionData const { formData, selectedAncillary, packages } = sessionData
const packages = buildAncillaryPackages(formData, selectedAncillary)
addAncillary.mutate( addAncillary.mutate(
{ {

View File

@@ -9,10 +9,7 @@ import {
clearGlaSessionStorage, clearGlaSessionStorage,
readGlaFromSessionStorage, readGlaFromSessionStorage,
} from "@/components/HotelReservation/EnterDetails/Payment/PaymentCallback/helpers" } from "@/components/HotelReservation/EnterDetails/Payment/PaymentCallback/helpers"
import { import { getAncillarySessionData } from "@/components/HotelReservation/MyStay/utils/ancillaries"
buildAncillaryPackages,
getAncillarySessionData,
} from "@/components/HotelReservation/MyStay/utils/ancillaries"
import LoadingSpinner from "@/components/LoadingSpinner" import LoadingSpinner from "@/components/LoadingSpinner"
import { trackEvent } from "@/utils/tracking/base" import { trackEvent } from "@/utils/tracking/base"
import { buildAncillaries } from "@/utils/tracking/myStay" import { buildAncillaries } from "@/utils/tracking/myStay"
@@ -35,12 +32,7 @@ export default function TrackGuarantee({
useEffect(() => { useEffect(() => {
const trackAncillaryPaymentEvent = (event: string, status: string) => { const trackAncillaryPaymentEvent = (event: string, status: string) => {
const sessionData = getAncillarySessionData() const sessionData = getAncillarySessionData()
const { formData, selectedAncillary } = sessionData || {} const { formData, selectedAncillary, packages } = sessionData || {}
const packages =
formData && selectedAncillary
? buildAncillaryPackages(formData, selectedAncillary)
: []
trackEvent({ trackEvent({
event, event,
@@ -51,7 +43,7 @@ export default function TrackGuarantee({
guaranteedProduct: "room + ancillary", guaranteedProduct: "room + ancillary",
}, },
ancillaries: buildAncillaries( ancillaries: buildAncillaries(
packages, packages ?? [],
selectedAncillary, selectedAncillary,
formData?.deliveryTime formData?.deliveryTime
), ),

View File

@@ -43,6 +43,11 @@ export const getAncillarySessionData = ():
| { | {
formData?: AncillaryFormData formData?: AncillaryFormData
selectedAncillary?: Ancillary["ancillaryContent"][number] | null selectedAncillary?: Ancillary["ancillaryContent"][number] | null
packages: {
code: string
quantity: number
comment: string | undefined
}[]
} }
| undefined => { | undefined => {
if (typeof window === "undefined") return undefined if (typeof window === "undefined") return undefined
@@ -59,9 +64,15 @@ export const getAncillarySessionData = ():
export function setAncillarySessionData({ export function setAncillarySessionData({
formData, formData,
selectedAncillary, selectedAncillary,
packages,
}: { }: {
formData?: AncillaryFormData formData?: AncillaryFormData
selectedAncillary?: Ancillary["ancillaryContent"][number] | null selectedAncillary?: Ancillary["ancillaryContent"][number] | null
packages: {
code: string
quantity: number
comment: string | undefined
}[]
}) { }) {
if (typeof window === "undefined") return if (typeof window === "undefined") return
@@ -69,7 +80,7 @@ export function setAncillarySessionData({
const currentData = getAncillarySessionData() || {} const currentData = getAncillarySessionData() || {}
sessionStorage.setItem( sessionStorage.setItem(
ancillarySessionKey, ancillarySessionKey,
JSON.stringify({ ...currentData, formData, selectedAncillary }) JSON.stringify({ ...currentData, formData, selectedAncillary, packages })
) )
} catch (error) { } catch (error) {
console.error("Error writing to session storage:", error) console.error("Error writing to session storage:", error)