Commit a0315074 authored by Joel's avatar Joel

feat: code show result

parent 90e01355
......@@ -32,6 +32,7 @@ const SwrInitor = ({
? (
<SWRConfig value={{
shouldRetryOnError: false,
revalidateOnFocus: false,
}}>
{children}
</SWRConfig>
......
......@@ -19,6 +19,7 @@ const useOneStepRun = <T>({ id, data, defaultRunInputData, isInvalid = () => tru
const appId = useAppStore.getState().appDetail?.id
const [runInputData, setRunInputData] = useState<Record<string, any>>(defaultRunInputData || {})
const [runResult, setRunResult] = useState<any>(null)
const { handleNodeDataUpdate }: { handleNodeDataUpdate: (data: any) => void } = useWorkflow()
const isShowSingleRun = data._isSingleRun
......@@ -32,6 +33,7 @@ const useOneStepRun = <T>({ 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 = <T>({ 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 = <T>({ id, data, defaultRunInputData, isInvalid = () => tru
})
return false
}
setRunResult(res)
handleNodeDataUpdate({
id,
data: {
......@@ -101,10 +111,12 @@ const useOneStepRun = <T>({ id, data, defaultRunInputData, isInvalid = () => tru
hideSingleRun,
toVarInputs,
runningStatus,
isCompleted,
handleRun,
handleStop,
runInputData,
setRunInputData,
runResult,
}
}
......
......@@ -47,10 +47,12 @@ const Panel: FC<NodePanelProps<CodeNodeType>> = ({
runningStatus,
handleRun,
handleStop,
runResult,
varInputs,
inputVarValues,
setInputVarValues,
} = useConfig(id, data)
return (
<div className='mt-2'>
<div className='px-4 pb-4 space-y-4'>
......@@ -110,9 +112,9 @@ const Panel: FC<NodePanelProps<CodeNodeType>> = ({
runningStatus={runningStatus}
onRun={handleRun}
onStop={handleStop}
result={<span className='text-gray-900'>{JSON.stringify(runResult, null, 2)}</span>}
/>
)}
</div>
)
}
......
......@@ -38,10 +38,12 @@ const useConfig = (id: string, payload: CodeNodeType) => {
hideSingleRun,
toVarInputs,
runningStatus,
isCompleted,
handleRun,
handleStop,
runInputData,
setRunInputData,
runResult,
} = useOneStepRun<CodeNodeType>({
id,
data: inputs,
......@@ -74,11 +76,13 @@ const useConfig = (id: string, payload: CodeNodeType) => {
isShowSingleRun,
hideSingleRun,
runningStatus,
isCompleted,
handleRun,
handleStop,
varInputs,
inputVarValues,
setInputVarValues,
runResult,
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment