Files
web/apps/scandic-web/components/TrackingSDK/GTMScript.tsx
Linus Flood 6311ec6eca Merged in fix/sw-2763-external-scripts (pull request #2104)
fix: try/catch external scripts to avoid them breaking our page #sw-2763

* fix: try/catch external scripts to avoid them breaking our page #sw-2763


Approved-by: Joakim Jäderberg
2025-05-19 09:21:02 +00:00

37 lines
1.1 KiB
TypeScript

import * as Sentry from "@sentry/nextjs"
import Script from "next/script"
import { env } from "@/env/server"
export default function GTMScript() {
return env.ENABLE_GTMSCRIPT ? (
<Script
id="gtm-script-tag"
data-cookieconsent="statistics"
dangerouslySetInnerHTML={{
__html: `
try {
(function(w,d,s,l,i){
w[l]=w[l]||[];
w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = 'https://analytics.scandichotels.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window,document,'script','dataLayer','GTM-KNJCW67W');
} catch (e) {
console.error('Failed to load GTM script', e);
}
`,
}}
async
onError={(e) => {
console.error("Failed to load GTM script", e)
Sentry.captureException(e)
}}
/>
) : null
}