@@ -94,6 +94,7 @@ class App extends Component {
94
94
nodeSize : { x : 200 , y : 200 } ,
95
95
enableLegacyTransitions : false ,
96
96
transitionDuration : 500 ,
97
+ dimensions : undefined ,
97
98
renderCustomNodeElement : customNodeFnMapping [ 'svg' ] . fn ,
98
99
styles : {
99
100
nodes : {
@@ -125,6 +126,7 @@ class App extends Component {
125
126
this . handleFloatChange = this . handleFloatChange . bind ( this ) ;
126
127
this . toggleCollapsible = this . toggleCollapsible . bind ( this ) ;
127
128
this . toggleZoomable = this . toggleZoomable . bind ( this ) ;
129
+ this . toggleCenterNodes = this . toggleCenterNodes . bind ( this ) ;
128
130
this . setScaleExtent = this . setScaleExtent . bind ( this ) ;
129
131
this . setSeparation = this . setSeparation . bind ( this ) ;
130
132
this . setNodeSize = this . setNodeSize . bind ( this ) ;
@@ -200,6 +202,24 @@ class App extends Component {
200
202
this . setState ( prevState => ( { zoomable : ! prevState . zoomable } ) ) ;
201
203
}
202
204
205
+ toggleCenterNodes ( ) {
206
+ if ( this . state . dimensions !== undefined ) {
207
+ this . setState ( {
208
+ dimensions : undefined ,
209
+ } ) ;
210
+ } else {
211
+ if ( this . treeContainer ) {
212
+ const dimensions = this . treeContainer . getBoundingClientRect ( ) ;
213
+ this . setState ( {
214
+ dimensions : {
215
+ width : dimensions . width ,
216
+ height : dimensions . height ,
217
+ } ,
218
+ } ) ;
219
+ }
220
+ }
221
+ }
222
+
203
223
setScaleExtent ( scaleExtent ) {
204
224
this . setState ( { scaleExtent } ) ;
205
225
}
@@ -393,6 +413,15 @@ class App extends Component {
393
413
/>
394
414
</ div >
395
415
416
+ < div className = "prop-container" >
417
+ < h4 className = "prop" > Center Nodes on Click</ h4 >
418
+ < Switch
419
+ name = "centerNodesBtn"
420
+ checked = { this . state . dimensions !== undefined }
421
+ onChange = { this . toggleCenterNodes }
422
+ />
423
+ </ div >
424
+
396
425
< div className = "prop-container" >
397
426
< h4 className = "prop" > Collapse neighbor nodes</ h4 >
398
427
< Switch
@@ -645,6 +674,7 @@ class App extends Component {
645
674
onLinkMouseOut = { ( ...args ) => {
646
675
console . log ( 'onLinkMouseOut' , args ) ;
647
676
} }
677
+ dimensions = { this . state . dimensions }
648
678
/>
649
679
</ div >
650
680
</ div >
0 commit comments