diff --git a/app/layout.tsx b/app/layout.tsx index 5400cf67..4b68637c 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -12,6 +12,15 @@ import { ContentStatus } from "@/components/content-status"; import Scripts from "@/components/scripts"; import type { Metadata, ResolvingMetadata } from "next"; import { SpeedInsights } from "@vercel/speed-insights/next"; +import { cookies } from "next/headers"; +import NextScript from "next/script"; +import { + CONSENT_COOKIE_NAME, + parseConsentCookie, + GTM_ID, + buildConsentDefaultScript, + buildGtmLoaderScript, +} from "@/lib/consent"; import "./globals.css"; import { default as OurLayout } from "@/components/layout"; @@ -64,6 +73,9 @@ export default async function RootLayout({ children }) { const pageMap = await getPageMap(); const enableSearch = process.env.NEXT_PUBLIC_ENABLE_SEARCH_BLOG_INTEGRATION === "true"; const starCount = await getStarCount(); + const cookieStore = await cookies(); + const consent = parseConsentCookie(cookieStore.get(CONSENT_COOKIE_NAME)?.value); + const consentDefaultScript = buildConsentDefaultScript(consent); const navbar = ( + > + {/* Google Consent Mode v2 defaults — must run before GTM */} +