diff --git a/web/app/components/workflow/nodes/_base/hooks/use-output-var-list.ts b/web/app/components/workflow/nodes/_base/hooks/use-output-var-list.ts index 3f238b44e8..c7bce2ef07 100644 --- a/web/app/components/workflow/nodes/_base/hooks/use-output-var-list.ts +++ b/web/app/components/workflow/nodes/_base/hooks/use-output-var-list.ts @@ -43,8 +43,14 @@ function useOutputVarList({ handleOutVarRenameChange(id, [id, outputKeyOrders[changedIndex!]], [id, newKey]) }, [inputs, setInputs, handleOutVarRenameChange, id, outputKeyOrders, varKey, onOutputKeyOrdersChange]) + const generateNewKey = useCallback(() => { + let keyIndex = Object.keys((inputs as any)[varKey]).length + 1 + while (((inputs as any)[varKey])[`var_${keyIndex}`]) + keyIndex++ + return `var_${keyIndex}` + }, [inputs, varKey]) const handleAddVariable = useCallback(() => { - const newKey = `var_${Object.keys((inputs as any)[varKey]).length + 1}` + const newKey = generateNewKey() const newInputs = produce(inputs, (draft: any) => { draft[varKey] = { ...draft[varKey], @@ -56,7 +62,7 @@ function useOutputVarList({ }) setInputs(newInputs) onOutputKeyOrdersChange([...outputKeyOrders, newKey]) - }, [inputs, setInputs, varKey, outputKeyOrders, onOutputKeyOrdersChange]) + }, [generateNewKey, inputs, setInputs, onOutputKeyOrdersChange, outputKeyOrders, varKey]) const [isShowRemoveVarConfirm, { setTrue: showRemoveVarConfirm,