diff options
Diffstat (limited to 'src/routes/+layout.svelte')
| -rw-r--r-- | src/routes/+layout.svelte | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 9b488bd..19a7b85 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -8,17 +8,6 @@ let { children } = $props(); onMount(() => { - const loadFonts = () => { - if (document.querySelector('link[data-app-fonts="true"]')) return; - - const link = document.createElement("link"); - link.rel = "stylesheet"; - link.href = - "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap"; - link.setAttribute("data-app-fonts", "true"); - document.head.appendChild(link); - }; - const loadAnalytics = () => { if (document.querySelector('script[data-goatcounter-script="true"]')) return; @@ -32,23 +21,34 @@ document.head.appendChild(script); }; - const runDeferredLoads = () => { - loadFonts(); - loadAnalytics(); + const runDeferredAnalytics = () => { + const idleWindow = window as Window & { + requestIdleCallback?: ( + callback: IdleRequestCallback, + options?: IdleRequestOptions, + ) => number; + }; + + if (typeof idleWindow.requestIdleCallback === "function") { + idleWindow.requestIdleCallback(loadAnalytics, { timeout: 3000 }); + return; + } + window.setTimeout(loadAnalytics, 1500); }; if (document.readyState === "complete") { - window.setTimeout(runDeferredLoads, 0); + runDeferredAnalytics(); return; } - window.addEventListener("load", runDeferredLoads, { once: true }); - return () => window.removeEventListener("load", runDeferredLoads); + window.addEventListener("load", runDeferredAnalytics, { once: true }); + return () => window.removeEventListener("load", runDeferredAnalytics); }); </script> <svelte:head> <link rel="icon" href={favicon} /> + <meta name="color-scheme" content="light dark" /> </svelte:head> <Header title="Berke Güzel" description="Super. Bad. Code." /> |
