diff --git a/src/components/sidebar/tabs/NodeLibrarySideBarTab.vue b/src/components/sidebar/tabs/NodeLibrarySideBarTab.vue
index 0697cf67b..4925e4945 100644
--- a/src/components/sidebar/tabs/NodeLibrarySideBarTab.vue
+++ b/src/components/sidebar/tabs/NodeLibrarySideBarTab.vue
@@ -1,63 +1,83 @@
-
+
+
+
+
+
+
-
- {{ node.label }}
-
+ const hoverTarget = event.target as HTMLElement
+ const targetRect = hoverTarget.getBoundingClientRect()
+ nodePreviewStyle.top = `${targetRect.top - 40}px`
+ nodePreviewStyle.left = `${targetRect.right}px`
+ },
+ onMouseleave: () => {
+ hoveredComfyNodeName = null
+ }
+ })
+ }"
+ >
+
+ {{ node.label }}
+
+
+
+ {{ node.label }}
+
+
+
+
+
-
- {{ node.label }}
-
-
-
-
-
+
+
+
diff --git a/src/i18n.ts b/src/i18n.ts
index d51f4996e..cadcc2dbf 100644
--- a/src/i18n.ts
+++ b/src/i18n.ts
@@ -6,7 +6,10 @@ const messages = {
settings: 'Settings',
themeToggle: 'Toggle Theme',
queue: 'Queue',
- nodeLibrary: 'Node Library'
+ nodeLibrary: 'Node Library',
+ nodeLibraryTab: {
+ sortOrder: 'Sort Order'
+ }
}
},
zh: {
@@ -14,7 +17,10 @@ const messages = {
settings: '设置',
themeToggle: '主题切换',
queue: '队列',
- nodeLibrary: '节点库'
+ nodeLibrary: '节点库',
+ nodeLibraryTab: {
+ sortOrder: '排序顺序'
+ }
}
}
// TODO: Add more languages
diff --git a/src/stores/nodeDefStore.ts b/src/stores/nodeDefStore.ts
index 2a50c448c..499fb218a 100644
--- a/src/stores/nodeDefStore.ts
+++ b/src/stores/nodeDefStore.ts
@@ -218,6 +218,27 @@ export const SYSTEM_NODE_DEFS: ComfyNodeDef[] = [
}
]
+function sortedTree(node: TreeNode): TreeNode {
+ // Create a new node with the same label and data
+ const newNode: TreeNode = {
+ ...node
+ }
+
+ if (node.children) {
+ // Sort the children of the current node
+ const sortedChildren = [...node.children].sort((a, b) =>
+ a.label.localeCompare(b.label)
+ )
+ // Recursively sort the children and add them to the new node
+ newNode.children = []
+ for (const child of sortedChildren) {
+ newNode.children.push(sortedTree(child))
+ }
+ }
+
+ return newNode
+}
+
interface State {
nodeDefsByName: Record
widgets: Record
@@ -261,6 +282,9 @@ export const useNodeDefStore = defineStore('nodeDef', {
})
}
return root
+ },
+ sortedNodeTree(): TreeNode {
+ return sortedTree(this.nodeTree)
}
},
actions: {