import React from "react"; import { Canvas, EdgeData, ElkRoot, NodeData } from "reaflow"; import { CustomNode } from "src/components/CustomNode"; import { useConfig } from "src/hocs/config"; import { getEdgeNodes } from "src/containers/LiveEditor/helpers"; export const Graph: React.FC = () => { const { json, settings } = useConfig(); const [nodes, setNodes] = React.useState([]); const [edges, setEdges] = React.useState([]); const [size, setSize] = React.useState({ width: 2000, height: 2000, }); React.useEffect(() => { const { nodes, edges } = getEdgeNodes(json, settings.expand); setNodes(nodes); setEdges(edges); }, [json, settings.expand]); const onCanvasClick = () => { const input = document.querySelector("input:focus") as HTMLInputElement; if (input) input.blur(); }; const onLayoutChange = (layout: ElkRoot) => { if (layout.width && layout.height) setSize({ width: layout.width, height: layout.height }); }; return ( ); };