Merged in feat/BOOK-377-keep-booking-widget-state (pull request #2894)

feat(BOOK-377): keep dates and rooms & guest in session storage

* feat(BOOK-377): keep dates and rooms & guest in session storage

* feat(BOOK-377): extract to hook and reuse


Approved-by: Erik Tiekstra
This commit is contained in:
Bianca Widstam
2025-10-06 09:33:09 +00:00
parent cbeba7eb08
commit f726b4f7e1
9 changed files with 137 additions and 16 deletions

View File

@@ -15,6 +15,7 @@ import { trpc } from "@scandic-hotels/trpc/client"
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
import { useBookingFlowConfig } from "../../bookingFlowConfig/bookingFlowConfigContext"
import { useBookingWidgetState } from "../../hooks/useBookingWidgetState"
import useLang from "../../hooks/useLang"
import {
type bookingCodeSchema,
@@ -54,6 +55,7 @@ export default function BookingWidgetClient({
null
)
const { bookingCodeEnabled } = useBookingFlowConfig()
const storedBookingWidgetState = useBookingWidgetState()
const shouldFetchAutoComplete = !!data.hotelId || !!data.city
@@ -207,6 +209,24 @@ export default function BookingWidgetClient({
}
}, [methods, selectedBookingCode])
useEffect(() => {
if (
!data.fromDate &&
!data.toDate &&
!data.rooms &&
storedBookingWidgetState
) {
methods.reset({
...methods.getValues(),
date: {
fromDate: storedBookingWidgetState.fromDate,
toDate: storedBookingWidgetState.toDate,
},
rooms: storedBookingWidgetState.rooms,
})
}
}, [data, methods, storedBookingWidgetState])
if (shouldShowSkeleton) {
return <BookingWidgetSkeleton type={type} />
}