| 123456789101112131415161718192021222324252627282930313233343536 | import { useCallback } from 'react'import produce from 'immer'import type { WorkflowFinishedResponse } from '@/types/workflow'import { useWorkflowStore } from '@/app/components/workflow/store'import { getFilesInLogs } from '@/app/components/base/file-uploader/utils'export const useWorkflowFinished = () => {  const workflowStore = useWorkflowStore()  const handleWorkflowFinished = useCallback((params: WorkflowFinishedResponse) => {    const { data } = params    const {      workflowRunningData,      setWorkflowRunningData,    } = workflowStore.getState()    const isStringOutput = data.outputs && Object.keys(data.outputs).length === 1 && typeof data.outputs[Object.keys(data.outputs)[0]] === 'string'    setWorkflowRunningData(produce(workflowRunningData!, (draft) => {      draft.result = {        ...draft.result,        ...data,        files: getFilesInLogs(data.outputs),      } as any      if (isStringOutput) {        draft.resultTabActive = true        draft.resultText = data.outputs[Object.keys(data.outputs)[0]]      }    }))  }, [workflowStore])  return {    handleWorkflowFinished,  }}
 |