From 51a26ad1206c68f4522d62558e81b5e0652084fa Mon Sep 17 00:00:00 2001 From: Codex Agent Date: Sun, 8 Mar 2026 19:29:26 +0000 Subject: [PATCH] Update sidebar unit grouping and apply layout/page updates --- hdyc-svelte/src/routes/+layout.svelte | 22 +++++++++++++++++++++- hdyc-svelte/src/routes/[slug]/+page.svelte | 12 ------------ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/hdyc-svelte/src/routes/+layout.svelte b/hdyc-svelte/src/routes/+layout.svelte index 2f07863..74404c6 100644 --- a/hdyc-svelte/src/routes/+layout.svelte +++ b/hdyc-svelte/src/routes/+layout.svelte @@ -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) { diff --git a/hdyc-svelte/src/routes/[slug]/+page.svelte b/hdyc-svelte/src/routes/[slug]/+page.svelte index 1a83dd3..86235f4 100644 --- a/hdyc-svelte/src/routes/[slug]/+page.svelte +++ b/hdyc-svelte/src/routes/[slug]/+page.svelte @@ -1,8 +1,5 @@