import type { FC } from 'react' import type { Edge } from 'reactflow' import ReactFlow, { Background, ReactFlowProvider, useEdgesState, useNodesState, useReactFlow, } from 'reactflow' import 'reactflow/dist/style.css' import { WorkflowContext, useWorkflowContext, } from './context' import { useWorkflow } from './hooks' import Header from './header' import CustomNode, { Panel, } from './nodes' import AppInfoPanel from './app-info-panel' import ZoomInOut from './zoom-in-out' import CustomEdge from './custom-edge' import type { Node } from './types' const nodeTypes = { custom: CustomNode, } const edgeTypes = { custom: CustomEdge, } const Workflow = () => { const { nodes, edges, } = useWorkflowContext() return (
) } type WorkflowWrapProps = { selectedNodeId?: string nodes: Node[] edges: Edge[] } const WorkflowWrap: FC = ({ nodes: initialNodes, edges: initialEdges, selectedNodeId: initialSelectedNodeId, }) => { const reactFlow = useReactFlow() const [nodes, setNodes] = useNodesState(initialNodes) const [edges, setEdges] = useEdgesState(initialEdges) const { selectedNodeId, handleSelectedNodeIdChange, selectedNode, handleAddNextNode, } = useWorkflow( nodes, edges, setNodes, setEdges, initialSelectedNodeId, ) return ( ) } const WorkflowWrapWithReactFlowProvider: FC = ({ selectedNodeId, nodes, edges, }) => { return ( {selectedNodeId} ) } export default WorkflowWrapWithReactFlowProvider