mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-27 17:52:16 +00:00
Ctrl + Click recursively expand/collapse node library folder (#613)
This commit is contained in:
@@ -29,14 +29,7 @@
|
|||||||
:pt="{
|
:pt="{
|
||||||
nodeLabel: 'node-lib-tree-node-label',
|
nodeLabel: 'node-lib-tree-node-label',
|
||||||
nodeContent: ({ props }) => ({
|
nodeContent: ({ props }) => ({
|
||||||
onClick: () => {
|
onClick: (e: MouseEvent) => onNodeContentClick(e, props.node)
|
||||||
if (!props.node.key) return
|
|
||||||
if (props.node.type === 'folder') {
|
|
||||||
toggleNode(props.node.key)
|
|
||||||
} else {
|
|
||||||
insertNode(props.node.data)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}),
|
}),
|
||||||
nodeChildren: ({ props }) => ({
|
nodeChildren: ({ props }) => ({
|
||||||
'data-comfy-node-name': props.node?.data?.name,
|
'data-comfy-node-name': props.node?.data?.name,
|
||||||
@@ -233,11 +226,19 @@ const handleNodeHover = async (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const toggleNode = (id: string) => {
|
const toggleNode = (node: TreeNode) => {
|
||||||
if (id in expandedKeys.value) {
|
if (node.key in expandedKeys.value) {
|
||||||
delete expandedKeys.value[id]
|
delete expandedKeys.value[node.key]
|
||||||
} else {
|
} else {
|
||||||
expandedKeys.value[id] = true
|
expandedKeys.value[node.key] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const toggleNodeRecursive = (node: TreeNode) => {
|
||||||
|
if (node.key in expandedKeys.value) {
|
||||||
|
collapseNode(node)
|
||||||
|
} else {
|
||||||
|
expandNode(node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,6 +271,29 @@ const expandNode = (node: TreeNode) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const collapseNode = (node: TreeNode) => {
|
||||||
|
if (node.children && node.children.length) {
|
||||||
|
delete expandedKeys.value[node.key]
|
||||||
|
|
||||||
|
for (let child of node.children) {
|
||||||
|
collapseNode(child)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const onNodeContentClick = (e: MouseEvent, node: TreeNode) => {
|
||||||
|
if (!node.key) return
|
||||||
|
if (node.type === 'folder') {
|
||||||
|
if (e.ctrlKey) {
|
||||||
|
toggleNodeRecursive(node)
|
||||||
|
} else {
|
||||||
|
toggleNode(node)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
insertNode(node.data)
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
Reference in New Issue
Block a user