Merged in feat/SW-1355-reward-night-booking-tracking (pull request #1758)

feat: SW-1355 Tracking implementation reward night booking

* feat: SW-1355 Tracking implementation reward night booking

* feat: SW-1355 Updated checks and optional params

* feat: SW-1355 Typings updated

* feat: SW-1355 Removed undefined check

* feat: SW-1355 optimized code


Approved-by: Christian Andolf
This commit is contained in:
Hrishikesh Vaipurkar
2025-04-14 11:10:03 +00:00
parent 51a0855fc1
commit 1c5b116ed8
10 changed files with 54 additions and 13 deletions

View File

@@ -73,6 +73,11 @@ export async function SelectHotelMapContainer({
const arrivalDate = new Date(selectHotelParams.fromDate)
const departureDate = new Date(selectHotelParams.toDate)
const isRedemptionAvailability = redemption
? hotels.some(
(hotel) => hotel.availability.productType?.redemptions?.length
)
: false
const isBookingCodeRateAvailable = bookingCode
? hotels?.some(
@@ -97,7 +102,9 @@ export async function SelectHotelMapContainer({
hotels?.[0]?.hotel.address.city,
selectHotelParams.city,
bookingCode,
isBookingCodeRateAvailable
isBookingCodeRateAvailable,
redemption,
isRedemptionAvailability
)
return (

View File

@@ -24,7 +24,9 @@ export function getTracking(
hotelCity: string | undefined,
paramCity: string | undefined,
bookingCode?: string,
isBookingCodeRateAvailable?: boolean
isBookingCodeRateAvailable?: boolean,
isRedemption?: boolean,
isRedemptionAvailability?: boolean
) {
const pageTrackingData: TrackingSDKPageData = {
channel: TrackingChannelEnum["hotelreservation"],
@@ -60,6 +62,8 @@ export function getTracking(
noOfChildren: childrenInRoom?.map((kids) => kids?.length ?? 0).join(","),
noOfRooms,
region: hotelCity,
rewardNight: isRedemption ? "yes" : "no",
rewardNightAvailability: isRedemptionAvailability ? "true" : "false",
searchTerm: isAlternativeFor ? hotelId : (paramCity as string),
searchType: "destination",
}

View File

@@ -118,6 +118,11 @@ export default async function SelectHotel({
]
const isAllUnavailable = !hotels.length
const isRedemptionAvailability = redemption
? hotels.some(
(hotel) => hotel.availability.productType?.redemptions?.length
)
: false
const suspenseKey = stringify(searchParams)
@@ -155,7 +160,9 @@ export default async function SelectHotel({
hotels?.[0]?.hotel.address.city,
selectHotelParams.city,
bookingCode,
isBookingCodeRateAvailable ? "true" : "false"
isBookingCodeRateAvailable ? "true" : "false",
redemption,
isRedemptionAvailability
)
// Special rates (corporate cheque, voucher and reward nights) will not have regular rate hotels availability

View File

@@ -23,7 +23,9 @@ export function getTracking(
hotelCity: string | undefined,
paramCity: string | undefined,
bookingCode?: string,
isBookingCodeRateAvailable?: string
isBookingCodeRateAvailable?: string,
isRedemption?: boolean,
isRedemptionAvailable?: boolean
) {
const pageTrackingData: TrackingSDKPageData = {
channel: TrackingChannelEnum["hotelreservation"],
@@ -63,6 +65,8 @@ export function getTracking(
bookingCodeAvailability: bookingCode
? isBookingCodeRateAvailable
: undefined,
rewardNight: isRedemption ? "yes" : "no",
rewardNightAvailability: isRedemptionAvailable ? "true" : "false",
}
return {