Browse Source

feat: sort variables in the selector by x axis for most recent order (#19243)

tags/1.4.0
GeorgeCaoJ 5 months ago
parent
commit
b979a8a707
No account linked to committer's email address
1 changed files with 13 additions and 1 deletions
  1. 13
    1
      web/app/components/workflow/nodes/_base/components/variable/utils.ts

+ 13
- 1
web/app/components/workflow/nodes/_base/components/variable/utils.ts View File

@@ -577,8 +577,20 @@ export const toNodeOutputVars = (
chatVarList: conversationVariables,
},
}
// Sort nodes in reverse chronological order (most recent first)
const sortedNodes = [...nodes].sort((a, b) => {
if (a.data.type === BlockEnum.Start) return 1
if (b.data.type === BlockEnum.Start) return -1
if (a.data.type === 'env') return 1
if (b.data.type === 'env') return -1
if (a.data.type === 'conversation') return 1
if (b.data.type === 'conversation') return -1
// sort nodes by x position
return (b.position?.x || 0) - (a.position?.x || 0)
})

const res = [
...nodes.filter(node => SUPPORT_OUTPUT_VARS_NODE.includes(node?.data?.type)),
...sortedNodes.filter(node => SUPPORT_OUTPUT_VARS_NODE.includes(node?.data?.type)),
...(environmentVariables.length > 0 ? [ENV_NODE] : []),
...((isChatMode && conversationVariables.length > 0) ? [CHAT_VAR_NODE] : []),
].map((node) => {

Loading…
Cancel
Save