dify/web/app/components/rag-pipeline/hooks/use-pipeline-start-run.tsx

50 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-05-07 16:30:24 +08:00
import { useCallback } from 'react'
import { useWorkflowStore } from '@/app/components/workflow/store'
import {
WorkflowRunningStatus,
} from '@/app/components/workflow/types'
import { useWorkflowInteractions } from '@/app/components/workflow/hooks'
import {
useNodesSyncDraft,
} from '.'
2025-05-09 15:53:31 +08:00
export const usePipelineStartRun = () => {
2025-05-07 16:30:24 +08:00
const workflowStore = useWorkflowStore()
const { handleCancelDebugAndPreviewPanel } = useWorkflowInteractions()
const { doSyncWorkflowDraft } = useNodesSyncDraft()
const handleWorkflowStartRunInWorkflow = useCallback(async () => {
const {
workflowRunningData,
} = workflowStore.getState()
if (workflowRunningData?.result.status === WorkflowRunningStatus.Running)
return
const {
2025-05-07 17:31:06 +08:00
showDebugAndPreviewPanel,
2025-05-07 16:30:24 +08:00
setShowEnvPanel,
2025-05-07 17:31:06 +08:00
setShowDebugAndPreviewPanel,
2025-05-07 16:30:24 +08:00
} = workflowStore.getState()
setShowEnvPanel(false)
2025-05-07 17:31:06 +08:00
if (showDebugAndPreviewPanel) {
2025-05-07 16:30:24 +08:00
handleCancelDebugAndPreviewPanel()
return
}
2025-05-19 14:23:40 +08:00
await doSyncWorkflowDraft()
setShowDebugAndPreviewPanel(true)
}, [workflowStore, handleCancelDebugAndPreviewPanel, doSyncWorkflowDraft])
2025-05-07 16:30:24 +08:00
const handleStartWorkflowRun = useCallback(() => {
handleWorkflowStartRunInWorkflow()
}, [handleWorkflowStartRunInWorkflow])
return {
handleStartWorkflowRun,
handleWorkflowStartRunInWorkflow,
}
}