feat(edges): allow different types

This commit is contained in:
moklick
2019-07-24 23:25:14 +02:00
parent 6312f6bd1e
commit 9d44f26c68
10 changed files with 109 additions and 40 deletions
+2 -2
View File
@@ -12,7 +12,7 @@ export default NodeComponent => (props) => {
const { state, dispatch } = useContext(GraphContext);
const [offset, setOffset] = useState({ x: 0, y: 0 });
const { data, onNodeClick, __rg } = props;
const { data, onClick, __rg } = props;
const { position } = __rg;
const { id } = data;
const [ x, y, k ] = state.transform;
@@ -70,7 +70,7 @@ export default NodeComponent => (props) => {
}
dispatch(setSelectedNodesIds(id));
onNodeClick({ data, position });
onClick({ data, position });
}}
>
<NodeComponent {...props} />
+4 -4
View File
@@ -4,7 +4,7 @@ import { Consumer } from '../GraphContext';
class NodeRenderer extends PureComponent {
renderNode(d, onNodeClick) {
renderNode(d, onElementClick) {
const nodeType = d.data.type || 'default';
if (!this.props.nodeTypes[nodeType]) {
console.warn(`No node type found for type "${nodeType}". Using fallback type "default".`);
@@ -15,7 +15,7 @@ class NodeRenderer extends PureComponent {
return (
<NodeComponent
key={d.data.id}
onNodeClick={onNodeClick}
onClick={onElementClick}
{...d}
/>
);
@@ -24,14 +24,14 @@ class NodeRenderer extends PureComponent {
render() {
return (
<Consumer>
{({ onNodeClick, state }) => (
{({ onElementClick, state }) => (
<div
className="react-graph__nodes"
style={{
transform: `translate(${state.transform[0]}px,${state.transform[1]}px) scale(${state.transform[2]})`
}}
>
{state.nodes.map(d => this.renderNode(d, onNodeClick))}
{state.nodes.map(d => this.renderNode(d, onElementClick))}
</div>
)}
</Consumer>