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

This commit is contained in:
GeorgeCaoJ 2025-05-06 10:59:02 +08:00 committed by GitHub
parent 9231c197a5
commit b979a8a707
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

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) => {