import { TrackingPosition, TrackingSDKData } from "@/types/components/tracking" export function trackClick(name: string) { if (typeof window !== "undefined" && window.adobeDataLayer) { window.adobeDataLayer.push({ event: "linkClick", cta: { name, }, }) } } export function trackPageViewStart() { if (typeof window !== "undefined" && window.adobeDataLayer) { window.adobeDataLayer.push({ event: "pageViewStart", }) } } export function trackLoginClick(position: TrackingPosition) { if (typeof window !== "undefined" && window.adobeDataLayer) { const loginEvent = { event: "loginStart", login: { position, action: "login start", ctaName: "login", }, } window.adobeDataLayer.push(loginEvent) } } export function createSDKPageObject( trackingData: TrackingSDKData ): TrackingSDKData { let pageName = convertSlashToPipe(trackingData.pageName) let siteSections = convertSlashToPipe(trackingData.siteSections) if (trackingData.pathName.indexOf("/webview/") > -1) { pageName = "webview|" + pageName siteSections = "webview|" + siteSections } return { ...trackingData, domain: window.location.host, pageName: pageName, siteSections: siteSections, } } function convertSlashToPipe(url: string) { const formattedUrl = url.startsWith("/") ? url.slice(1) : url return formattedUrl.replaceAll("/", "|") }