fix: last run tab data not sync and pause

pull/21369/head
Joel 11 months ago
parent 87bbc3c9f8
commit 920ac9c442

@ -65,8 +65,6 @@ const NodeControl: FC<NodeControlProps> = ({
data: nextData, data: nextData,
}) })
handleNodeSelect(id) handleNodeSelect(id)
if (!data._isSingleRun)
handleSyncWorkflowDraft(true)
}} }}
> >
{ {

@ -8,6 +8,7 @@ import {
useCallback, useCallback,
useEffect, useEffect,
useMemo, useMemo,
useRef,
useState, useState,
} from 'react' } from 'react'
import { import {
@ -147,19 +148,24 @@ const BasePanel: FC<BasePanelProps> = ({
const isSupportSingleRun = canRunBySingle(data.type, isChildNode) const isSupportSingleRun = canRunBySingle(data.type, isChildNode)
const appDetail = useAppStore(state => state.appDetail) const appDetail = useAppStore(state => state.appDetail)
const [hasClickRunning, setHasClickRunning] = useState(false) const hasClickRunning = useRef(false)
const [isPaused, setIsPaused] = useState(false) const [isPaused, setIsPaused] = useState(false)
useEffect(() => { useEffect(() => {
if(data._singleRunningStatus === NodeRunningStatus.Running) { if(data._singleRunningStatus === NodeRunningStatus.Running) {
setHasClickRunning(true) hasClickRunning.current = true
setIsPaused(false) setIsPaused(false)
} }
else if(data._singleRunningStatus === undefined) { else if(data._singleRunningStatus === undefined && hasClickRunning) {
setIsPaused(true) setIsPaused(true)
setHasClickRunning(false) hasClickRunning.current = false
} }
}, [data._singleRunningStatus]) }, [data._singleRunningStatus])
useEffect(() => {
// console.log(`id changed: ${id}, hasClickRunning: ${hasClickRunning.current}`)
hasClickRunning.current = false
}, [id])
const { const {
isShowSingleRun, isShowSingleRun,
hideSingleRun, hideSingleRun,

@ -59,7 +59,7 @@ const LastRun: FC<Props> = ({
if (isRunning) if (isRunning)
return <ResultPanel status='running' showSteps={false} /> return <ResultPanel status='running' showSteps={false} />
if (noLastRun || !runResult) { if (!isPaused && (noLastRun || !runResult)) {
return ( return (
<NoData canSingleRun={canSingleRun} onSingleRun={onSingleRunClicked} /> <NoData canSingleRun={canSingleRun} onSingleRun={onSingleRunClicked} />
) )

@ -30,6 +30,7 @@ import {
useNodesSyncDraft, useNodesSyncDraft,
} from '@/app/components/workflow/hooks' } from '@/app/components/workflow/hooks'
import useInspectVarsCrud from '@/app/components/workflow/hooks/use-inspect-vars-crud' import useInspectVarsCrud from '@/app/components/workflow/hooks/use-inspect-vars-crud'
import { useInvalidLastRun } from '@/service/use-workflow'
const singleRunFormParamsHooks: Record<BlockEnum, any> = { const singleRunFormParamsHooks: Record<BlockEnum, any> = {
[BlockEnum.LLM]: useLLMSingleRunFormParams, [BlockEnum.LLM]: useLLMSingleRunFormParams,
@ -126,6 +127,7 @@ const useLastRun = <T>({
}) })
const { const {
appId,
hideSingleRun, hideSingleRun,
handleRun: doCallRunApi, handleRun: doCallRunApi,
getInputVars, getInputVars,
@ -185,10 +187,14 @@ const useLastRun = <T>({
} }
const [tabType, setTabType] = useState<TabType>(TabType.settings) const [tabType, setTabType] = useState<TabType>(TabType.settings)
const invalidLastRun = useInvalidLastRun(appId!, id)
const handleRunWithParams = async (data: Record<string, any>) => { const handleRunWithParams = async (data: Record<string, any>) => {
setIsRunAfterSingleRun(true) setIsRunAfterSingleRun(true)
setTabType(TabType.lastRun) setTabType(TabType.lastRun)
callRunApi(data) callRunApi(data, () => {
invalidLastRun()
})
hideSingleRun() hideSingleRun()
} }
@ -259,6 +265,7 @@ const useLastRun = <T>({
callRunApi({}, async () => { callRunApi({}, async () => {
setIsRunAfterSingleRun(true) setIsRunAfterSingleRun(true)
setNodeRunning() setNodeRunning()
invalidLastRun()
setTabType(TabType.lastRun) setTabType(TabType.lastRun)
}) })
} }

@ -627,6 +627,7 @@ const useOneStepRun = <T>({
} }
return { return {
appId,
isShowSingleRun, isShowSingleRun,
hideSingleRun, hideSingleRun,
showSingleRun, showSingleRun,

Loading…
Cancel
Save