From d3731d221a2908b6879e0ab4af2c48cd7294d1e3 Mon Sep 17 00:00:00 2001 From: heheer Date: Tue, 27 Aug 2024 13:47:26 +0800 Subject: [PATCH] fix: change workflow start node output when change file config (#2527) --- .../Flow/nodes/NodeSystemConfig.tsx | 27 ++++++++++++++++++ .../Flow/nodes/NodeWorkflowStart.tsx | 28 +------------------ 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeSystemConfig.tsx b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeSystemConfig.tsx index 837b16fcf..e96389990 100644 --- a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeSystemConfig.tsx +++ b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeSystemConfig.tsx @@ -19,6 +19,8 @@ import VariableEdit from '@/components/core/app/VariableEdit'; import { AppContext } from '@/pages/app/detail/components/context'; import WelcomeTextConfig from '@/components/core/app/WelcomeTextConfig'; import FileSelect from '@/components/core/app/FileSelect'; +import { FlowNodeTypeEnum } from '@fastgpt/global/core/workflow/node/constant'; +import { userFilesInput } from '@fastgpt/global/core/workflow/template/system/workflowStart'; type ComponentProps = { chatConfig: AppChatConfigType; @@ -215,6 +217,10 @@ function QuestionInputGuide({ chatConfig: { chatInputGuide }, setAppDetail }: Co } function FileSelectConfig({ chatConfig: { fileSelectConfig }, setAppDetail }: ComponentProps) { + const onChangeNode = useContextSelector(WorkflowContext, (v) => v.onChangeNode); + const nodes = useContextSelector(WorkflowContext, (v) => v.nodes); + const workflowStartNode = nodes.find((item) => item.type === FlowNodeTypeEnum.workflowStart)!; + return ( item.key === userFilesInput.key + ); + if (canUploadFiles) { + !repeatKey && + onChangeNode({ + nodeId: workflowStartNode.id, + type: 'addOutput', + value: userFilesInput + }); + } else { + repeatKey && + onChangeNode({ + nodeId: workflowStartNode.id, + type: 'delOutput', + key: userFilesInput.key + }); + } }} /> ); diff --git a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeWorkflowStart.tsx b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeWorkflowStart.tsx index de6926356..fcbeef48d 100644 --- a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeWorkflowStart.tsx +++ b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/nodes/NodeWorkflowStart.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo } from 'react'; +import React from 'react'; import { NodeProps } from 'reactflow'; import NodeCard from './render/NodeCard'; import { FlowNodeItemType } from '@fastgpt/global/core/workflow/type/node.d'; @@ -17,13 +17,11 @@ import { } from '@fastgpt/global/core/workflow/node/constant'; import { WorkflowIOValueTypeEnum } from '@fastgpt/global/core/workflow/constants'; import { AppContext } from '@/pages/app/detail/components/context'; -import { userFilesInput } from '@fastgpt/global/core/workflow/template/system/workflowStart'; const NodeStart = ({ data, selected }: NodeProps) => { const { t } = useTranslation(); const { nodeId, outputs } = data; const nodeList = useContextSelector(WorkflowContext, (v) => v.nodeList); - const onChangeNode = useContextSelector(WorkflowContext, (v) => v.onChangeNode); const { appDetail } = useContextSelector(AppContext, (v) => v); const variablesOutputs = useCreation(() => { @@ -56,30 +54,6 @@ const NodeStart = ({ data, selected }: NodeProps) => { }); }, [nodeList, t]); - // Dynamic add or delete userFilesInput - useEffect(() => { - const canUploadFiles = - appDetail.chatConfig?.fileSelectConfig?.canSelectFile || - appDetail.chatConfig?.fileSelectConfig?.canSelectImg; - const repeatKey = outputs.find((item) => item.key === userFilesInput.key); - - if (canUploadFiles) { - !repeatKey && - onChangeNode({ - nodeId, - type: 'addOutput', - value: userFilesInput - }); - } else { - repeatKey && - onChangeNode({ - nodeId, - type: 'delOutput', - key: userFilesInput.key - }); - } - }, [appDetail.chatConfig?.fileSelectConfig, nodeId, onChangeNode, outputs]); - return (