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:
Anton Gunnarsson
2025-08-27 12:29:46 +00:00
parent 45a8fd8c43
commit e4a66499e5
25 changed files with 37 additions and 25 deletions

View File

@@ -4,13 +4,13 @@ import { useRouter } from "next/navigation"
import { useEffect } from "react" import { useEffect } from "react"
import { serializeBookingSearchParams } from "@scandic-hotels/booking-flow/utils/url" import { serializeBookingSearchParams } from "@scandic-hotels/booking-flow/utils/url"
import { trackEvent } from "@scandic-hotels/common/tracking/base"
import { PaymentCallbackStatusEnum } from "@/constants/booking" import { PaymentCallbackStatusEnum } from "@/constants/booking"
import { detailsStorageName } from "@/stores/enter-details" import { detailsStorageName } from "@/stores/enter-details"
import LoadingSpinner from "@/components/LoadingSpinner" import LoadingSpinner from "@/components/LoadingSpinner"
import { trackPaymentEvent } from "@/utils/tracking" import { trackPaymentEvent } from "@/utils/tracking"
import { trackEvent } from "@/utils/tracking/base"
import { import {
clearPaymentInfoSessionStorage, clearPaymentInfoSessionStorage,

View File

@@ -1,4 +1,4 @@
import { trackEvent } from "@/utils/tracking/base" import { trackEvent } from "@scandic-hotels/common/tracking/base"
import { clearGlaSessionStorage, readGlaFromSessionStorage } from "./helpers" import { clearGlaSessionStorage, readGlaFromSessionStorage } from "./helpers"

View File

@@ -15,6 +15,7 @@ import {
} from "@scandic-hotels/common/constants/routes/hotelReservation" } from "@scandic-hotels/common/constants/routes/hotelReservation"
import useStickyPosition from "@scandic-hotels/common/hooks/useStickyPosition" import useStickyPosition from "@scandic-hotels/common/hooks/useStickyPosition"
import { logger } from "@scandic-hotels/common/logger" import { logger } from "@scandic-hotels/common/logger"
import { trackEvent } from "@scandic-hotels/common/tracking/base"
import Body from "@scandic-hotels/design-system/Body" import Body from "@scandic-hotels/design-system/Body"
import { Button } from "@scandic-hotels/design-system/Button" import { Button } from "@scandic-hotels/design-system/Button"
import Checkbox from "@scandic-hotels/design-system/Form/Checkbox" 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 useLang from "@/hooks/useLang"
import { formatPhoneNumber } from "@/utils/phone" import { formatPhoneNumber } from "@/utils/phone"
import { trackPaymentEvent } from "@/utils/tracking" import { trackPaymentEvent } from "@/utils/tracking"
import { trackEvent } from "@/utils/tracking/base"
import { trackGlaSaveCardAttempt } from "@/utils/tracking/myStay" import { trackGlaSaveCardAttempt } from "@/utils/tracking/myStay"
import ConfirmBooking, { ConfirmBookingRedemption } from "../Confirm" import ConfirmBooking, { ConfirmBookingRedemption } from "../Confirm"

View File

@@ -3,6 +3,8 @@
import { useRouter } from "next/navigation" import { useRouter } from "next/navigation"
import { useEffect } from "react" import { useEffect } from "react"
import { trackEvent } from "@scandic-hotels/common/tracking/base"
import { PaymentCallbackStatusEnum } from "@/constants/booking" import { PaymentCallbackStatusEnum } from "@/constants/booking"
import { import {
@@ -11,7 +13,6 @@ import {
} from "@/components/HotelReservation/EnterDetails/Payment/PaymentCallback/helpers" } from "@/components/HotelReservation/EnterDetails/Payment/PaymentCallback/helpers"
import { getAncillarySessionData } from "@/components/HotelReservation/MyStay/utils/ancillaries" import { getAncillarySessionData } from "@/components/HotelReservation/MyStay/utils/ancillaries"
import LoadingSpinner from "@/components/LoadingSpinner" import LoadingSpinner from "@/components/LoadingSpinner"
import { trackEvent } from "@/utils/tracking/base"
import { import {
buildAncillariesTracking, buildAncillariesTracking,
buildBreakfastTracking, buildBreakfastTracking,

View File

@@ -3,10 +3,11 @@
import { usePathname, useSearchParams } from "next/navigation" import { usePathname, useSearchParams } from "next/navigation"
import { useCallback, useEffect } from "react" import { useCallback, useEffect } from "react"
import { trackEvent } from "@scandic-hotels/common/tracking/base"
import { useHotelFilterStore } from "@/stores/hotel-filters" import { useHotelFilterStore } from "@/stores/hotel-filters"
import useInitializeFiltersFromUrl from "@/hooks/useInitializeFiltersFromUrl" import useInitializeFiltersFromUrl from "@/hooks/useInitializeFiltersFromUrl"
import { trackEvent } from "@/utils/tracking/base"
import FilterContent from "../FilterContent" import FilterContent from "../FilterContent"

View File

@@ -4,10 +4,9 @@ import { usePathname, useSearchParams } from "next/navigation"
import { useCallback } from "react" import { useCallback } from "react"
import { useIntl } from "react-intl" import { useIntl } from "react-intl"
import { trackEvent } from "@scandic-hotels/common/tracking/base"
import DeprecatedSelect from "@scandic-hotels/design-system/DeprecatedSelect" import DeprecatedSelect from "@scandic-hotels/design-system/DeprecatedSelect"
import { trackEvent } from "@/utils/tracking/base"
import { import {
type HotelSorterProps, type HotelSorterProps,
type SortItem, type SortItem,

View File

@@ -15,6 +15,7 @@ import {
selectHotel, selectHotel,
} from "@scandic-hotels/common/constants/routes/hotelReservation" } from "@scandic-hotels/common/constants/routes/hotelReservation"
import { useScrollToTop } from "@scandic-hotels/common/hooks/useScrollToTop" 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 { debounce } from "@scandic-hotels/common/utils/debounce"
import { BackToTopButton } from "@scandic-hotels/design-system/BackToTopButton" import { BackToTopButton } from "@scandic-hotels/design-system/BackToTopButton"
import { Button } from "@scandic-hotels/design-system/Button" import { Button } from "@scandic-hotels/design-system/Button"
@@ -30,7 +31,6 @@ import { RoomCardSkeleton } from "@/components/HotelReservation/RoomCardSkeleton
import { useIsUserLoggedIn } from "@/hooks/useIsUserLoggedIn" import { useIsUserLoggedIn } from "@/hooks/useIsUserLoggedIn"
import useLang from "@/hooks/useLang" import useLang from "@/hooks/useLang"
import { mapApiImagesToGalleryImages } from "@/utils/imageGallery" import { mapApiImagesToGalleryImages } from "@/utils/imageGallery"
import { trackEvent } from "@/utils/tracking/base"
import FilterAndSortModal from "../../Filters/FilterAndSortModal" import FilterAndSortModal from "../../Filters/FilterAndSortModal"
import HotelListing from "../HotelListing" import HotelListing from "../HotelListing"

View File

@@ -15,6 +15,7 @@ import {
type UseFromSubscribe, type UseFromSubscribe,
} from "react-hook-form" } from "react-hook-form"
import { useSessionId } from "@scandic-hotels/common/hooks/useSessionId"
import { logger } from "@scandic-hotels/common/logger" import { logger } from "@scandic-hotels/common/logger"
import { trpc } from "@scandic-hotels/trpc/client" import { trpc } from "@scandic-hotels/trpc/client"
@@ -22,7 +23,6 @@ import useRouterTransitionStore from "@/stores/router-transition"
import useTrackingStore from "@/stores/tracking" import useTrackingStore from "@/stores/tracking"
import useLang from "@/hooks/useLang" import useLang from "@/hooks/useLang"
import { useSessionId } from "@/hooks/useSessionId"
import { promiseWithTimeout } from "@/utils/promiseWithTimeout" import { promiseWithTimeout } from "@/utils/promiseWithTimeout"
import { createSDKPageObject, trackPageView } from "@/utils/tracking" import { createSDKPageObject, trackPageView } from "@/utils/tracking"
import { import {

View File

@@ -2,12 +2,12 @@ import { useRouter } from "next/navigation"
import { useCallback, useEffect, useState } from "react" import { useCallback, useEffect, useState } from "react"
import { useIntl } from "react-intl" import { useIntl } from "react-intl"
import { trackEvent } from "@scandic-hotels/common/tracking/base"
import { trpc } from "@scandic-hotels/trpc/client" import { trpc } from "@scandic-hotels/trpc/client"
import { BookingStatusEnum } from "@scandic-hotels/trpc/enums/bookingStatus" import { BookingStatusEnum } from "@scandic-hotels/trpc/enums/bookingStatus"
import { toast } from "@/components/TempDesignSystem/Toasts" import { toast } from "@/components/TempDesignSystem/Toasts"
import { useHandleBookingStatus } from "@/hooks/booking/useHandleBookingStatus" import { useHandleBookingStatus } from "@/hooks/booking/useHandleBookingStatus"
import { trackEvent } from "@/utils/tracking/base"
const maxRetries = 15 const maxRetries = 15
const retryInterval = 2000 const retryInterval = 2000

View File

@@ -2,8 +2,8 @@ import isEqual from "fast-deep-equal"
import { parsePhoneNumberFromString } from "libphonenumber-js" import { parsePhoneNumberFromString } from "libphonenumber-js"
import { CurrencyEnum } from "@scandic-hotels/common/constants/currency" import { CurrencyEnum } from "@scandic-hotels/common/constants/currency"
import { logger } from "@scandic-hotels/common/logger"
import { RateTypeEnum } from "@scandic-hotels/common/constants/rateType" import { RateTypeEnum } from "@scandic-hotels/common/constants/rateType"
import { logger } from "@scandic-hotels/common/logger"
import { import {
sumPackages, sumPackages,

View File

@@ -1,6 +1,6 @@
"use client" "use client"
import { trackEvent } from "./base" import { trackEvent } from "@scandic-hotels/common/tracking/base"
import type { BreakfastPackages } from "@/types/components/hotelReservation/breakfast" import type { BreakfastPackages } from "@/types/components/hotelReservation/breakfast"
import type { LowestRoomPriceEvent } from "@/types/components/tracking" import type { LowestRoomPriceEvent } from "@/types/components/tracking"

View File

@@ -1,5 +1,5 @@
"use client" "use client"
import { trackEvent } from "./base" import { trackEvent } from "@scandic-hotels/common/tracking/base"
export function trackAccordionClick(option: string) { export function trackAccordionClick(option: string) {
trackEvent({ trackEvent({

View File

@@ -1,4 +1,4 @@
import { trackEvent } from "./base" import { trackEvent } from "@scandic-hotels/common/tracking/base"
export function trackSortingChangeEvent(sortOption: string) { export function trackSortingChangeEvent(sortOption: string) {
trackEvent({ trackEvent({

View File

@@ -1,4 +1,4 @@
import { trackEvent } from "./base" import { trackEvent } from "@scandic-hotels/common/tracking/base"
export type FormType = "checkout" | "signup" export type FormType = "checkout" | "signup"

View File

@@ -1,4 +1,4 @@
import { trackEvent } from "./base" import { trackEvent } from "@scandic-hotels/common/tracking/base"
export function trackHotelMapClick() { export function trackHotelMapClick() {
trackEvent({ trackEvent({

View File

@@ -1,4 +1,3 @@
export { trackClick } from "./base"
export { export {
trackBedSelection, trackBedSelection,
trackBreakfastSelection, trackBreakfastSelection,
@@ -18,3 +17,4 @@ export {
trackPageViewStart, trackPageViewStart,
} from "./pageview" } from "./pageview"
export { trackPaymentEvent, trackUpdatePaymentMethod } from "./payment" export { trackPaymentEvent, trackUpdatePaymentMethod } from "./payment"
export { trackClick } from "@scandic-hotels/common/tracking/base"

View File

@@ -1,8 +1,7 @@
import { CurrencyEnum } from "@scandic-hotels/common/constants/currency" 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 { BreakfastPackageEnum } from "@scandic-hotels/trpc/enums/breakfast"
import { trackEvent } from "./base"
import type { PackageSchema } from "@scandic-hotels/trpc/types/bookingConfirmation" import type { PackageSchema } from "@scandic-hotels/trpc/types/bookingConfirmation"
import type { CreditCard } from "@scandic-hotels/trpc/types/user" import type { CreditCard } from "@scandic-hotels/trpc/types/user"

View File

@@ -1,4 +1,4 @@
import { trackEvent } from "./base" import { trackEvent } from "@scandic-hotels/common/tracking/base"
import type { TrackingPosition } from "@/types/components/tracking" import type { TrackingPosition } from "@/types/components/tracking"

View File

@@ -1,4 +1,4 @@
import { trackEvent } from "./base" import { trackEvent } from "@scandic-hotels/common/tracking/base"
import type { TrackingSDKData } from "@/types/components/tracking" import type { TrackingSDKData } from "@/types/components/tracking"

View File

@@ -1,4 +1,4 @@
import { trackEvent } from "./base" import { trackEvent } from "@scandic-hotels/common/tracking/base"
import type { import type {
PaymentEvent, PaymentEvent,

View File

@@ -2,4 +2,14 @@ import type { DataCache } from "./dataCache/Cache"
declare global { declare global {
var cacheClient: Promise<DataCache> | undefined var cacheClient: Promise<DataCache> | undefined
interface Window {
dataLayer: {
[key: string]: any
push: (...args: unknown) => void
}
adobeDataLayer: {
push: (...args: unknown) => void
}
}
} }

View File

@@ -15,6 +15,7 @@
"./dataCache": "./dataCache/index.ts", "./dataCache": "./dataCache/index.ts",
"./telemetry": "./telemetry/index.ts", "./telemetry": "./telemetry/index.ts",
"./tokenManager": "./tokenManager/index.ts", "./tokenManager": "./tokenManager/index.ts",
"./tracking/base": "./tracking/base.ts",
"./dt": "./dt/dt.ts", "./dt": "./dt/dt.ts",
"./logger": "./logger/index.ts", "./logger": "./logger/index.ts",
"./logger/*": "./logger/*.ts", "./logger/*": "./logger/*.ts",
@@ -52,6 +53,7 @@
"deepmerge": "^4.3.1", "deepmerge": "^4.3.1",
"flat": "^6.0.1", "flat": "^6.0.1",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"nanoid": "^5.1.5",
"zod": "^3.24.4", "zod": "^3.24.4",
"zustand": "^4.5.2" "zustand": "^4.5.2"
}, },

View File

@@ -1,8 +1,7 @@
"use client" "use client"
import { logger } from "@scandic-hotels/common/logger" import { SESSION_ID_KEY_NAME } from "../hooks/useSessionId"
import { logger } from "../logger"
import { SESSION_ID_KEY_NAME } from "@/hooks/useSessionId"
export function trackEvent(data: any) { export function trackEvent(data: any) {
if ( if (

View File

@@ -6158,6 +6158,7 @@ __metadata:
eslint-plugin-simple-import-sort: "npm:^12.1.1" eslint-plugin-simple-import-sort: "npm:^12.1.1"
flat: "npm:^6.0.1" flat: "npm:^6.0.1"
lodash-es: "npm:^4.17.21" lodash-es: "npm:^4.17.21"
nanoid: "npm:^5.1.5"
typescript: "npm:5.8.3" typescript: "npm:5.8.3"
vitest: "npm:^3.2.4" vitest: "npm:^3.2.4"
zod: "npm:^3.24.4" zod: "npm:^3.24.4"