Skip to content

Commit 80f4df4

Browse files
committed
feat: alt-click to expand all sub-nodes
1 parent b3dd744 commit 80f4df4

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

packages/app-frontend/src/features/components/ComponentTreeNode.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export default defineComponent({
4141
isExpandedUndefined,
4242
isComponentOpen,
4343
toggleExpand: toggle,
44+
forceToggleExpandAll: forceToggleAll,
4445
subscribeToComponentTree,
4546
} = useComponent(instance)
4647
@@ -149,6 +150,7 @@ export default defineComponent({
149150
select,
150151
expanded,
151152
toggle,
153+
forceToggleAll,
152154
highlight,
153155
unhighlight,
154156
selectNextSibling,
@@ -180,7 +182,8 @@ export default defineComponent({
180182
:class="{
181183
'invisible': !instance.hasChildren
182184
}"
183-
@click.stop="toggle()"
185+
@click.exact.stop="toggle()"
186+
@click.alt.exact.stop="forceToggleAll(instance, !expanded)"
184187
>
185188
<span
186189
:class="{

packages/app-frontend/src/features/components/composable/components.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,17 @@ export function useComponent (instance: Ref<ComponentTreeNode>) {
144144
}
145145
}
146146

147+
function forceToggleExpandAll (instance, isOpen) {
148+
if (!instance.hasChildren) return
149+
setComponentOpen(instance.id, isOpen)
150+
if (isComponentOpen(instance.id)) {
151+
requestComponentTree(instance.id)
152+
}
153+
instance.children.forEach(child => {
154+
forceToggleExpandAll(child, isOpen)
155+
})
156+
}
157+
147158
const isSelected = computed(() => selectedComponentId.value === instance.value.id)
148159

149160
function select (id = instance.value.id) {
@@ -179,6 +190,7 @@ export function useComponent (instance: Ref<ComponentTreeNode>) {
179190
isExpandedUndefined,
180191
isComponentOpen,
181192
toggleExpand,
193+
forceToggleExpandAll,
182194
isSelected,
183195
select,
184196
subscribeToComponentTree,

0 commit comments

Comments
 (0)