Merged in feat/SW-1517-booking-codes-tracking (pull request #1745)

Feat/SW-1517 booking codes tracking

* feat: SW-1517 Updated tracking to inlcude booking code info

* feat: SW-1517 Tracking booking codes

* feat: SW-1517 booking code multiroom tracking

* feat: SW-1517 booking code tracking select-hotel map view

* feat: SW-1517 Updated to optional param

* feat: SW-1517 Optimized with map

* feat: SW-1517 Typings update

* feat: SW-1517 Replaced reduce with map and join

* feat: SW-1517 Updated typings


Approved-by: Christian Andolf
This commit is contained in:
Hrishikesh Vaipurkar
2025-04-14 07:17:40 +00:00
parent cc7aa6e317
commit e372b91356
14 changed files with 103 additions and 34 deletions

View File

@@ -119,6 +119,28 @@ export default async function SelectHotel({
const isAllUnavailable = !hotels.length
const suspenseKey = stringify(searchParams)
const isFullPriceHotelAvailable = bookingCode
? hotels?.some(
(hotel) =>
hotel.availability.productType?.public?.rateType ===
RateTypeEnum.Regular ||
hotel.availability.productType?.member?.rateType ===
RateTypeEnum.Regular
)
: false
const isBookingCodeRateAvailable = bookingCode
? hotels?.some(
(hotel) =>
hotel.availability.productType?.public?.rateType !==
RateTypeEnum.Regular ||
hotel.availability.productType?.member?.rateType !==
RateTypeEnum.Regular
)
: false
const { hotelsTrackingData, pageTrackingData } = getTracking(
params.lang,
!!isAlternativeFor,
@@ -126,35 +148,16 @@ export default async function SelectHotel({
departureDate,
adultsInRoom,
childrenInRoom,
hotels.length,
hotels?.length ?? 0,
selectHotelParams.hotelId,
noOfRooms,
hotels?.[0]?.hotel.address.country,
hotels?.[0]?.hotel.address.city,
selectHotelParams.city
selectHotelParams.city,
bookingCode,
isBookingCodeRateAvailable ? "true" : "false"
)
const suspenseKey = stringify(searchParams)
let isFullPriceHotelAvailable
let isBookingCodeRateAvaliable
if (bookingCode) {
isFullPriceHotelAvailable = hotels?.find(
(hotel) =>
hotel.availability.productType?.public?.rateType ===
RateTypeEnum.Regular ||
hotel.availability.productType?.member?.rateType ===
RateTypeEnum.Regular
)
isBookingCodeRateAvaliable = hotels?.find(
(hotel) =>
hotel.availability.productType?.public?.rateType !==
RateTypeEnum.Regular ||
hotel.availability.productType?.member?.rateType !==
RateTypeEnum.Regular
)
}
// Special rates (corporate cheque, voucher and reward nights) will not have regular rate hotels availability
const isSpecialRate = hotels?.some(
(hotel) =>
@@ -189,7 +192,7 @@ export default async function SelectHotel({
</div>
</header>
<main className={styles.main}>
{isBookingCodeRateAvaliable &&
{isBookingCodeRateAvailable &&
isFullPriceHotelAvailable &&
!isSpecialRate ? (
<BookingCodeFilter />