選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

use-pipeline-start-run.tsx 1.8KB

6ヶ月前
6ヶ月前
6ヶ月前
6ヶ月前
6ヶ月前
6ヶ月前
6ヶ月前
6ヶ月前
6ヶ月前
6ヶ月前
6ヶ月前
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { useCallback } from 'react'
  2. import { useWorkflowStore } from '@/app/components/workflow/store'
  3. import {
  4. WorkflowRunningStatus,
  5. } from '@/app/components/workflow/types'
  6. import { useWorkflowInteractions } from '@/app/components/workflow/hooks'
  7. import {
  8. useInputFieldPanel,
  9. useNodesSyncDraft,
  10. } from '.'
  11. export const usePipelineStartRun = () => {
  12. const workflowStore = useWorkflowStore()
  13. const { handleCancelDebugAndPreviewPanel } = useWorkflowInteractions()
  14. const { doSyncWorkflowDraft } = useNodesSyncDraft()
  15. const { closeAllInputFieldPanels } = useInputFieldPanel()
  16. const handleWorkflowStartRunInWorkflow = useCallback(async () => {
  17. const {
  18. workflowRunningData,
  19. } = workflowStore.getState()
  20. if (workflowRunningData?.result.status === WorkflowRunningStatus.Running)
  21. return
  22. const {
  23. isPreparingDataSource,
  24. setIsPreparingDataSource,
  25. showDebugAndPreviewPanel,
  26. setShowEnvPanel,
  27. setShowDebugAndPreviewPanel,
  28. } = workflowStore.getState()
  29. if (!isPreparingDataSource && workflowRunningData) {
  30. workflowStore.setState({
  31. isPreparingDataSource: true,
  32. workflowRunningData: undefined,
  33. })
  34. return
  35. }
  36. setShowEnvPanel(false)
  37. closeAllInputFieldPanels()
  38. if (showDebugAndPreviewPanel) {
  39. setIsPreparingDataSource?.(false)
  40. handleCancelDebugAndPreviewPanel()
  41. return
  42. }
  43. await doSyncWorkflowDraft()
  44. setIsPreparingDataSource?.(true)
  45. setShowDebugAndPreviewPanel(true)
  46. }, [workflowStore, handleCancelDebugAndPreviewPanel, doSyncWorkflowDraft])
  47. const handleStartWorkflowRun = useCallback(() => {
  48. handleWorkflowStartRunInWorkflow()
  49. }, [handleWorkflowStartRunInWorkflow])
  50. return {
  51. handleStartWorkflowRun,
  52. handleWorkflowStartRunInWorkflow,
  53. }
  54. }