import type { FC } from 'react' import { memo, // useEffect, } from 'react' import { useKeyPress } from 'ahooks' import ReactFlow, { Background, ReactFlowProvider, useEdgesState, // useNodesInitialized, useNodesState, } from 'reactflow' import 'reactflow/dist/style.css' // import './style.css' import type { Edge, Node, } from './types' import { useWorkflow } from './hooks' import Header from './header' import CustomNode from './nodes' import ZoomInOut from './zoom-in-out' import CustomEdge from './custom-edge' import CustomConnectionLine from './custom-connection-line' import Panel from './panel' import Features from './features' import { useStore } from './store' const nodeTypes = { custom: CustomNode, } const edgeTypes = { custom: CustomEdge, } type WorkflowProps = { nodes: Node[] edges: Edge[] } const Workflow: FC = memo(({ nodes: initialNodes, edges: initialEdges, }) => { const showFeaturesPanel = useStore(state => state.showFeaturesPanel) const [nodes] = useNodesState(initialNodes) const [edges, _, onEdgesChange] = useEdgesState(initialEdges) // const nodesInitialized = useNodesInitialized() console.log(nodes) const { // handleLayout, handleNodeDragStart, handleNodeDrag, handleNodeDragStop, handleNodeEnter, handleNodeLeave, handleNodeClick, handleNodeConnect, handleEdgeEnter, handleEdgeLeave, handleEdgeDelete, } = useWorkflow() // useEffect(() => { // if (nodesInitialized) // handleLayout() // }, [nodesInitialized, handleLayout]) useKeyPress('Backspace', handleEdgeDelete) return (
{ showFeaturesPanel && }
) }) Workflow.displayName = 'Workflow' const WorkflowWrap: FC = ({ nodes, edges, }) => { return ( ) } export default memo(WorkflowWrap)