import React, { useCallback } from 'react'; import ReactFlow, { ReactFlowProvider, useNodesState, useEdgesState, useReactFlow, } from 'reactflow'; import { initialNodes, initialEdges } from './nodes-edges.js'; import 'reactflow/dist/style.css'; const getLayoutedElements = (nodes, edges) => { return { nodes, edges }; }; const LayoutFlow = () => { const { fitView } = useReactFlow(); const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes); const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges); const onLayout = useCallback(() => { const layouted = getLayoutedElements(nodes, edges); setNodes([...layouted.nodes]); setEdges([...layouted.edges]); window.requestAnimationFrame(() => { fitView(); }); }, [nodes, edges]); return ( ); }; export default function () { return ( ); }