diff --git a/lib/kits/core-ui/components/helpers/component.ts b/lib/kits/core-ui/components/helpers/component.ts index 6fc4b3e8..427956a2 100644 --- a/lib/kits/core-ui/components/helpers/component.ts +++ b/lib/kits/core-ui/components/helpers/component.ts @@ -252,25 +252,31 @@ const updateQueryParam = (url, paramName, newValue) => { return urlObject.toString(); }; -export const tranformWebshopLink = (url) => { +export const transformWebshopLink = (url) => { const scriptEl = document.getElementById('sgn-sdk'); const dataset = scriptEl?.dataset; if (url) { + const newUrl = new URL(url); + if (dataset?.componentPublicationUtmSource) { - url = updateQueryParam( - url, + newUrl.searchParams.set( 'utm_source', dataset.componentPublicationUtmSource ); } if (dataset?.componentPublicationUtmMedium) { - url = updateQueryParam( - url, + newUrl.searchParams.set( 'utm_medium', dataset.componentPublicationUtmMedium ); } + if (dataset?.componentPublicationDisableUtm === 'true') { + newUrl.searchParams.delete('utm_source'); + newUrl.searchParams.delete('utm_medium'); + } + + return newUrl.toString(); } return url; diff --git a/lib/kits/core-ui/components/helpers/transformers.ts b/lib/kits/core-ui/components/helpers/transformers.ts index 1c1bb152..b10767f7 100644 --- a/lib/kits/core-ui/components/helpers/transformers.ts +++ b/lib/kits/core-ui/components/helpers/transformers.ts @@ -44,6 +44,9 @@ export const transformScriptData = ( enableLazyload: dataset.componentPublicationEnableLazyload === 'true', requestFilter: dataset.componentListPublicationsRequestFilter, clientFilter: dataset.componentListPublicationsClientFilter, - noOfferLinkMessage: dataset.componentPublicationNoOfferLinkMessage + noOfferLinkMessage: dataset.componentPublicationNoOfferLinkMessage, + disableUtm: dataset.componentPublicationDisableUtm === 'true', + utmSource: dataset.componentPublicationUtmSource, + utmMedium: dataset.componentPublicationUtmMedium }; }; diff --git a/lib/kits/core-ui/incito-publication.ts b/lib/kits/core-ui/incito-publication.ts index 1184a109..9e0b1882 100644 --- a/lib/kits/core-ui/incito-publication.ts +++ b/lib/kits/core-ui/incito-publication.ts @@ -15,7 +15,7 @@ import { transformFilter, getHashFragments, pushQueryParam, - tranformWebshopLink + transformWebshopLink } from './components/helpers/component'; import MainContainer from './components/incito-publication/main-container'; import SectionList from './components/incito-publication/section-list'; @@ -562,7 +562,7 @@ const IncitoPublication = ( if (!res) throw new Error(); if (res.offer.id) { - res.offer.webshop_link = tranformWebshopLink( + res.offer.webshop_link = transformWebshopLink( res.offer.webshop_link );