From 8fbdaa604c1b1b42dc3cb3d16c1d7e0ca0ee156d Mon Sep 17 00:00:00 2001 From: Joel Date: Wed, 21 Aug 2024 17:28:41 +0800 Subject: [PATCH] feat: file array variable choose vars --- .../components/condition-list/condition-item.tsx | 9 +++++++++ .../nodes/if-else/components/condition-list/index.tsx | 7 +++++++ .../nodes/if-else/components/condition-wrap.tsx | 10 ++++++---- 3 files changed, 22 insertions(+), 4 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 937c8b34fe..ca6df5e0b6 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 @@ -29,6 +29,7 @@ import VariableTag from '@/app/components/workflow/nodes/_base/components/variab import type { Node, NodeOutPutVar, + Var, } from '@/app/components/workflow/types' import { VarType } from '@/app/components/workflow/types' import cn from '@/utils/classnames' @@ -51,9 +52,11 @@ type ConditionItemProps = { onRemoveSubVariableCondition?: handleRemoveSubVariableCondition onUpdateSubVariableCondition?: HandleUpdateSubVariableCondition onToggleSubVariableConditionLogicalOperator?: HandleToggleSubVariableConditionLogicalOperator + nodeId: string nodesOutputVars: NodeOutPutVar[] availableNodes: Node[] numberVariables: NodeOutPutVar[] + filterVar: (varPayload: Var) => boolean } const ConditionItem = ({ className, @@ -69,9 +72,11 @@ const ConditionItem = ({ onRemoveSubVariableCondition, onUpdateSubVariableCondition, onToggleSubVariableConditionLogicalOperator, + nodeId, nodesOutputVars, availableNodes, numberVariables, + filterVar, }: ConditionItemProps) => { const { t } = useTranslation() @@ -274,6 +279,10 @@ const ConditionItem = ({ handleRemoveSubVariableCondition={onRemoveSubVariableCondition} handleUpdateSubVariableCondition={onUpdateSubVariableCondition} handleToggleSubVariableConditionLogicalOperator={onToggleSubVariableConditionLogicalOperator} + nodeId={nodeId} + nodesOutputVars={nodesOutputVars} + availableNodes={availableNodes} + filterVar={filterVar} /> ) diff --git a/web/app/components/workflow/nodes/if-else/components/condition-list/index.tsx b/web/app/components/workflow/nodes/if-else/components/condition-list/index.tsx index bc67f807c3..58c69d8323 100644 --- a/web/app/components/workflow/nodes/if-else/components/condition-list/index.tsx +++ b/web/app/components/workflow/nodes/if-else/components/condition-list/index.tsx @@ -15,6 +15,7 @@ import ConditionItem from './condition-item' import type { Node, NodeOutPutVar, + Var, } from '@/app/components/workflow/types' import cn from '@/utils/classnames' @@ -27,9 +28,11 @@ type ConditionListProps = { onRemoveCondition?: HandleRemoveCondition onUpdateCondition?: HandleUpdateCondition onToggleConditionLogicalOperator?: HandleToggleConditionLogicalOperator + nodeId: string nodesOutputVars: NodeOutPutVar[] availableNodes: Node[] numberVariables: NodeOutPutVar[] + filterVar: (varPayload: Var) => boolean varsIsVarFileAttribute: Record onAddSubVariableCondition?: HandleAddSubVariableCondition onRemoveSubVariableCondition?: handleRemoveSubVariableCondition @@ -49,10 +52,12 @@ const ConditionList = ({ onRemoveSubVariableCondition, onUpdateSubVariableCondition, onToggleSubVariableConditionLogicalOperator, + nodeId, nodesOutputVars, availableNodes, numberVariables, varsIsVarFileAttribute, + filterVar, }: ConditionListProps) => { const { conditions, logical_operator } = caseItem @@ -106,8 +111,10 @@ const ConditionList = ({ onRemoveSubVariableCondition={onRemoveSubVariableCondition} onUpdateSubVariableCondition={onUpdateSubVariableCondition} onToggleSubVariableConditionLogicalOperator={onToggleSubVariableConditionLogicalOperator} + nodeId={nodeId} nodesOutputVars={nodesOutputVars} availableNodes={availableNodes} + filterVar={filterVar} numberVariables={numberVariables} file={varsIsVarFileAttribute[condition.id] ? { key: (condition.variable_selector || []).slice(-1)[0] } : undefined} isSubVariableKey={isSubVariable} diff --git a/web/app/components/workflow/nodes/if-else/components/condition-wrap.tsx b/web/app/components/workflow/nodes/if-else/components/condition-wrap.tsx index e797b6a69b..3d7a2475ce 100644 --- a/web/app/components/workflow/nodes/if-else/components/condition-wrap.tsx +++ b/web/app/components/workflow/nodes/if-else/components/condition-wrap.tsx @@ -33,11 +33,11 @@ type Props = { handleRemoveSubVariableCondition?: handleRemoveSubVariableCondition handleUpdateSubVariableCondition?: HandleUpdateSubVariableCondition handleToggleSubVariableConditionLogicalOperator?: HandleToggleSubVariableConditionLogicalOperator - nodeId?: string - nodesOutputVars?: NodeOutPutVar[] - availableNodes?: Node[] + nodeId: string + nodesOutputVars: NodeOutPutVar[] + availableNodes: Node[] varsIsVarFileAttribute?: Record - filterVar?: (varPayload: Var) => boolean + filterVar: (varPayload: Var) => boolean } const ConditionWrap: FC = ({ @@ -127,8 +127,10 @@ const ConditionWrap: FC = ({ onUpdateCondition={handleUpdateCondition} onRemoveCondition={handleRemoveCondition} onToggleConditionLogicalOperator={handleToggleConditionLogicalOperator} + nodeId={id} nodesOutputVars={nodesOutputVars} availableNodes={availableNodes} + filterVar={filterVar} numberVariables={getAvailableVars(id, '', filterNumberVar)} varsIsVarFileAttribute={varsIsVarFileAttribute} onAddSubVariableCondition={handleAddSubVariableCondition}