Merged in feat/book-504-at-pageview (pull request #3099)

Feat(BOOK-504): basic pageview event

* fix

* Cleanup


Approved-by: Joakim Jäderberg
This commit is contained in:
Linus Flood
2025-11-07 07:57:19 +00:00
parent a9789a8a7c
commit fdf124bd0c
7 changed files with 176 additions and 42 deletions

View File

@@ -0,0 +1,62 @@
"use client"
import { useSession } from "next-auth/react"
import { useEffect } from "react"
import { useSessionId } from "@scandic-hotels/common/hooks/useSessionId"
import { isValidSession } from "@scandic-hotels/trpc/utils/session"
import { createSDKPageObject, trackPageView } from "./pageview"
import type { TrackingSDKPageData } from "./types"
type TrackingSDKProps = {
pageData: TrackingSDKPageData
pathName: string
}
let hasTrackedHardNavigationBasic = false
export const useTrackHardNavigationBasic = ({
pageData,
pathName,
}: TrackingSDKProps) => {
const sessionId = useSessionId()
const { data: session } = useSession()
const validSession = isValidSession(session)
useEffect(() => {
if (hasTrackedHardNavigationBasic) return
trackBasicPageView({
pathName,
sessionId,
pageData,
validSession,
})
hasTrackedHardNavigationBasic = true
}, [pathName, pageData, sessionId, validSession])
}
const trackBasicPageView = async ({
pathName,
sessionId,
pageData,
validSession,
}: {
pathName: string
sessionId: string | null
pageData: TrackingSDKProps["pageData"]
validSession: boolean
}) => {
const trackingData = { ...pageData, pathName, sessionId }
const pageObject = createSDKPageObject(trackingData)
trackPageView({
event: "pageViewBasic",
pageInfo: pageObject,
userInfo: {
loginStatus: validSession ? "logged in" : "Non-logged in",
},
})
}