@@ -32,6 +32,7 @@ import { DefaultCatchBoundary } from '~/components/DefaultCatchBoundary'
3232import { SearchProvider } from '~/contexts/SearchContext'
3333import { ToastProvider } from '~/components/ToastProvider'
3434import { LoginModalProvider } from '~/contexts/LoginModalContext'
35+ import { ConsentManager } from '~/components/ConsentManager'
3536
3637import { Spinner } from '~/components/Spinner'
3738import { ThemeProvider , useHtmlClass } from '~/components/ThemeProvider'
@@ -41,10 +42,6 @@ import { trackPageView } from '~/utils/analytics'
4142import { createPartnerPlacementSessionSeed } from '~/utils/partner-placement'
4243import { twMerge } from 'tailwind-merge'
4344
44- const GOOGLE_ANALYTICS_ID = 'G-JMT1Z50SPS'
45- const GOOGLE_ANALYTICS_PROXY_PREFIX = '/_a'
46- const GOOGLE_ANALYTICS_SCRIPT_SRC = `${ GOOGLE_ANALYTICS_PROXY_PREFIX } /gtag.js`
47- const GOOGLE_ANALYTICS_BOOTSTRAP = `(function(){var id='${ GOOGLE_ANALYTICS_ID } ';var src='${ GOOGLE_ANALYTICS_SCRIPT_SRC } ';window.dataLayer=window.dataLayer||[];window.gtag=window.gtag||function(){window.dataLayer.push(arguments)};window.gtag('js',new Date());window.gtag('config',id,{transport_url:window.location.origin+'${ GOOGLE_ANALYTICS_PROXY_PREFIX } '});var loaded=false;var load=function(){if(loaded)return;loaded=true;var script=document.createElement('script');script.async=true;script.src=src;script.setAttribute('data-ga-loader','true');document.head.appendChild(script)};if(typeof window.requestIdleCallback==='function'){window.requestIdleCallback(load,{timeout:3000});return}if(document.readyState==='complete'){window.setTimeout(load,1500);return}window.addEventListener('load',function(){window.setTimeout(load,1500)},{once:true})})();`
4845const DOCUMENT_CACHE_HEADERS = {
4946 'Cache-Control' : 'public, max-age=0, must-revalidate' ,
5047 'Cloudflare-CDN-Cache-Control' : 'no-store' ,
@@ -223,9 +220,6 @@ export const Route = createRootRouteWithContext<{
223220 {
224221 children : `(function(){try{var t=localStorage.getItem('theme')||'auto';var v=['light','dark','auto'].includes(t)?t:'auto';if(v==='auto'){var a=matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light';document.documentElement.classList.add(a,'auto')}else{document.documentElement.classList.add(v)}}catch(e){var a=matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light';document.documentElement.classList.add(a,'auto')}})()` ,
225222 } ,
226- {
227- children : GOOGLE_ANALYTICS_BOOTSTRAP ,
228- } ,
229223 ] ,
230224 }
231225 } ,
@@ -305,44 +299,46 @@ function ShellComponent({ children }: { children: React.ReactNode }) {
305299 { hasBaseParent ? < base target = "_parent" /> : null }
306300 </ head >
307301 < body className = "overflow-x-hidden" >
308- < LoginModalProvider >
309- < ToastProvider >
310- < PageViewTracker />
311- { hideNavbar ? children : < Navbar > { children } </ Navbar > }
312- { showDevtools && LazyAppDevtools ? (
313- < OptionalDevtoolsBoundary >
314- < React . Suspense fallback = { null } >
315- < LazyAppDevtools />
316- </ React . Suspense >
317- </ OptionalDevtoolsBoundary >
318- ) : null }
319- < div
320- aria-hidden = "true"
321- className = { twMerge (
322- 'pointer-events-none fixed top-0 left-0 z-99999999 h-[320px] w-full select-none' ,
323- ) }
324- >
325- < div
326- className = { twMerge (
327- 'absolute top-0 w-full h-80 rounded-[100%] bg-amber-500/30 blur-3xl transition-all duration-500 dark:bg-sky-400/25' ,
328- showNavigationSpinner
329- ? '-translate-y-1/2 opacity-100'
330- : '-translate-y-full opacity-0' ,
331- ) }
332- />
302+ < ConsentManager showControls = { ! hasBaseParent } >
303+ < LoginModalProvider >
304+ < ToastProvider >
305+ < PageViewTracker />
306+ { hideNavbar ? children : < Navbar > { children } </ Navbar > }
307+ { showDevtools && LazyAppDevtools ? (
308+ < OptionalDevtoolsBoundary >
309+ < React . Suspense fallback = { null } >
310+ < LazyAppDevtools />
311+ </ React . Suspense >
312+ </ OptionalDevtoolsBoundary >
313+ ) : null }
333314 < div
315+ aria-hidden = "true"
334316 className = { twMerge (
335- 'absolute top-6 left-1/2 -translate-x-1/2 rounded-full bg-white/75 p-2 shadow-lg backdrop-blur-lg transition-all duration-300 dark:bg-slate-900/40' ,
336- showNavigationSpinner
337- ? 'translate-y-0 opacity-100'
338- : '-translate-y-6 opacity-0' ,
317+ 'pointer-events-none fixed top-0 left-0 z-99999999 h-[320px] w-full select-none' ,
339318 ) }
340319 >
341- < Spinner className = "text-4xl" />
320+ < div
321+ className = { twMerge (
322+ 'absolute top-0 w-full h-80 rounded-[100%] bg-amber-500/30 blur-3xl transition-all duration-500 dark:bg-sky-400/25' ,
323+ showNavigationSpinner
324+ ? '-translate-y-1/2 opacity-100'
325+ : '-translate-y-full opacity-0' ,
326+ ) }
327+ />
328+ < div
329+ className = { twMerge (
330+ 'absolute top-6 left-1/2 -translate-x-1/2 rounded-full bg-white/75 p-2 shadow-lg backdrop-blur-lg transition-all duration-300 dark:bg-slate-900/40' ,
331+ showNavigationSpinner
332+ ? 'translate-y-0 opacity-100'
333+ : '-translate-y-6 opacity-0' ,
334+ ) }
335+ >
336+ < Spinner className = "text-4xl" />
337+ </ div >
342338 </ div >
343- </ div >
344- </ ToastProvider >
345- </ LoginModalProvider >
339+ </ ToastProvider >
340+ </ LoginModalProvider >
341+ </ ConsentManager >
346342 < Scripts />
347343 </ body >
348344 </ html >
0 commit comments