소스 검색

Bugfix: When i change the loop variable, 'Loop Termination Condition' wi… (#25695)

Co-authored-by: fengminhua <fengminhua@52tt.com>
tags/1.9.0
miwa 1 개월 전
부모
커밋
74340e3c04
No account linked to committer's email address
1개의 변경된 파일30개의 추가작업 그리고 30개의 파일을 삭제
  1. 30
    30
      web/app/components/workflow/nodes/loop/use-config.ts

+ 30
- 30
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<HandleAddCondition>((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<HandleRemoveCondition>((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<HandleUpdateCondition>((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<HandleToggleConditionLogicalOperator>(() => {
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<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)
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<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)
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<HandleToggleSubVariableConditionLogicalOperator>((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) => {

Loading…
취소
저장