fix: adjust datalayer behavior

This commit is contained in:
Arvid Norlin
2024-02-16 15:14:16 +01:00
parent 8b87267eda
commit 60e2c8ae45
3 changed files with 22 additions and 22 deletions

View File

@@ -57,12 +57,12 @@ export default function RootLayout({
data-cookieconsent="ignore"
src="/Static/dist/js/ng/main.js?1705409330990"
/>
<AdobeScript />
{/* <Script
data-cookieconsent="ignore"
src="/Static/dist/js/main-ng.js?336b801d6b38eff10884"
strategy="lazyOnload"
/> */}
<AdobeScript />
</head>
<body>
<LangPopup lang={params.lang} />

View File

@@ -11,5 +11,13 @@ const scriptScrs = {
}
export default function AdobeScript() {
return <Script src={scriptScrs[env.NODE_ENV]} />
return (
<>
<Script
strategy="beforeInteractive"
id="ensure-datalayer"
>{`window.datalayer = window.datalayer || {}`}</Script>
<Script src={scriptScrs[env.NODE_ENV]} />
</>
)
}

View File

@@ -6,7 +6,7 @@ import {
TrackingProps,
} from "@/types/components/tracking"
import { usePathname, useSearchParams } from "next/navigation"
import { useEffect, useState } from "react"
import { useEffect } from "react"
function createPageObject(trackingData: TrackingData) {
const [lang, ...segments] = trackingData.pathName
@@ -64,30 +64,22 @@ function createPageObject(trackingData: TrackingData) {
export default function Tracking({ pageData }: TrackingProps) {
const pathName = usePathname()
const queryString = useSearchParams().toString()
const [datalayerExists, setDataLayerExists] = useState(
typeof window !== "undefined" && !!window.datalayer
)
useEffect(() => {
if (!datalayerExists) {
window.datalayer = {}
setDataLayerExists(true)
} else {
const trackingData = { ...pageData, pathName, queryString }
const pageObject = createPageObject(trackingData)
const trackingData = { ...pageData, pathName, queryString }
const pageObject = createPageObject(trackingData)
window.datalayer.page = pageObject
window.datalayer.page = pageObject
// NOTE: Is this irrelevant för drop 1?
// var user_obj = {
// loginstatus: "<if the user is logged in or not>",
// memberid: "<unique meeting package membership id for the user>",
// memberlevel: "<member level of user>",
// }
// NOTE: Is this irrelevant för drop 1?
// var user_obj = {
// loginstatus: "<if the user is logged in or not>",
// memberid: "<unique meeting package membership id for the user>",
// memberlevel: "<member level of user>",
// }
// datalayer.user = user_obj;
}
}, [pathName, queryString, pageData, datalayerExists])
// datalayer.user = user_obj;
}, [pathName, queryString, pageData])
return null
}