From 616326137bcb7298b9526c5d61de53cfd319a796 Mon Sep 17 00:00:00 2001 From: aashir-tech Date: Tue, 7 Jul 2026 14:30:27 +0530 Subject: [PATCH] fix: define window.va queue stub on marketing pages so custom events queue reliably Marketing pages fire custom events by calling window.va directly (they ship no framework JS). The deferred /_vercel/insights/script.js defines window.va only once it loads, so an early click could drop the event. Add the standard va queue stub (same one @vercel/analytics injects) up front in the enhancement script: events always queue and the real script drains window.vaq once analytics is provisioned. --- src/marketing/layout/MarketingLayout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/marketing/layout/MarketingLayout.tsx b/src/marketing/layout/MarketingLayout.tsx index c519930..7835a4b 100644 --- a/src/marketing/layout/MarketingLayout.tsx +++ b/src/marketing/layout/MarketingLayout.tsx @@ -14,7 +14,7 @@ import { SiteHeader } from './SiteHeader' * content is simply visible — never hidden. */ const ENHANCE_SCRIPT = - "(function(){var d=document.documentElement;if(d.getAttribute('data-mk-enhanced'))return;d.setAttribute('data-mk-enhanced','1');try{var s=localStorage.getItem('scripto:mk-theme');if(s==='light')d.classList.remove('dark');else if(s==='dark')d.classList.add('dark')}catch(e){}d.classList.add('js');document.addEventListener('click',function(ev){var t=ev.target;var tk=t&&t.closest?t.closest('[data-track]'):null;if(tk&&window.va){var dd={};for(var ai=0;ai=900){var m=mkMenu();if(m&&m.open)m.open=false}});document.addEventListener('toggle',function(ev){var m=ev.target;if(!m||!m.classList||!m.classList.contains('mk-menu'))return;var s=m.querySelector('summary');if(s){s.setAttribute('aria-expanded',m.open?'true':'false');var lb=s.getAttribute(m.open?'data-label-close':'data-label-open');if(lb)s.setAttribute('aria-label',lb)}d.classList.toggle('mk-menu-open',m.open)},true);var o='IntersectionObserver'in window?new IntersectionObserver(function(t){t.forEach(function(n){n.isIntersecting&&(n.target.classList.add('in'),o.unobserve(n.target))})},{rootMargin:'0px 0px -8% 0px',threshold:0.08}):null;function scan(){var e=document.querySelectorAll('.mk-reveal:not([data-obs])');for(var i=0;i=2)ok();else v.addEventListener('loadeddata',ok,{once:true})}}if(document.readyState==='loading')addEventListener('DOMContentLoaded',scan);scan();addEventListener('load',scan);setTimeout(scan,400);setTimeout(scan,1600)})();" + "(function(){var d=document.documentElement;if(d.getAttribute('data-mk-enhanced'))return;d.setAttribute('data-mk-enhanced','1');window.va=window.va||function(){(window.vaq=window.vaq||[]).push(arguments)};try{var s=localStorage.getItem('scripto:mk-theme');if(s==='light')d.classList.remove('dark');else if(s==='dark')d.classList.add('dark')}catch(e){}d.classList.add('js');document.addEventListener('click',function(ev){var t=ev.target;var tk=t&&t.closest?t.closest('[data-track]'):null;if(tk&&window.va){var dd={};for(var ai=0;ai=900){var m=mkMenu();if(m&&m.open)m.open=false}});document.addEventListener('toggle',function(ev){var m=ev.target;if(!m||!m.classList||!m.classList.contains('mk-menu'))return;var s=m.querySelector('summary');if(s){s.setAttribute('aria-expanded',m.open?'true':'false');var lb=s.getAttribute(m.open?'data-label-close':'data-label-open');if(lb)s.setAttribute('aria-label',lb)}d.classList.toggle('mk-menu-open',m.open)},true);var o='IntersectionObserver'in window?new IntersectionObserver(function(t){t.forEach(function(n){n.isIntersecting&&(n.target.classList.add('in'),o.unobserve(n.target))})},{rootMargin:'0px 0px -8% 0px',threshold:0.08}):null;function scan(){var e=document.querySelectorAll('.mk-reveal:not([data-obs])');for(var i=0;i=2)ok();else v.addEventListener('loadeddata',ok,{once:true})}}if(document.readyState==='loading')addEventListener('DOMContentLoaded',scan);scan();addEventListener('load',scan);setTimeout(scan,400);setTimeout(scan,1600)})();" interface MarketingLayoutProps { lang: MarketingLang