feat(renderer): pass nodeTypes

This commit is contained in:
moklick
2019-07-16 12:33:05 +02:00
parent e40ae6d841
commit f330b0c4ee
6 changed files with 36 additions and 8 deletions
+1 -1
View File
@@ -54,7 +54,7 @@ const GraphView = (props) => {
return (
<div className="react-graph__renderer">
<NodeRenderer />
<NodeRenderer nodeTypes={props.nodeTypes} />
<EdgeRenderer width={graphContext.state.width} height={graphContext.state.height} />
<div className="react-graph__zoomnode" ref={zoomNode} />
</div>
+16 -1
View File
@@ -9,7 +9,22 @@ class NodeRenderer extends PureComponent {
renderNode(d, onNodeClick) {
const nodeType = d.data.type || 'default';
const NodeComponent = this.props.nodeTypes[nodeType] || DefaultNode;
let NodeComponent = null;
switch (nodeType) {
case 'input': {
NodeComponent = this.props.nodeTypes.input || InputNode; break;
}
case 'default': {
NodeComponent = this.props.nodeTypes.default || DefaultNode; break;
}
case 'output': {
NodeComponent = this.props.nodeTypes.output || OutputNode; break;
}
default: {
NodeComponent = this.props.nodeTypes[nodeType] || DefaultNode;
}
}
return (
<NodeComponent
+2 -1
View File
@@ -9,7 +9,7 @@ import './style.css';
class ReactGraph extends PureComponent {
render() {
const {
style, onNodeClick, children, onLoad, onMove, onChange, elements
style, onNodeClick, children, onLoad, onMove, onChange, elements, nodeTypes
} = this.props;
const { nodes, edges } = separateElements(elements);
@@ -21,6 +21,7 @@ class ReactGraph extends PureComponent {
onLoad={onLoad}
onMove={onMove}
onChange={onChange}
nodeTypes={nodeTypes}
/>
{children}
</Provider>