From dbe7ce34e26649aa25eff73520ec1f3548e917c4 Mon Sep 17 00:00:00 2001 From: Linus Flood Date: Wed, 13 Nov 2024 10:44:56 +0100 Subject: [PATCH] Added useRef back --- components/TrackingSDK/RouterTransition.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/components/TrackingSDK/RouterTransition.tsx b/components/TrackingSDK/RouterTransition.tsx index 1afe3b7e6..506ce17cf 100644 --- a/components/TrackingSDK/RouterTransition.tsx +++ b/components/TrackingSDK/RouterTransition.tsx @@ -37,10 +37,13 @@ export default function RouterTransition({ const pathName = usePathname() const { isTransitioning, stopRouterTransition } = useRouterTransitionStore() - //const hasRunInitial = useRef(false) + + // We need this check to differentiate hard vs soft navigations + // This is not because of StrictMode + const hasRunInitial = useRef(false) useEffect(() => { - if (!hasRun) { + if (!hasRun && !hasRunInitial.current) { const perfObserver = new PerformanceObserver((observedEntries) => { const entry = observedEntries.getEntriesByType("navigation")[0] if (entry) { @@ -67,6 +70,7 @@ export default function RouterTransition({ type: "navigation", buffered: true, }) + hasRunInitial.current = true setHasRun() } }, [pathName, hasRun, setHasRun, hotelInfo, userData, pageData]) @@ -89,7 +93,7 @@ export default function RouterTransition({ !isTransitioning && status === TransitionStatusEnum.Done ) { - if (window.adobeDataLayer && hasRun) { + if (window.adobeDataLayer && hasRun && !hasRunInitial.current) { const trackingData = { ...pageData, pathName,