From b979a8a707f15d8672f523c79880755c5d7246b0 Mon Sep 17 00:00:00 2001 From: GeorgeCaoJ <851383386@qq.com> Date: Tue, 6 May 2025 10:59:02 +0800 Subject: [PATCH] feat: sort variables in the selector by x axis for most recent order (#19243) --- .../nodes/_base/components/variable/utils.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/web/app/components/workflow/nodes/_base/components/variable/utils.ts b/web/app/components/workflow/nodes/_base/components/variable/utils.ts index d56c636f5..f804cf690 100644 --- a/web/app/components/workflow/nodes/_base/components/variable/utils.ts +++ b/web/app/components/workflow/nodes/_base/components/variable/utils.ts @@ -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) => {