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:
@@ -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(
|
||||
|
||||
@@ -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)}`
|
||||
|
||||
@@ -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 {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user