diff --git a/web/app/components/swr-initor.tsx b/web/app/components/swr-initor.tsx index f5ca271d0d..afb4c58cbc 100644 --- a/web/app/components/swr-initor.tsx +++ b/web/app/components/swr-initor.tsx @@ -32,6 +32,7 @@ const SwrInitor = ({ ? ( {children} diff --git a/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts b/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts index 89afaacf3a..c9fa48fe47 100644 --- a/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts +++ b/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts @@ -19,6 +19,7 @@ const useOneStepRun = ({ id, data, defaultRunInputData, isInvalid = () => tru const appId = useAppStore.getState().appDetail?.id const [runInputData, setRunInputData] = useState>(defaultRunInputData || {}) + const [runResult, setRunResult] = useState(null) const { handleNodeDataUpdate }: { handleNodeDataUpdate: (data: any) => void } = useWorkflow() const isShowSingleRun = data._isSingleRun @@ -32,6 +33,7 @@ const useOneStepRun = ({ id, data, defaultRunInputData, isInvalid = () => tru }) } const runningStatus = data._singleRunningStatus || NodeRunningStatus.NotStart + const isCompleted = runningStatus === NodeRunningStatus.Succeeded || runningStatus === NodeRunningStatus.Failed const handleRun = async () => { if (!isInvalid()) return @@ -42,10 +44,17 @@ const useOneStepRun = ({ id, data, defaultRunInputData, isInvalid = () => tru _singleRunningStatus: NodeRunningStatus.Running, }, }) + let res: any try { - const res = await singleNodeRun(appId!, id, { inputs: runInputData }) + res = await singleNodeRun(appId!, id, { inputs: runInputData }) as any + if (res.error) + throw new Error(res.error) } - catch (e) { + catch (e: any) { + Toast.notify({ + type: 'error', + message: e.toString(), + }) handleNodeDataUpdate({ id, data: { @@ -55,6 +64,7 @@ const useOneStepRun = ({ id, data, defaultRunInputData, isInvalid = () => tru }) return false } + setRunResult(res) handleNodeDataUpdate({ id, data: { @@ -101,10 +111,12 @@ const useOneStepRun = ({ id, data, defaultRunInputData, isInvalid = () => tru hideSingleRun, toVarInputs, runningStatus, + isCompleted, handleRun, handleStop, runInputData, setRunInputData, + runResult, } } diff --git a/web/app/components/workflow/nodes/code/panel.tsx b/web/app/components/workflow/nodes/code/panel.tsx index 7a3ddd5c7e..c0c795b60e 100644 --- a/web/app/components/workflow/nodes/code/panel.tsx +++ b/web/app/components/workflow/nodes/code/panel.tsx @@ -47,10 +47,12 @@ const Panel: FC> = ({ runningStatus, handleRun, handleStop, + runResult, varInputs, inputVarValues, setInputVarValues, } = useConfig(id, data) + return (
@@ -110,9 +112,9 @@ const Panel: FC> = ({ runningStatus={runningStatus} onRun={handleRun} onStop={handleStop} + result={{JSON.stringify(runResult, null, 2)}} /> )} -
) } diff --git a/web/app/components/workflow/nodes/code/use-config.ts b/web/app/components/workflow/nodes/code/use-config.ts index 97d47c9329..00446bfd66 100644 --- a/web/app/components/workflow/nodes/code/use-config.ts +++ b/web/app/components/workflow/nodes/code/use-config.ts @@ -38,10 +38,12 @@ const useConfig = (id: string, payload: CodeNodeType) => { hideSingleRun, toVarInputs, runningStatus, + isCompleted, handleRun, handleStop, runInputData, setRunInputData, + runResult, } = useOneStepRun({ id, data: inputs, @@ -74,11 +76,13 @@ const useConfig = (id: string, payload: CodeNodeType) => { isShowSingleRun, hideSingleRun, runningStatus, + isCompleted, handleRun, handleStop, varInputs, inputVarValues, setInputVarValues, + runResult, } }