From 876ea90fe9bc841fcf50ee8232929e535a4bf0f5 Mon Sep 17 00:00:00 2001 From: Joel Date: Mon, 19 Aug 2024 11:43:52 +0800 Subject: [PATCH] feat: support update sub variable value --- .../condition-list/condition-item.tsx | 19 +++++++++++++------ .../components/condition-list/index.tsx | 11 ++++++++++- .../if-else/components/condition-wrap.tsx | 11 ++++++++--- .../workflow/nodes/if-else/panel.tsx | 2 ++ .../workflow/nodes/if-else/types.ts | 1 + .../workflow/nodes/if-else/use-config.ts | 18 ++++++++++++++++++ 6 files changed, 52 insertions(+), 10 deletions(-) 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 = ({