Merged in feat/sw-3322-move-base-tracking-to-common (pull request #2713)
feat(SW-3322): Move base tracking to common package * Move base tracking to common package * Update lock file Approved-by: Joakim Jäderberg
This commit is contained in:
@@ -4,13 +4,13 @@ import { useRouter } from "next/navigation"
|
||||
import { useEffect } from "react"
|
||||
|
||||
import { serializeBookingSearchParams } from "@scandic-hotels/booking-flow/utils/url"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
import { PaymentCallbackStatusEnum } from "@/constants/booking"
|
||||
import { detailsStorageName } from "@/stores/enter-details"
|
||||
|
||||
import LoadingSpinner from "@/components/LoadingSpinner"
|
||||
import { trackPaymentEvent } from "@/utils/tracking"
|
||||
import { trackEvent } from "@/utils/tracking/base"
|
||||
|
||||
import {
|
||||
clearPaymentInfoSessionStorage,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { trackEvent } from "@/utils/tracking/base"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
import { clearGlaSessionStorage, readGlaFromSessionStorage } from "./helpers"
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import {
|
||||
} from "@scandic-hotels/common/constants/routes/hotelReservation"
|
||||
import useStickyPosition from "@scandic-hotels/common/hooks/useStickyPosition"
|
||||
import { logger } from "@scandic-hotels/common/logger"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
import Body from "@scandic-hotels/design-system/Body"
|
||||
import { Button } from "@scandic-hotels/design-system/Button"
|
||||
import Checkbox from "@scandic-hotels/design-system/Form/Checkbox"
|
||||
@@ -35,7 +36,6 @@ import { useHandleBookingStatus } from "@/hooks/booking/useHandleBookingStatus"
|
||||
import useLang from "@/hooks/useLang"
|
||||
import { formatPhoneNumber } from "@/utils/phone"
|
||||
import { trackPaymentEvent } from "@/utils/tracking"
|
||||
import { trackEvent } from "@/utils/tracking/base"
|
||||
import { trackGlaSaveCardAttempt } from "@/utils/tracking/myStay"
|
||||
|
||||
import ConfirmBooking, { ConfirmBookingRedemption } from "../Confirm"
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
import { useRouter } from "next/navigation"
|
||||
import { useEffect } from "react"
|
||||
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
import { PaymentCallbackStatusEnum } from "@/constants/booking"
|
||||
|
||||
import {
|
||||
@@ -11,7 +13,6 @@ import {
|
||||
} from "@/components/HotelReservation/EnterDetails/Payment/PaymentCallback/helpers"
|
||||
import { getAncillarySessionData } from "@/components/HotelReservation/MyStay/utils/ancillaries"
|
||||
import LoadingSpinner from "@/components/LoadingSpinner"
|
||||
import { trackEvent } from "@/utils/tracking/base"
|
||||
import {
|
||||
buildAncillariesTracking,
|
||||
buildBreakfastTracking,
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
import { usePathname, useSearchParams } from "next/navigation"
|
||||
import { useCallback, useEffect } from "react"
|
||||
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
import { useHotelFilterStore } from "@/stores/hotel-filters"
|
||||
|
||||
import useInitializeFiltersFromUrl from "@/hooks/useInitializeFiltersFromUrl"
|
||||
import { trackEvent } from "@/utils/tracking/base"
|
||||
|
||||
import FilterContent from "../FilterContent"
|
||||
|
||||
|
||||
@@ -4,10 +4,9 @@ import { usePathname, useSearchParams } from "next/navigation"
|
||||
import { useCallback } from "react"
|
||||
import { useIntl } from "react-intl"
|
||||
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
import DeprecatedSelect from "@scandic-hotels/design-system/DeprecatedSelect"
|
||||
|
||||
import { trackEvent } from "@/utils/tracking/base"
|
||||
|
||||
import {
|
||||
type HotelSorterProps,
|
||||
type SortItem,
|
||||
|
||||
@@ -15,6 +15,7 @@ import {
|
||||
selectHotel,
|
||||
} from "@scandic-hotels/common/constants/routes/hotelReservation"
|
||||
import { useScrollToTop } from "@scandic-hotels/common/hooks/useScrollToTop"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
import { debounce } from "@scandic-hotels/common/utils/debounce"
|
||||
import { BackToTopButton } from "@scandic-hotels/design-system/BackToTopButton"
|
||||
import { Button } from "@scandic-hotels/design-system/Button"
|
||||
@@ -30,7 +31,6 @@ import { RoomCardSkeleton } from "@/components/HotelReservation/RoomCardSkeleton
|
||||
import { useIsUserLoggedIn } from "@/hooks/useIsUserLoggedIn"
|
||||
import useLang from "@/hooks/useLang"
|
||||
import { mapApiImagesToGalleryImages } from "@/utils/imageGallery"
|
||||
import { trackEvent } from "@/utils/tracking/base"
|
||||
|
||||
import FilterAndSortModal from "../../Filters/FilterAndSortModal"
|
||||
import HotelListing from "../HotelListing"
|
||||
|
||||
@@ -15,6 +15,7 @@ import {
|
||||
type UseFromSubscribe,
|
||||
} from "react-hook-form"
|
||||
|
||||
import { useSessionId } from "@scandic-hotels/common/hooks/useSessionId"
|
||||
import { logger } from "@scandic-hotels/common/logger"
|
||||
import { trpc } from "@scandic-hotels/trpc/client"
|
||||
|
||||
@@ -22,7 +23,6 @@ import useRouterTransitionStore from "@/stores/router-transition"
|
||||
import useTrackingStore from "@/stores/tracking"
|
||||
|
||||
import useLang from "@/hooks/useLang"
|
||||
import { useSessionId } from "@/hooks/useSessionId"
|
||||
import { promiseWithTimeout } from "@/utils/promiseWithTimeout"
|
||||
import { createSDKPageObject, trackPageView } from "@/utils/tracking"
|
||||
import {
|
||||
|
||||
@@ -2,12 +2,12 @@ import { useRouter } from "next/navigation"
|
||||
import { useCallback, useEffect, useState } from "react"
|
||||
import { useIntl } from "react-intl"
|
||||
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
import { trpc } from "@scandic-hotels/trpc/client"
|
||||
import { BookingStatusEnum } from "@scandic-hotels/trpc/enums/bookingStatus"
|
||||
|
||||
import { toast } from "@/components/TempDesignSystem/Toasts"
|
||||
import { useHandleBookingStatus } from "@/hooks/booking/useHandleBookingStatus"
|
||||
import { trackEvent } from "@/utils/tracking/base"
|
||||
|
||||
const maxRetries = 15
|
||||
const retryInterval = 2000
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
import { nanoid } from "nanoid"
|
||||
import { useMemo } from "react"
|
||||
|
||||
export const SESSION_ID_KEY_NAME = "web_sessionId"
|
||||
|
||||
export function useSessionId(): string | null {
|
||||
const sessionId = useMemo(() => {
|
||||
if (typeof window === "undefined") {
|
||||
// Return null if running on the server
|
||||
return null
|
||||
}
|
||||
|
||||
let currentSessionId = sessionStorage.getItem(SESSION_ID_KEY_NAME)
|
||||
if (!currentSessionId) {
|
||||
currentSessionId = nanoid()
|
||||
sessionStorage.setItem(SESSION_ID_KEY_NAME, currentSessionId)
|
||||
}
|
||||
return currentSessionId
|
||||
}, [])
|
||||
|
||||
return sessionId
|
||||
}
|
||||
@@ -2,8 +2,8 @@ import isEqual from "fast-deep-equal"
|
||||
import { parsePhoneNumberFromString } from "libphonenumber-js"
|
||||
|
||||
import { CurrencyEnum } from "@scandic-hotels/common/constants/currency"
|
||||
import { logger } from "@scandic-hotels/common/logger"
|
||||
import { RateTypeEnum } from "@scandic-hotels/common/constants/rateType"
|
||||
import { logger } from "@scandic-hotels/common/logger"
|
||||
|
||||
import {
|
||||
sumPackages,
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
"use client"
|
||||
|
||||
import { logger } from "@scandic-hotels/common/logger"
|
||||
|
||||
import { SESSION_ID_KEY_NAME } from "@/hooks/useSessionId"
|
||||
|
||||
export function trackEvent(data: any) {
|
||||
if (
|
||||
typeof window !== "undefined" &&
|
||||
window.adobeDataLayer &&
|
||||
window.dataLayer
|
||||
) {
|
||||
let sessionId = ""
|
||||
|
||||
try {
|
||||
sessionId = sessionStorage.getItem(SESSION_ID_KEY_NAME) ?? ""
|
||||
} catch (e) {
|
||||
logger.error("Error getting sessionId from sessionStorage", e)
|
||||
}
|
||||
|
||||
data = {
|
||||
...data,
|
||||
pageInfo: { ...data?.pageInfo, siteVersion: "new-web", sessionId },
|
||||
}
|
||||
|
||||
window.adobeDataLayer.push(data)
|
||||
window.dataLayer.push(data)
|
||||
}
|
||||
}
|
||||
|
||||
export function trackClick(
|
||||
name: string,
|
||||
additionalParams?: Record<string, string>
|
||||
) {
|
||||
trackEvent({
|
||||
event: "linkClick",
|
||||
cta: {
|
||||
...additionalParams,
|
||||
name,
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
"use client"
|
||||
|
||||
import { trackEvent } from "./base"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
import type { BreakfastPackages } from "@/types/components/hotelReservation/breakfast"
|
||||
import type { LowestRoomPriceEvent } from "@/types/components/tracking"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
"use client"
|
||||
import { trackEvent } from "./base"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
export function trackAccordionClick(option: string) {
|
||||
trackEvent({
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { trackEvent } from "./base"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
export function trackSortingChangeEvent(sortOption: string) {
|
||||
trackEvent({
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { trackEvent } from "./base"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
export type FormType = "checkout" | "signup"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { trackEvent } from "./base"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
export function trackHotelMapClick() {
|
||||
trackEvent({
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
export { trackClick } from "./base"
|
||||
export {
|
||||
trackBedSelection,
|
||||
trackBreakfastSelection,
|
||||
@@ -18,3 +17,4 @@ export {
|
||||
trackPageViewStart,
|
||||
} from "./pageview"
|
||||
export { trackPaymentEvent, trackUpdatePaymentMethod } from "./payment"
|
||||
export { trackClick } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { CurrencyEnum } from "@scandic-hotels/common/constants/currency"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
import { BreakfastPackageEnum } from "@scandic-hotels/trpc/enums/breakfast"
|
||||
|
||||
import { trackEvent } from "./base"
|
||||
|
||||
import type { PackageSchema } from "@scandic-hotels/trpc/types/bookingConfirmation"
|
||||
import type { CreditCard } from "@scandic-hotels/trpc/types/user"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { trackEvent } from "./base"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
import type { TrackingPosition } from "@/types/components/tracking"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { trackEvent } from "./base"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
import type { TrackingSDKData } from "@/types/components/tracking"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { trackEvent } from "./base"
|
||||
import { trackEvent } from "@scandic-hotels/common/tracking/base"
|
||||
|
||||
import type {
|
||||
PaymentEvent,
|
||||
|
||||
Reference in New Issue
Block a user