diff --git a/example/src/UpdateLabel/index.js b/example/src/UpdateLabel/index.js new file mode 100644 index 00000000..366e528b --- /dev/null +++ b/example/src/UpdateLabel/index.js @@ -0,0 +1,42 @@ +import React, { useEffect, useState } from 'react'; + +import ReactFlow from 'react-flow-renderer'; + +const initialElements = [ + { id: '1', data: { label: '-' }, position: { x: 100, y: 100 } }, + { id: '2', data: { label: 'Node 2' }, position: { x: 100, y: 200 } }, + { id: 'e1-2', source: '1', target: '2' }, +]; + +const BasicFlow = () => { + const [elements, setElements] = useState(initialElements); + const [nodeName, setNodeName] = useState('Node 1'); + + useEffect(() => { + setElements((els) => + els.map((el) => { + if (el.id === '1') { + return { + ...el, + data: { + ...el.data, + label: nodeName, + }, + }; + } + + return el; + }) + ); + }, [nodeName, setElements]); + + return ( + +
+ setNodeName(evt.target.value)} /> +
+
+ ); +}; + +export default BasicFlow; diff --git a/example/src/index.js b/example/src/index.js index 32952745..6abe0b7d 100644 --- a/example/src/index.js +++ b/example/src/index.js @@ -16,6 +16,7 @@ import EdgeTypes from './EdgeTypes'; import CustomConnectionLine from './CustomConnectionLine'; import NodeTypeChange from './NodeTypeChange'; import UpdatableEdge from './UpdatableEdge'; +import UpdateLabel from './UpdateLabel'; import './index.css'; @@ -84,6 +85,11 @@ const routes = [ component: UpdatableEdge, label: 'Updatable Edge', }, + { + path: '/update-label', + component: UpdateLabel, + label: 'Update Label', + }, ]; const navLinks = routes.filter((route) => route.label);