fix: output variable name may be duplicate (#5845)

This commit is contained in:
Joel 2024-07-02 13:02:59 +08:00 committed by GitHub
parent 32d85fb896
commit d889e1b233
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -43,8 +43,14 @@ function useOutputVarList<T>({
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<T>({
})
setInputs(newInputs)
onOutputKeyOrdersChange([...outputKeyOrders, newKey])
}, [inputs, setInputs, varKey, outputKeyOrders, onOutputKeyOrdersChange])
}, [generateNewKey, inputs, setInputs, onOutputKeyOrdersChange, outputKeyOrders, varKey])
const [isShowRemoveVarConfirm, {
setTrue: showRemoveVarConfirm,