Merged in fix/BOOK-131-noroomsavailability-tracking (pull request #2971)
fix(BOOK-131): add action and domain * fix(BOOK-131): add action and domain Approved-by: Anton Gunnarsson
This commit is contained in:
@@ -6,6 +6,7 @@ import { useIntl } from "react-intl"
|
||||
|
||||
import { AlertTypeEnum } from "@scandic-hotels/common/constants/alert"
|
||||
import { selectRate } from "@scandic-hotels/common/constants/routes/hotelReservation"
|
||||
import { useSessionId } from "@scandic-hotels/common/hooks/useSessionId"
|
||||
import useStickyPosition from "@scandic-hotels/common/hooks/useStickyPosition"
|
||||
import { Alert } from "@scandic-hotels/design-system/Alert"
|
||||
import { trackNoAvailability } from "@scandic-hotels/tracking/NoAvailabilityTracking"
|
||||
@@ -165,6 +166,7 @@ function useNoAvailabilityTracking() {
|
||||
const { fromDate, toDate, hotelId, bookingCode, searchType, rooms } =
|
||||
useEnterDetailsStore((state) => state.booking)
|
||||
const lang = useLang()
|
||||
const sessionId = useSessionId()
|
||||
|
||||
const specialRoomType = rooms
|
||||
?.map((room) => {
|
||||
@@ -191,6 +193,8 @@ function useNoAvailabilityTracking() {
|
||||
pageName: "hotelreservation|details",
|
||||
pageType: "bookingenterdetailspage",
|
||||
siteSections: "hotelreservation|details",
|
||||
sessionId,
|
||||
domain: typeof window !== "undefined" ? window.location.host : "",
|
||||
}),
|
||||
[
|
||||
specialRoomType,
|
||||
@@ -201,6 +205,7 @@ function useNoAvailabilityTracking() {
|
||||
rooms.length,
|
||||
searchType,
|
||||
bookingCode,
|
||||
sessionId,
|
||||
]
|
||||
)
|
||||
return track
|
||||
|
||||
@@ -4,6 +4,7 @@ import { usePathname, useSearchParams } from "next/navigation"
|
||||
import { useCallback, useEffect } from "react"
|
||||
import { useIntl } from "react-intl"
|
||||
|
||||
import { useSessionId } from "@scandic-hotels/common/hooks/useSessionId"
|
||||
import { toast } from "@scandic-hotels/design-system/Toast"
|
||||
import { trackNoAvailability } from "@scandic-hotels/tracking/NoAvailabilityTracking"
|
||||
import { BookingErrorCodeEnum } from "@scandic-hotels/trpc/enums/bookingErrorCode"
|
||||
@@ -21,6 +22,8 @@ export default function AvailabilityError({ booking }: AvailabilityErrorProps) {
|
||||
const intl = useIntl()
|
||||
const pathname = usePathname()
|
||||
const searchParams = useSearchParams()
|
||||
const sessionId = useSessionId()
|
||||
|
||||
const lang = useLang()
|
||||
|
||||
const { rooms, fromDate, toDate, hotelId, bookingCode, searchType } = booking
|
||||
@@ -61,8 +64,19 @@ export default function AvailabilityError({ booking }: AvailabilityErrorProps) {
|
||||
pageName: "hotelreservation|select-rate",
|
||||
pageType: "bookingroomsandratespage",
|
||||
siteSections: "hotelreservation|select-rate",
|
||||
sessionId,
|
||||
domain: typeof window !== "undefined" ? window.location.host : "",
|
||||
})
|
||||
}, [rooms, hotelId, lang, fromDate, toDate, searchType, bookingCode])
|
||||
}, [
|
||||
rooms,
|
||||
hotelId,
|
||||
lang,
|
||||
fromDate,
|
||||
toDate,
|
||||
searchType,
|
||||
bookingCode,
|
||||
sessionId,
|
||||
])
|
||||
|
||||
useEffect(() => {
|
||||
if (hasAvailabilityError) {
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
"use client"
|
||||
|
||||
import { differenceInCalendarDays, isWeekend } from "date-fns"
|
||||
import { usePathname } from "next/navigation"
|
||||
import { useEffect } from "react"
|
||||
|
||||
import { useSessionId } from "@scandic-hotels/common/hooks/useSessionId"
|
||||
import {
|
||||
TrackingChannelEnum,
|
||||
type TrackingSDKHotelInfo,
|
||||
@@ -11,6 +13,7 @@ import {
|
||||
import { SEARCH_TYPE_REDEMPTION } from "@scandic-hotels/trpc/constants/booking"
|
||||
|
||||
import { trackEvent } from "./base"
|
||||
import { createSDKPageObject } from "./pageview"
|
||||
|
||||
import type { Lang } from "@scandic-hotels/common/constants/language"
|
||||
|
||||
@@ -27,10 +30,19 @@ export function NoAvailabilityTracking({
|
||||
hotelsTrackingData,
|
||||
pageTrackingData,
|
||||
}: NoAvailabilityTrackingProps) {
|
||||
const pathName = usePathname()
|
||||
const sessionId = useSessionId()
|
||||
|
||||
useEffect(() => {
|
||||
if (!shouldTrackNoAvailability) {
|
||||
return
|
||||
}
|
||||
const pageTracking = {
|
||||
...pageTrackingData,
|
||||
sessionId,
|
||||
pathName,
|
||||
}
|
||||
const pageObject = createSDKPageObject(pageTracking)
|
||||
const {
|
||||
searchTerm,
|
||||
searchType,
|
||||
@@ -49,6 +61,7 @@ export function NoAvailabilityTracking({
|
||||
hotelInfo: {
|
||||
searchTerm,
|
||||
searchType,
|
||||
action: "Hotel search",
|
||||
noRoomsAvailable: "yes",
|
||||
hotelID,
|
||||
leadTime,
|
||||
@@ -59,7 +72,7 @@ export function NoAvailabilityTracking({
|
||||
duration,
|
||||
specialRoomType,
|
||||
},
|
||||
pageInfo: pageTrackingData,
|
||||
pageInfo: pageObject,
|
||||
})
|
||||
}, [lang, hotelsTrackingData, pageTrackingData])
|
||||
|
||||
@@ -80,6 +93,8 @@ type TrackNoAvailabilityParams = {
|
||||
pageType: string
|
||||
siteSections: string
|
||||
lang: Lang
|
||||
sessionId: string | null
|
||||
domain?: string
|
||||
}
|
||||
|
||||
export function trackNoAvailability({
|
||||
@@ -96,6 +111,8 @@ export function trackNoAvailability({
|
||||
pageName,
|
||||
pageType,
|
||||
siteSections,
|
||||
sessionId,
|
||||
domain,
|
||||
}: TrackNoAvailabilityParams) {
|
||||
const arrivalDate = new Date(fromDate)
|
||||
const departureDate = new Date(toDate)
|
||||
@@ -105,6 +122,7 @@ export function trackNoAvailability({
|
||||
hotelInfo: {
|
||||
searchTerm,
|
||||
searchType,
|
||||
action: "Hotel search",
|
||||
noRoomsAvailable: "yes",
|
||||
hotelId,
|
||||
leadTime: differenceInCalendarDays(arrivalDate, new Date()),
|
||||
@@ -117,12 +135,14 @@ export function trackNoAvailability({
|
||||
},
|
||||
pageInfo: {
|
||||
channel: TrackingChannelEnum.hotelreservation,
|
||||
domain: "www.scandichotels.com",
|
||||
domain,
|
||||
domainLanguage: lang,
|
||||
pageId,
|
||||
pageName,
|
||||
pageType,
|
||||
siteSections,
|
||||
sessionId,
|
||||
siteVersion: "new-web",
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user