mirror of
https://github.com/langgenius/dify.git
synced 2025-11-21 15:32:39 +00:00
Signed-off-by: -LAN- <laipz8200@outlook.com> Co-authored-by: twwu <twwu@dify.ai> Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com> Co-authored-by: jyong <718720800@qq.com> Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com> Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com> Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com> Co-authored-by: quicksand <quicksandzn@gmail.com> Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com> Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com> Co-authored-by: zxhlyh <jasonapring2015@outlook.com> Co-authored-by: Yongtao Huang <yongtaoh2022@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: nite-knite <nkCoding@gmail.com> Co-authored-by: Hanqing Zhao <sherry9277@gmail.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Harry <xh001x@hotmail.com>
65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
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 {
|
|
useInputFieldPanel,
|
|
useNodesSyncDraft,
|
|
} from '.'
|
|
|
|
export const usePipelineStartRun = () => {
|
|
const workflowStore = useWorkflowStore()
|
|
const { handleCancelDebugAndPreviewPanel } = useWorkflowInteractions()
|
|
const { doSyncWorkflowDraft } = useNodesSyncDraft()
|
|
const { closeAllInputFieldPanels } = useInputFieldPanel()
|
|
|
|
const handleWorkflowStartRunInWorkflow = useCallback(async () => {
|
|
const {
|
|
workflowRunningData,
|
|
} = workflowStore.getState()
|
|
|
|
if (workflowRunningData?.result.status === WorkflowRunningStatus.Running)
|
|
return
|
|
|
|
const {
|
|
isPreparingDataSource,
|
|
setIsPreparingDataSource,
|
|
showDebugAndPreviewPanel,
|
|
setShowEnvPanel,
|
|
setShowDebugAndPreviewPanel,
|
|
} = workflowStore.getState()
|
|
|
|
if (!isPreparingDataSource && workflowRunningData) {
|
|
workflowStore.setState({
|
|
isPreparingDataSource: true,
|
|
workflowRunningData: undefined,
|
|
})
|
|
return
|
|
}
|
|
|
|
setShowEnvPanel(false)
|
|
closeAllInputFieldPanels()
|
|
|
|
if (showDebugAndPreviewPanel) {
|
|
setIsPreparingDataSource?.(false)
|
|
handleCancelDebugAndPreviewPanel()
|
|
return
|
|
}
|
|
|
|
await doSyncWorkflowDraft()
|
|
setIsPreparingDataSource?.(true)
|
|
setShowDebugAndPreviewPanel(true)
|
|
}, [workflowStore, handleCancelDebugAndPreviewPanel, doSyncWorkflowDraft])
|
|
|
|
const handleStartWorkflowRun = useCallback(() => {
|
|
handleWorkflowStartRunInWorkflow()
|
|
}, [handleWorkflowStartRunInWorkflow])
|
|
|
|
return {
|
|
handleStartWorkflowRun,
|
|
handleWorkflowStartRunInWorkflow,
|
|
}
|
|
}
|