Merged in fix/BOOK-377-clear-booking-widget-state (pull request #2929)

fix(BOOK-377): clear date and guest data after confirmed booking

* fix(BOOK-377): clear date and guest data after confirmed booking


Approved-by: Erik Tiekstra
This commit is contained in:
Bianca Widstam
2025-10-08 13:55:30 +00:00
parent 02f4721595
commit 00ad432910
3 changed files with 14 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ import { useEffect } from "react"
import { LoadingSpinner } from "@scandic-hotels/design-system/LoadingSpinner"
import { BookingStatusEnum } from "@scandic-hotels/trpc/enums/bookingStatus"
import { clearBookingWidgetState } from "../../../../hooks/useBookingWidgetState"
import { useHandleBookingStatus } from "../../../../hooks/useHandleBookingStatus"
import { MEMBERSHIP_FAILED_ERROR } from "../../../../types/membershipFailedError"
import TimeoutSpinner from "./TimeoutSpinner"
@@ -58,6 +59,7 @@ export function HandleSuccessCallback({
bookingStatus.booking.reservationStatus as BookingStatusEnum
)
) {
clearBookingWidgetState()
trackGuaranteeBookingSuccess(cardType)
// a successful booking can still have membership errors
const membershipFailedError = bookingStatus.booking.errors.find(

View File

@@ -39,6 +39,7 @@ import { RoomPackageCodeEnum } from "@scandic-hotels/trpc/enums/roomFilter"
import { env } from "../../../../env/client"
import { useAvailablePaymentOptions } from "../../../hooks/useAvailablePaymentOptions"
import { useBookingFlowContext } from "../../../hooks/useBookingFlowContext"
import { clearBookingWidgetState } from "../../../hooks/useBookingWidgetState"
import { useHandleBookingStatus } from "../../../hooks/useHandleBookingStatus"
import { useIsLoggedIn } from "../../../hooks/useIsLoggedIn"
import useLang from "../../../hooks/useLang"
@@ -169,6 +170,7 @@ export default function PaymentClient({
const mainRoom = booking.rooms[0]
if (booking.reservationStatus == BookingStatusEnum.BookingCompleted) {
clearBookingWidgetState()
// Cookie is used by Booking Confirmation page to validate that the user came from payment callback
document.cookie = `bcsig=${result.sig}; Path=/; Max-Age=60; Secure; SameSite=Strict`
const confirmationUrl = `${bookingConfirmation(lang)}?RefId=${encodeURIComponent(mainRoom.refId)}`
@@ -281,6 +283,7 @@ export default function PaymentClient({
BookingStatusEnum.BookingCompleted
) {
const mainRoom = bookingStatus.data.booking.rooms[0]
clearBookingWidgetState()
// Cookie is used by Booking Confirmation page to validate that the user came from payment callback
document.cookie = `bcsig=${bookingStatus.data.sig}; Path=/; Max-Age=60; Secure; SameSite=Strict`
const confirmationUrl = `${bookingConfirmation(lang)}?RefId=${encodeURIComponent(mainRoom.refId)}`

View File

@@ -90,3 +90,12 @@ export function setBookingWidgetState(state: BookingWidgetState): void {
)
} catch {}
}
export function clearBookingWidgetState(): void {
if (typeof window === "undefined") {
return
}
try {
sessionStorage.removeItem(BOOKING_WIDGET_STATE)
} catch {}
}