From 74340e3c04946b9957d150ea95d58c8b55853ee6 Mon Sep 17 00:00:00 2001 From: miwa <905102996@qq.com> Date: Tue, 16 Sep 2025 09:46:44 +0800 Subject: [PATCH] =?UTF-8?q?Bugfix:=20When=20i=20change=20the=20loop=20vari?= =?UTF-8?q?able,=20'Loop=20Termination=20Condition'=20wi=E2=80=A6=20(#2569?= =?UTF-8?q?5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: fengminhua --- .../workflow/nodes/loop/use-config.ts | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/web/app/components/workflow/nodes/loop/use-config.ts b/web/app/components/workflow/nodes/loop/use-config.ts index 87f3d65a99..949488b2a5 100644 --- a/web/app/components/workflow/nodes/loop/use-config.ts +++ b/web/app/components/workflow/nodes/loop/use-config.ts @@ -47,14 +47,14 @@ const useConfig = (id: string, payload: LoopNodeType) => { }) const changeErrorResponseMode = useCallback((item: { value: unknown }) => { - const newInputs = produce(inputs, (draft) => { + const newInputs = produce(inputsRef.current, (draft) => { draft.error_handle_mode = item.value as ErrorHandleMode }) - setInputs(newInputs) - }, [inputs, setInputs]) + handleInputsChange(newInputs) + }, [inputs, handleInputsChange]) const handleAddCondition = useCallback((valueSelector, varItem) => { - const newInputs = produce(inputs, (draft) => { + const newInputs = produce(inputsRef.current, (draft) => { if (!draft.break_conditions) draft.break_conditions = [] @@ -66,34 +66,34 @@ const useConfig = (id: string, payload: LoopNodeType) => { value: varItem.type === VarType.boolean ? 'false' : '', }) }) - setInputs(newInputs) - }, [getIsVarFileAttribute, inputs, setInputs]) + handleInputsChange(newInputs) + }, [getIsVarFileAttribute, handleInputsChange]) const handleRemoveCondition = useCallback((conditionId) => { - const newInputs = produce(inputs, (draft) => { + const newInputs = produce(inputsRef.current, (draft) => { draft.break_conditions = draft.break_conditions?.filter(item => item.id !== conditionId) }) - setInputs(newInputs) - }, [inputs, setInputs]) + handleInputsChange(newInputs) + }, [handleInputsChange]) const handleUpdateCondition = useCallback((conditionId, newCondition) => { - const newInputs = produce(inputs, (draft) => { + const newInputs = produce(inputsRef.current, (draft) => { const targetCondition = draft.break_conditions?.find(item => item.id === conditionId) if (targetCondition) Object.assign(targetCondition, newCondition) }) - setInputs(newInputs) - }, [inputs, setInputs]) + handleInputsChange(newInputs) + }, [handleInputsChange]) const handleToggleConditionLogicalOperator = useCallback(() => { - const newInputs = produce(inputs, (draft) => { + const newInputs = produce(inputsRef.current, (draft) => { draft.logical_operator = draft.logical_operator === LogicalOperator.and ? LogicalOperator.or : LogicalOperator.and }) - setInputs(newInputs) - }, [inputs, setInputs]) + handleInputsChange(newInputs) + }, [handleInputsChange]) const handleAddSubVariableCondition = useCallback((conditionId: string, key?: string) => { - const newInputs = produce(inputs, (draft) => { + const newInputs = produce(inputsRef.current, (draft) => { const condition = draft.break_conditions?.find(item => item.id === conditionId) if (!condition) return @@ -119,11 +119,11 @@ const useConfig = (id: string, payload: LoopNodeType) => { }) } }) - setInputs(newInputs) - }, [inputs, setInputs]) + handleInputsChange(newInputs) + }, [handleInputsChange]) const handleRemoveSubVariableCondition = useCallback((conditionId: string, subConditionId: string) => { - const newInputs = produce(inputs, (draft) => { + const newInputs = produce(inputsRef.current, (draft) => { const condition = draft.break_conditions?.find(item => item.id === conditionId) if (!condition) return @@ -133,11 +133,11 @@ const useConfig = (id: string, payload: LoopNodeType) => { if (subVarCondition) subVarCondition.conditions = subVarCondition.conditions.filter(item => item.id !== subConditionId) }) - setInputs(newInputs) - }, [inputs, setInputs]) + handleInputsChange(newInputs) + }, [handleInputsChange]) const handleUpdateSubVariableCondition = useCallback((conditionId, subConditionId, newSubCondition) => { - const newInputs = produce(inputs, (draft) => { + const newInputs = produce(inputsRef.current, (draft) => { const targetCondition = draft.break_conditions?.find(item => item.id === conditionId) if (targetCondition && targetCondition.sub_variable_condition) { const targetSubCondition = targetCondition.sub_variable_condition.conditions.find(item => item.id === subConditionId) @@ -145,24 +145,24 @@ const useConfig = (id: string, payload: LoopNodeType) => { Object.assign(targetSubCondition, newSubCondition) } }) - setInputs(newInputs) - }, [inputs, setInputs]) + handleInputsChange(newInputs) + }, [handleInputsChange]) const handleToggleSubVariableConditionLogicalOperator = useCallback((conditionId) => { - const newInputs = produce(inputs, (draft) => { + const newInputs = produce(inputsRef.current, (draft) => { const targetCondition = draft.break_conditions?.find(item => item.id === conditionId) if (targetCondition && targetCondition.sub_variable_condition) targetCondition.sub_variable_condition.logical_operator = targetCondition.sub_variable_condition.logical_operator === LogicalOperator.and ? LogicalOperator.or : LogicalOperator.and }) - setInputs(newInputs) - }, [inputs, setInputs]) + handleInputsChange(newInputs) + }, [handleInputsChange]) const handleUpdateLoopCount = useCallback((value: number) => { - const newInputs = produce(inputs, (draft) => { + const newInputs = produce(inputsRef.current, (draft) => { draft.loop_count = value }) - setInputs(newInputs) - }, [inputs, setInputs]) + handleInputsChange(newInputs) + }, [handleInputsChange]) const handleAddLoopVariable = useCallback(() => { const newInputs = produce(inputsRef.current, (draft) => {