From 6311ec6ecae3d661089d5b4443acabd65359a4e8 Mon Sep 17 00:00:00 2001 From: Linus Flood Date: Mon, 19 May 2025 09:21:02 +0000 Subject: [PATCH] Merged in fix/sw-2763-external-scripts (pull request #2104) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../components/TrackingSDK/AdobeSDKScript.tsx | 5 +++++ .../components/TrackingSDK/GTMScript.tsx | 22 +++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/apps/scandic-web/components/TrackingSDK/AdobeSDKScript.tsx b/apps/scandic-web/components/TrackingSDK/AdobeSDKScript.tsx index 12a13c611..d4638a538 100644 --- a/apps/scandic-web/components/TrackingSDK/AdobeSDKScript.tsx +++ b/apps/scandic-web/components/TrackingSDK/AdobeSDKScript.tsx @@ -1,3 +1,4 @@ +import * as Sentry from "@sentry/nextjs" import Script from "next/script" import { env } from "@/env/server" @@ -8,6 +9,10 @@ export default function AdobeSDKScript() { data-cookieconsent="statistics" src={env.ADOBE_SDK_SCRIPT_SRC} async + onError={(e) => { + console.error("Failed to load AdobeSDK script", e) + Sentry.captureException(e) + }} /> ) : null } diff --git a/apps/scandic-web/components/TrackingSDK/GTMScript.tsx b/apps/scandic-web/components/TrackingSDK/GTMScript.tsx index 0129a0eda..a969264b9 100644 --- a/apps/scandic-web/components/TrackingSDK/GTMScript.tsx +++ b/apps/scandic-web/components/TrackingSDK/GTMScript.tsx @@ -1,3 +1,4 @@ +import * as Sentry from "@sentry/nextjs" import Script from "next/script" import { env } from "@/env/server" @@ -9,10 +10,27 @@ export default function GTMScript() { data-cookieconsent="statistics" dangerouslySetInnerHTML={{ __html: ` - (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'); - `, + 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 }