feat: SW-1422 Enabled booking code in booking widget
This commit is contained in:
@@ -23,6 +23,7 @@ import MobileToggleButton, {
|
||||
import styles from "./bookingWidget.module.css"
|
||||
|
||||
import type {
|
||||
BookingCodeSchema,
|
||||
BookingWidgetClientProps,
|
||||
BookingWidgetSchema,
|
||||
BookingWidgetSearchData,
|
||||
@@ -82,6 +83,10 @@ export default function BookingWidgetClient({
|
||||
)
|
||||
: undefined
|
||||
|
||||
const selectedBookingCode = bookingWidgetSearchData
|
||||
? bookingWidgetSearchData.bookingCode
|
||||
: undefined
|
||||
|
||||
const defaultRoomsData: BookingWidgetSchema["rooms"] =
|
||||
bookingWidgetSearchData?.rooms?.map((room) => ({
|
||||
adults: room.adults,
|
||||
@@ -107,7 +112,10 @@ export default function BookingWidgetClient({
|
||||
? parsedToDate.format("YYYY-MM-DD")
|
||||
: now.utc().add(1, "day").format("YYYY-MM-DD"),
|
||||
},
|
||||
bookingCode: "",
|
||||
bookingCode: {
|
||||
value: selectedBookingCode ?? "",
|
||||
remember: false,
|
||||
},
|
||||
redemption: false,
|
||||
voucher: false,
|
||||
rooms: defaultRoomsData,
|
||||
@@ -164,7 +172,20 @@ export default function BookingWidgetClient({
|
||||
!selectedLocation &&
|
||||
sessionStorageSearchData &&
|
||||
methods.setValue("location", encodeURIComponent(sessionStorageSearchData))
|
||||
}, [methods, selectedLocation])
|
||||
|
||||
const storedBookingCode =
|
||||
typeof window !== "undefined"
|
||||
? localStorage.getItem("bookingCode")
|
||||
: undefined
|
||||
const initialBookingCode: BookingCodeSchema | undefined =
|
||||
storedBookingCode && isValidJson(storedBookingCode)
|
||||
? JSON.parse(storedBookingCode)
|
||||
: undefined
|
||||
!selectedBookingCode &&
|
||||
initialBookingCode &&
|
||||
initialBookingCode.remember &&
|
||||
methods.setValue("bookingCode", initialBookingCode)
|
||||
}, [methods, selectedLocation, selectedBookingCode])
|
||||
|
||||
return (
|
||||
<FormProvider {...methods}>
|
||||
|
||||
Reference in New Issue
Block a user