Update sidebar unit grouping and apply layout/page updates

This commit is contained in:
Codex Agent
2026-03-08 19:29:26 +00:00
parent 6a0347fd22
commit 51a26ad120
2 changed files with 21 additions and 13 deletions

View File

@@ -265,6 +265,7 @@
let isMobileHeader = false;
let theme: ThemeMode = 'dark';
let selectedPaletteIndex = 0;
let savedScrollRestoration: ScrollRestoration | null = null;
$: isHomepage = $page.url.pathname === '/';
$: if (isHomepage && (sidebarOpen || headerSearchOpen)) {
sidebarOpen = false;
@@ -326,14 +327,30 @@
document.head.appendChild(script);
};
afterNavigate(() => {
const scrollToTop = () => {
if (!browser) return;
window.scrollTo({ top: 0, behavior: 'auto' });
};
afterNavigate(({ from, to, type }) => {
sidebarOpen = false;
headerSearchOpen = false;
if (!browser) return;
if (type === 'popstate') return;
if (!from || !to) return;
if (from.url.pathname === to.url.pathname) return;
scrollToTop();
});
onMount(() => {
if (!browser) return;
const appWindow = window as WindowWithAnalytics;
if ('scrollRestoration' in window.history) {
savedScrollRestoration = window.history.scrollRestoration;
window.history.scrollRestoration = 'manual';
}
let idleCallbackId: number | null = null;
let fallbackTimeoutId: number | null = null;
@@ -411,6 +428,9 @@
window.clearTimeout(fallbackTimeoutId);
}
window.removeEventListener('keydown', handleEscape);
if (savedScrollRestoration !== null) {
window.history.scrollRestoration = savedScrollRestoration;
}
};
if ('addEventListener' in mediaQuery) {

View File

@@ -1,8 +1,5 @@
<script lang="ts">
import Calculator from '$lib/components/Calculator.svelte';
import { afterNavigate } from '$app/navigation';
import { browser } from '$app/environment';
import { onMount } from 'svelte';
import type { PageData } from './$types';
import { buildSeoMeta, canonicalUrl, SITE_NAME, SITE_URL, toJsonLd } from '$lib/seo';
@@ -56,15 +53,6 @@
},
});
afterNavigate(() => {
if (!browser) return;
window.scrollTo({ top: 0 });
});
onMount(() => {
if (!browser) return;
window.scrollTo({ top: 0 });
});
</script>
<svelte:head>