diff --git a/.tool-versions b/.tool-versions index d7fea77c..848faad1 100644 --- a/.tool-versions +++ b/.tool-versions @@ -3,6 +3,7 @@ terraform 1.14.1 pre-commit 4.5.0 vale 3.13.0 +gitleaks 8.30.1 nodejs 22.13.1 # ============================================================================== diff --git a/src/app/_components/analytics/DigitalDataScript.tsx b/src/app/_components/analytics/DigitalDataScript.tsx new file mode 100644 index 00000000..5f6db496 --- /dev/null +++ b/src/app/_components/analytics/DigitalDataScript.tsx @@ -0,0 +1,25 @@ +"use client"; + +import { buildDigitalData } from "@src/app/_components/analytics/digitalDataConfig"; +import { usePathname } from "next/navigation"; +import { useEffect } from "react"; + +const toSafeInlineScriptJson = (value: unknown): string => { + return JSON.stringify(value) + .replace(/ { + const pathname = usePathname(); + const digitalData = buildDigitalData(pathname); + const digitalDataScript = `window.digitalData = ${toSafeInlineScriptJson(digitalData)};`; + + // Keep window.digitalData current on every client-side navigation + useEffect(() => { + window.digitalData = buildDigitalData(pathname); + }, [pathname]); + + return