From 91e0de76c06863de4a7e77fc53bdd836c9d50c24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20R=C3=B8mer=20Hesselbjerg?= Date: Thu, 26 Mar 2026 18:10:34 +0100 Subject: [PATCH 1/4] Package code view: file tree scroll position is stable when browsing --- .../[packageName]/v/[version]/[...filePath].vue | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue b/app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue index 3fbdcfe994..87b1e9f77e 100644 --- a/app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue +++ b/app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue @@ -12,6 +12,22 @@ definePageMeta({ const route = useRoute('code') +// Preserve file-tree scroll position across file +const fileTreeSidebarRef = useTemplateRef('file-tree-sidebar') +const savedFileTreeSidebarScroll = useState('code-sidebar-scroll', () => 0) + +onBeforeUnmount(() => { + savedFileTreeSidebarScroll.value = fileTreeSidebarRef.value?.scrollTop ?? 0 +}) + +watch( + fileTreeSidebarRef, + el => { + if (el && savedFileTreeSidebarScroll.value) el.scrollTop = savedFileTreeSidebarScroll.value + }, + { once: true, flush: 'post' }, +) + // Parse package name, version, and file path from URL // Patterns: // /code/nuxt/v/4.2.0 → packageName: "nuxt", version: "4.2.0", filePath: null (show tree) @@ -349,6 +365,7 @@ defineOgImageComponent('Default', {