Skip to content

Commit 6ab1abc

Browse files
authoredApr 16, 2024··
feat(client): auto scroll to component tree after inspected (#308)
1 parent dc9cc40 commit 6ab1abc

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed
 

Diff for: ‎packages/client/src/pages/components.vue

+11-1
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ function inspectComponentInspector() {
174174
}
175175
}).finally(() => {
176176
bridge.value.emit('toggle-panel', true)
177+
scrollToComponentTree()
177178
})
178179
}
179180
@@ -264,6 +265,15 @@ const splitpanesReady = ref(false)
264265
const { width: splitpanesWidth } = useElementSize(splitpanesRef)
265266
// prevent `Splitpanes` layout from being changed before it ready
266267
const horizontal = computed(() => splitpanesReady.value ? splitpanesWidth.value < 700 : false)
268+
269+
const componentTreeContainer = ref<HTMLDivElement>()
270+
function scrollToComponentTree() {
271+
// Use setTimeout to wait for the panel to be visible before scrolling
272+
setTimeout(() => {
273+
const selected = componentTreeContainer.value?.querySelector('.active')
274+
selected?.scrollIntoView({ behavior: 'smooth', block: 'center' })
275+
}, 0)
276+
}
267277
</script>
268278

269279
<template>
@@ -283,7 +293,7 @@ const horizontal = computed(() => splitpanesReady.value ? splitpanesWidth.value
283293
</svg>
284294
</button>
285295
</div>
286-
<div h-screen select-none overflow-scroll p-2 class="no-scrollbar">
296+
<div ref="componentTreeContainer" h-screen select-none overflow-scroll p-2 class="no-scrollbar">
287297
<ComponentTreeNode v-for="item in treeNode" :key="item.id" :data="item" @select="selectComponentTree" @mouseenter="toggleComponentInspector" @mouseleave="toggleComponentInspector" />
288298
</div>
289299
</Pane>

0 commit comments

Comments
 (0)
Please sign in to comment.