feat: add single run api

This commit is contained in:
Joel
2024-03-12 16:26:30 +08:00
parent 547df0b5fe
commit 74bf6cd186
7 changed files with 38 additions and 17 deletions

View File

@ -1,7 +1,9 @@
import { useState } from 'react'
import { useWorkflow } from '@/app/components/workflow/hooks'
import type { CommonNodeType, InputVar, Variable } from '@/app/components/workflow/types'
import { InputVarType } from '@/app/components/workflow/types'
import { InputVarType, NodeRunningStatus } from '@/app/components/workflow/types'
import { useStore as useAppStore } from '@/app/components/app/store'
import { singleNodeRun } from '@/service/workflow'
type Params<T> = {
id: string
@ -11,6 +13,9 @@ type Params<T> = {
}
const useOneStepRun = <T>({ id, data, defaultRunInputData, isInvalid = () => true }: Params<T>) => {
const appId = useAppStore.getState().appDetail?.id
const [runInputData, setRunInputData] = useState<Record<string, any>>(defaultRunInputData || {})
const { handleNodeDataUpdate }: { handleNodeDataUpdate: (data: any) => void } = useWorkflow()
const isShowSingleRun = data._isSingleRun
const hideSingleRun = () => {
@ -22,23 +27,32 @@ const useOneStepRun = <T>({ id, data, defaultRunInputData, isInvalid = () => tru
},
})
}
const [runningStatus, setRunningStatus] = useState('un started')
const handleRun = () => {
// console.log(runInputData)
if (isInvalid())
const runningStatus = data._singleRunningStatus || NodeRunningStatus.NotStart
const handleRun = async () => {
if (!isInvalid())
return
handleNodeDataUpdate({
id,
data: {
...data,
_singleRunningStatus: NodeRunningStatus.Running,
},
})
setRunningStatus('running')
const res = await singleNodeRun(appId!, id, { inputs: runInputData })
console.log(res)
}
const handleStop = () => {
setRunningStatus('not started')
handleNodeDataUpdate({
id,
data: {
...data,
_singleRunningStatus: NodeRunningStatus.NotStart,
},
})
}
// TODO: store to node
const [runInputData, setRunInputData] = useState<Record<string, any>>(defaultRunInputData || {})
const toVarInputs = (variables: Variable[]): InputVar[] => {
if (!variables)
return []
@ -64,7 +78,6 @@ const useOneStepRun = <T>({ id, data, defaultRunInputData, isInvalid = () => tru
runningStatus,
handleRun,
handleStop,
setRunningStatus,
runInputData,
setRunInputData,
}