|
|
|
@ -5,11 +5,12 @@ import type { FC } from 'react'
|
|
|
|
import React from 'react'
|
|
|
|
import React from 'react'
|
|
|
|
import NoData from './no-data'
|
|
|
|
import NoData from './no-data'
|
|
|
|
import { useLastRun } from '@/service/use-workflow'
|
|
|
|
import { useLastRun } from '@/service/use-workflow'
|
|
|
|
import Loading from '@/app/components/base/loading'
|
|
|
|
import { RiLoader2Line } from '@remixicon/react'
|
|
|
|
|
|
|
|
|
|
|
|
type Props = {
|
|
|
|
type Props = {
|
|
|
|
appId: string
|
|
|
|
appId: string
|
|
|
|
nodeId: string
|
|
|
|
nodeId: string
|
|
|
|
|
|
|
|
canSingleRun: boolean
|
|
|
|
runningStatus?: NodeRunningStatus
|
|
|
|
runningStatus?: NodeRunningStatus
|
|
|
|
onSingleRunClicked: () => void
|
|
|
|
onSingleRunClicked: () => void
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -17,21 +18,26 @@ type Props = {
|
|
|
|
const LastRun: FC<Props> = ({
|
|
|
|
const LastRun: FC<Props> = ({
|
|
|
|
appId,
|
|
|
|
appId,
|
|
|
|
nodeId,
|
|
|
|
nodeId,
|
|
|
|
|
|
|
|
canSingleRun,
|
|
|
|
runningStatus,
|
|
|
|
runningStatus,
|
|
|
|
onSingleRunClicked,
|
|
|
|
onSingleRunClicked,
|
|
|
|
}) => {
|
|
|
|
}) => {
|
|
|
|
const isRunning = runningStatus === NodeRunningStatus.Running
|
|
|
|
const isRunning = runningStatus === NodeRunningStatus.Running
|
|
|
|
const { data: runResult, isFetching } = useLastRun(appId, nodeId, !isRunning)
|
|
|
|
const { data: runResult, isFetching } = useLastRun(appId, nodeId, !isRunning)
|
|
|
|
|
|
|
|
|
|
|
|
if (isFetching)
|
|
|
|
if (isFetching) {
|
|
|
|
return <Loading />
|
|
|
|
return (
|
|
|
|
|
|
|
|
<div className='flex h-0 grow flex-col items-center justify-center'>
|
|
|
|
|
|
|
|
<RiLoader2Line className='size-4 animate-spin text-text-tertiary' />
|
|
|
|
|
|
|
|
</div>)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (isRunning)
|
|
|
|
if (isRunning)
|
|
|
|
return <ResultPanel status='running' showSteps={false} />
|
|
|
|
return <ResultPanel status='running' showSteps={false} />
|
|
|
|
|
|
|
|
|
|
|
|
if (!runResult) {
|
|
|
|
if (!runResult) {
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<NoData onSingleRun={onSingleRunClicked} />
|
|
|
|
<NoData canSingleRun={canSingleRun} onSingleRun={onSingleRunClicked} />
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
|