Skip to content

Commit 91e0de7

Browse files
committed
Package code view: file tree scroll position is stable when browsing
1 parent 3186091 commit 91e0de7

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

app/pages/package-code/[[org]]/[packageName]/v/[version]/[...filePath].vue

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,22 @@ definePageMeta({
1212
1313
const route = useRoute('code')
1414
15+
// Preserve file-tree scroll position across file
16+
const fileTreeSidebarRef = useTemplateRef('file-tree-sidebar')
17+
const savedFileTreeSidebarScroll = useState('code-sidebar-scroll', () => 0)
18+
19+
onBeforeUnmount(() => {
20+
savedFileTreeSidebarScroll.value = fileTreeSidebarRef.value?.scrollTop ?? 0
21+
})
22+
23+
watch(
24+
fileTreeSidebarRef,
25+
el => {
26+
if (el && savedFileTreeSidebarScroll.value) el.scrollTop = savedFileTreeSidebarScroll.value
27+
},
28+
{ once: true, flush: 'post' },
29+
)
30+
1531
// Parse package name, version, and file path from URL
1632
// Patterns:
1733
// /code/nuxt/v/4.2.0 → packageName: "nuxt", version: "4.2.0", filePath: null (show tree)
@@ -349,6 +365,7 @@ defineOgImageComponent('Default', {
349365
<div v-else-if="fileTree" class="flex flex-1" dir="ltr">
350366
<!-- File tree sidebar - sticky with internal scroll -->
351367
<aside
368+
ref="file-tree-sidebar"
352369
class="w-64 lg:w-72 border-ie border-border shrink-0 hidden md:block bg-bg-subtle sticky top-25 self-start h-[calc(100vh-7rem)] overflow-y-auto"
353370
>
354371
<CodeFileTree

0 commit comments

Comments
 (0)