diff --git a/web/app/components/workflow/nodes/if-else/components/condition-list/condition-item.tsx b/web/app/components/workflow/nodes/if-else/components/condition-list/condition-item.tsx
index 13f3f4bea2..ce642e44c8 100644
--- a/web/app/components/workflow/nodes/if-else/components/condition-list/condition-item.tsx
+++ b/web/app/components/workflow/nodes/if-else/components/condition-list/condition-item.tsx
@@ -12,6 +12,7 @@ import type {
HandleAddSubVariableCondition,
HandleRemoveCondition,
HandleUpdateCondition,
+ HandleUpdateSubVariableCondition,
} from '../../types'
import {
ComparisonOperator,
@@ -35,11 +36,14 @@ const optionNameI18NPrefix = 'workflow.nodes.ifElse.optionName'
type ConditionItemProps = {
disabled?: boolean
caseId: string
- condition: Condition
+ conditionId: string // in isSubVariableKey it's the value of the parent condition's id
+ condition: Condition // condition may the condition of case or condition of sub variable
file?: { key: string }
isSubVariableKey?: boolean
+ subVariableKeyCaseId?: string
onRemoveCondition: HandleRemoveCondition
onUpdateCondition: HandleUpdateCondition
+ onUpdateSubVariableCondition?: HandleUpdateSubVariableCondition
nodesOutputVars: NodeOutPutVar[]
availableNodes: Node[]
numberVariables: NodeOutPutVar[]
@@ -48,11 +52,13 @@ type ConditionItemProps = {
const ConditionItem = ({
disabled,
caseId,
+ conditionId,
condition,
file,
isSubVariableKey,
onRemoveCondition,
onUpdateCondition,
+ onUpdateSubVariableCondition,
nodesOutputVars,
availableNodes,
numberVariables,
@@ -120,8 +126,8 @@ const ConditionItem = ({
const newCondition = produce(condition, (draft) => {
draft.key = key
})
- onUpdateCondition(caseId, condition.id, newCondition)
- }, [caseId, condition, onUpdateCondition])
+ onUpdateSubVariableCondition?.(caseId, conditionId, condition.id, newCondition)
+ }, [caseId, condition, conditionId, onUpdateSubVariableCondition])
return (
@@ -136,7 +142,7 @@ const ConditionItem = ({