mirror of
https://github.com/langgenius/dify.git
synced 2026-08-28 21:23:22 +08:00
Bugfix: When i change the loop variable, 'Loop Termination Condition' wi… (#25695)
Co-authored-by: fengminhua <fengminhua@52tt.com>
This commit is contained in:
parent
b98b389baf
commit
74340e3c04
@ -47,14 +47,14 @@ const useConfig = (id: string, payload: LoopNodeType) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const changeErrorResponseMode = useCallback((item: { value: unknown }) => {
|
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
|
draft.error_handle_mode = item.value as ErrorHandleMode
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
handleInputsChange(newInputs)
|
||||||
}, [inputs, setInputs])
|
}, [inputs, handleInputsChange])
|
||||||
|
|
||||||
const handleAddCondition = useCallback<HandleAddCondition>((valueSelector, varItem) => {
|
const handleAddCondition = useCallback<HandleAddCondition>((valueSelector, varItem) => {
|
||||||
const newInputs = produce(inputs, (draft) => {
|
const newInputs = produce(inputsRef.current, (draft) => {
|
||||||
if (!draft.break_conditions)
|
if (!draft.break_conditions)
|
||||||
draft.break_conditions = []
|
draft.break_conditions = []
|
||||||
|
|
||||||
@ -66,34 +66,34 @@ const useConfig = (id: string, payload: LoopNodeType) => {
|
|||||||
value: varItem.type === VarType.boolean ? 'false' : '',
|
value: varItem.type === VarType.boolean ? 'false' : '',
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
handleInputsChange(newInputs)
|
||||||
}, [getIsVarFileAttribute, inputs, setInputs])
|
}, [getIsVarFileAttribute, handleInputsChange])
|
||||||
|
|
||||||
const handleRemoveCondition = useCallback<HandleRemoveCondition>((conditionId) => {
|
const handleRemoveCondition = useCallback<HandleRemoveCondition>((conditionId) => {
|
||||||
const newInputs = produce(inputs, (draft) => {
|
const newInputs = produce(inputsRef.current, (draft) => {
|
||||||
draft.break_conditions = draft.break_conditions?.filter(item => item.id !== conditionId)
|
draft.break_conditions = draft.break_conditions?.filter(item => item.id !== conditionId)
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
handleInputsChange(newInputs)
|
||||||
}, [inputs, setInputs])
|
}, [handleInputsChange])
|
||||||
|
|
||||||
const handleUpdateCondition = useCallback<HandleUpdateCondition>((conditionId, newCondition) => {
|
const handleUpdateCondition = useCallback<HandleUpdateCondition>((conditionId, newCondition) => {
|
||||||
const newInputs = produce(inputs, (draft) => {
|
const newInputs = produce(inputsRef.current, (draft) => {
|
||||||
const targetCondition = draft.break_conditions?.find(item => item.id === conditionId)
|
const targetCondition = draft.break_conditions?.find(item => item.id === conditionId)
|
||||||
if (targetCondition)
|
if (targetCondition)
|
||||||
Object.assign(targetCondition, newCondition)
|
Object.assign(targetCondition, newCondition)
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
handleInputsChange(newInputs)
|
||||||
}, [inputs, setInputs])
|
}, [handleInputsChange])
|
||||||
|
|
||||||
const handleToggleConditionLogicalOperator = useCallback<HandleToggleConditionLogicalOperator>(() => {
|
const handleToggleConditionLogicalOperator = useCallback<HandleToggleConditionLogicalOperator>(() => {
|
||||||
const newInputs = produce(inputs, (draft) => {
|
const newInputs = produce(inputsRef.current, (draft) => {
|
||||||
draft.logical_operator = draft.logical_operator === LogicalOperator.and ? LogicalOperator.or : LogicalOperator.and
|
draft.logical_operator = draft.logical_operator === LogicalOperator.and ? LogicalOperator.or : LogicalOperator.and
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
handleInputsChange(newInputs)
|
||||||
}, [inputs, setInputs])
|
}, [handleInputsChange])
|
||||||
|
|
||||||
const handleAddSubVariableCondition = useCallback<HandleAddSubVariableCondition>((conditionId: string, key?: string) => {
|
const handleAddSubVariableCondition = useCallback<HandleAddSubVariableCondition>((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)
|
const condition = draft.break_conditions?.find(item => item.id === conditionId)
|
||||||
if (!condition)
|
if (!condition)
|
||||||
return
|
return
|
||||||
@ -119,11 +119,11 @@ const useConfig = (id: string, payload: LoopNodeType) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
handleInputsChange(newInputs)
|
||||||
}, [inputs, setInputs])
|
}, [handleInputsChange])
|
||||||
|
|
||||||
const handleRemoveSubVariableCondition = useCallback((conditionId: string, subConditionId: string) => {
|
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)
|
const condition = draft.break_conditions?.find(item => item.id === conditionId)
|
||||||
if (!condition)
|
if (!condition)
|
||||||
return
|
return
|
||||||
@ -133,11 +133,11 @@ const useConfig = (id: string, payload: LoopNodeType) => {
|
|||||||
if (subVarCondition)
|
if (subVarCondition)
|
||||||
subVarCondition.conditions = subVarCondition.conditions.filter(item => item.id !== subConditionId)
|
subVarCondition.conditions = subVarCondition.conditions.filter(item => item.id !== subConditionId)
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
handleInputsChange(newInputs)
|
||||||
}, [inputs, setInputs])
|
}, [handleInputsChange])
|
||||||
|
|
||||||
const handleUpdateSubVariableCondition = useCallback<HandleUpdateSubVariableCondition>((conditionId, subConditionId, newSubCondition) => {
|
const handleUpdateSubVariableCondition = useCallback<HandleUpdateSubVariableCondition>((conditionId, subConditionId, newSubCondition) => {
|
||||||
const newInputs = produce(inputs, (draft) => {
|
const newInputs = produce(inputsRef.current, (draft) => {
|
||||||
const targetCondition = draft.break_conditions?.find(item => item.id === conditionId)
|
const targetCondition = draft.break_conditions?.find(item => item.id === conditionId)
|
||||||
if (targetCondition && targetCondition.sub_variable_condition) {
|
if (targetCondition && targetCondition.sub_variable_condition) {
|
||||||
const targetSubCondition = targetCondition.sub_variable_condition.conditions.find(item => item.id === subConditionId)
|
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)
|
Object.assign(targetSubCondition, newSubCondition)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
handleInputsChange(newInputs)
|
||||||
}, [inputs, setInputs])
|
}, [handleInputsChange])
|
||||||
|
|
||||||
const handleToggleSubVariableConditionLogicalOperator = useCallback<HandleToggleSubVariableConditionLogicalOperator>((conditionId) => {
|
const handleToggleSubVariableConditionLogicalOperator = useCallback<HandleToggleSubVariableConditionLogicalOperator>((conditionId) => {
|
||||||
const newInputs = produce(inputs, (draft) => {
|
const newInputs = produce(inputsRef.current, (draft) => {
|
||||||
const targetCondition = draft.break_conditions?.find(item => item.id === conditionId)
|
const targetCondition = draft.break_conditions?.find(item => item.id === conditionId)
|
||||||
if (targetCondition && targetCondition.sub_variable_condition)
|
if (targetCondition && targetCondition.sub_variable_condition)
|
||||||
targetCondition.sub_variable_condition.logical_operator = targetCondition.sub_variable_condition.logical_operator === LogicalOperator.and ? LogicalOperator.or : LogicalOperator.and
|
targetCondition.sub_variable_condition.logical_operator = targetCondition.sub_variable_condition.logical_operator === LogicalOperator.and ? LogicalOperator.or : LogicalOperator.and
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
handleInputsChange(newInputs)
|
||||||
}, [inputs, setInputs])
|
}, [handleInputsChange])
|
||||||
|
|
||||||
const handleUpdateLoopCount = useCallback((value: number) => {
|
const handleUpdateLoopCount = useCallback((value: number) => {
|
||||||
const newInputs = produce(inputs, (draft) => {
|
const newInputs = produce(inputsRef.current, (draft) => {
|
||||||
draft.loop_count = value
|
draft.loop_count = value
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
handleInputsChange(newInputs)
|
||||||
}, [inputs, setInputs])
|
}, [handleInputsChange])
|
||||||
|
|
||||||
const handleAddLoopVariable = useCallback(() => {
|
const handleAddLoopVariable = useCallback(() => {
|
||||||
const newInputs = produce(inputsRef.current, (draft) => {
|
const newInputs = produce(inputsRef.current, (draft) => {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user