-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
deckgl-overlay.js
42 lines (34 loc) · 1.06 KB
/
deckgl-overlay.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import React, {Component} from 'react';
import DeckGL, {OrthographicView} from 'deck.gl';
import GraphLayoutLayer from './graph-layer/graph-layout-layer';
export default class DeckGLOverlay extends Component {
constructor(props) {
super(props);
}
render() {
const {viewport, data} = this.props;
if (!data) {
return null;
}
const {width, height} = viewport;
const {layoutProps, deckGLRef} = this.props;
const {layoutAccessors, linkAccessors, nodeAccessors, nodeIconAccessors} = this.props;
const {onHover, onClick} = this.props;
const layer = new GraphLayoutLayer({
id: 'graph-layout',
data,
layoutProps,
layoutAccessors,
linkAccessors,
nodeAccessors,
nodeIconAccessors,
onHover,
onClick
});
// recalculate viewport on container size change.
const left = -width / 2;
const top = -height / 2;
const view = new OrthographicView({width, height, left, top});
return <DeckGL ref={deckGLRef} width={width} height={height} views={view} layers={[layer]} />;
}
}