summaryrefslogtreecommitdiff
path: root/src/routes/+layout.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/+layout.svelte')
-rw-r--r--src/routes/+layout.svelte34
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." />