You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

use-pipeline-start-run.tsx 1.4KB

6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
5 months ago
6 months ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. showDebugAndPreviewPanel,
  24. setShowEnvPanel,
  25. setShowDebugAndPreviewPanel,
  26. } = workflowStore.getState()
  27. setShowEnvPanel(false)
  28. closeAllInputFieldPanels()
  29. if (showDebugAndPreviewPanel) {
  30. handleCancelDebugAndPreviewPanel()
  31. return
  32. }
  33. await doSyncWorkflowDraft()
  34. setShowDebugAndPreviewPanel(true)
  35. }, [workflowStore, handleCancelDebugAndPreviewPanel, doSyncWorkflowDraft])
  36. const handleStartWorkflowRun = useCallback(() => {
  37. handleWorkflowStartRunInWorkflow()
  38. }, [handleWorkflowStartRunInWorkflow])
  39. return {
  40. handleStartWorkflowRun,
  41. handleWorkflowStartRunInWorkflow,
  42. }
  43. }