From 61ebcd8adb2068f7ab6e6a1566da7aaf379f510f Mon Sep 17 00:00:00 2001 From: KVOJJJin Date: Mon, 17 Jun 2024 14:36:17 +0800 Subject: [PATCH] Fix: workflow result display (#5299) --- .../share/text-generation/result/index.tsx | 17 ++++++++++++++--- .../workflow/hooks/use-workflow-run.ts | 6 ++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/web/app/components/share/text-generation/result/index.tsx b/web/app/components/share/text-generation/result/index.tsx index 90119a8aa4..b0c20f3b85 100644 --- a/web/app/components/share/text-generation/result/index.tsx +++ b/web/app/components/share/text-generation/result/index.tsx @@ -265,18 +265,29 @@ const Result: FC = ({ return if (data.error) { notify({ type: 'error', message: data.error }) + setWorkflowProccessData(produce(getWorkflowProccessData()!, (draft) => { + draft.status = WorkflowRunningStatus.Failed + })) setRespondingFalse() onCompleted(getCompletionRes(), taskId, false) isEnd = true return } setWorkflowProccessData(produce(getWorkflowProccessData()!, (draft) => { - draft.status = data.error ? WorkflowRunningStatus.Failed : WorkflowRunningStatus.Succeeded + draft.status = WorkflowRunningStatus.Succeeded })) - if (!data.outputs) + if (!data.outputs) { setCompletionRes('') - else + } + else { setCompletionRes(data.outputs) + const isStringOutput = Object.keys(data.outputs).length === 1 && typeof data.outputs[Object.keys(data.outputs)[0]] === 'string' + if (isStringOutput) { + setWorkflowProccessData(produce(getWorkflowProccessData()!, (draft) => { + draft.resultText = data.outputs[Object.keys(data.outputs)[0]] + })) + } + } setRespondingFalse() setMessageId(tempMessageId) onCompleted(getCompletionRes(), taskId, true) diff --git a/web/app/components/workflow/hooks/use-workflow-run.ts b/web/app/components/workflow/hooks/use-workflow-run.ts index bb2758625b..f31137196f 100644 --- a/web/app/components/workflow/hooks/use-workflow-run.ts +++ b/web/app/components/workflow/hooks/use-workflow-run.ts @@ -179,11 +179,17 @@ export const useWorkflowRun = () => { setWorkflowRunningData, } = workflowStore.getState() + const isStringOutput = Object.keys(data.outputs).length === 1 && typeof data.outputs[Object.keys(data.outputs)[0]] === 'string' + setWorkflowRunningData(produce(workflowRunningData!, (draft) => { draft.result = { ...draft.result, ...data, } as any + if (isStringOutput) { + draft.resultTabActive = true + draft.resultText = data.outputs[Object.keys(data.outputs)[0]] + } })) prevNodeId = ''