| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import {
- useCallback,
- useMemo,
- } from 'react'
- import { useFeaturesStore } from '@/app/components/base/features/hooks'
- import { WorkflowWithInnerContext } from '@/app/components/workflow'
- import type { WorkflowProps } from '@/app/components/workflow'
- import WorkflowChildren from './workflow-children'
- import {
- useNodesSyncDraft,
- useWorkflowRefreshDraft,
- useWorkflowRun,
- useWorkflowStartRun,
- } from '../hooks'
-
- type WorkflowMainProps = Pick<WorkflowProps, 'nodes' | 'edges' | 'viewport'>
- const WorkflowMain = ({
- nodes,
- edges,
- viewport,
- }: WorkflowMainProps) => {
- const featuresStore = useFeaturesStore()
-
- const handleWorkflowDataUpdate = useCallback((payload: any) => {
- if (payload.features && featuresStore) {
- const { setFeatures } = featuresStore.getState()
-
- setFeatures(payload.features)
- }
- }, [featuresStore])
-
- const {
- doSyncWorkflowDraft,
- syncWorkflowDraftWhenPageClose,
- } = useNodesSyncDraft()
- const { handleRefreshWorkflowDraft } = useWorkflowRefreshDraft()
- const {
- handleBackupDraft,
- handleLoadBackupDraft,
- handleRestoreFromPublishedWorkflow,
- handleRun,
- handleStopRun,
- } = useWorkflowRun()
- const {
- handleStartWorkflowRun,
- handleWorkflowStartRunInChatflow,
- handleWorkflowStartRunInWorkflow,
- } = useWorkflowStartRun()
-
- const hooksStore = useMemo(() => {
- return {
- syncWorkflowDraftWhenPageClose,
- doSyncWorkflowDraft,
- handleRefreshWorkflowDraft,
- handleBackupDraft,
- handleLoadBackupDraft,
- handleRestoreFromPublishedWorkflow,
- handleRun,
- handleStopRun,
- handleStartWorkflowRun,
- handleWorkflowStartRunInChatflow,
- handleWorkflowStartRunInWorkflow,
- }
- }, [
- syncWorkflowDraftWhenPageClose,
- doSyncWorkflowDraft,
- handleRefreshWorkflowDraft,
- handleBackupDraft,
- handleLoadBackupDraft,
- handleRestoreFromPublishedWorkflow,
- handleRun,
- handleStopRun,
- handleStartWorkflowRun,
- handleWorkflowStartRunInChatflow,
- handleWorkflowStartRunInWorkflow,
- ])
-
- return (
- <WorkflowWithInnerContext
- nodes={nodes}
- edges={edges}
- viewport={viewport}
- onWorkflowDataUpdate={handleWorkflowDataUpdate}
- hooksStore={hooksStore}
- >
- <WorkflowChildren />
- </WorkflowWithInnerContext>
- )
- }
-
- export default WorkflowMain
|