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, useWorkflowRun, useWorkflowStartRun, } from '../hooks' type WorkflowMainProps = Pick 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 { handleBackupDraft, handleLoadBackupDraft, handleRestoreFromPublishedWorkflow, handleRun, handleStopRun, } = useWorkflowRun() const { handleStartWorkflowRun, handleWorkflowStartRunInChatflow, handleWorkflowStartRunInWorkflow, } = useWorkflowStartRun() const hooksStore = useMemo(() => { return { syncWorkflowDraftWhenPageClose, doSyncWorkflowDraft, handleBackupDraft, handleLoadBackupDraft, handleRestoreFromPublishedWorkflow, handleRun, handleStopRun, handleStartWorkflowRun, handleWorkflowStartRunInChatflow, handleWorkflowStartRunInWorkflow, } }, [ syncWorkflowDraftWhenPageClose, doSyncWorkflowDraft, handleBackupDraft, handleLoadBackupDraft, handleRestoreFromPublishedWorkflow, handleRun, handleStopRun, handleStartWorkflowRun, handleWorkflowStartRunInChatflow, handleWorkflowStartRunInWorkflow, ]) return ( ) } export default WorkflowMain