@@ -459,7 +459,7 @@ class Grid extends React.PureComponent<Props, State> {
459
459
: SCROLL_DIRECTION_BACKWARD
460
460
: this . state . scrollDirectionVertical ;
461
461
462
- const newState : Object = {
462
+ const newState : $Shape < State > = {
463
463
isScrolling : true ,
464
464
scrollDirectionHorizontal ,
465
465
scrollDirectionVertical ,
@@ -597,29 +597,26 @@ class Grid extends React.PureComponent<Props, State> {
597
597
// In that event we need to remeasure.
598
598
if ( ! instanceProps . scrollbarSizeMeasured ) {
599
599
this . setState ( prevState => {
600
- prevState . instanceProps . scrollbarSize = getScrollbarSize ( ) ;
601
- prevState . instanceProps . scrollbarSizeMeasured = true ;
602
- prevState . needToResetStyleCache = false ;
603
- return prevState ;
600
+ const stateUpdate = { ... prevState , needToResetStyleCache : false } ;
601
+ stateUpdate . instanceProps . scrollbarSize = getScrollbarSize ( ) ;
602
+ stateUpdate . instanceProps . scrollbarSizeMeasured = true ;
603
+ return stateUpdate ;
604
604
} ) ;
605
605
}
606
606
607
607
if (
608
608
( typeof scrollLeft === 'number' && scrollLeft >= 0 ) ||
609
609
( typeof scrollTop === 'number' && scrollTop >= 0 )
610
610
) {
611
- this . setState ( prevState => {
612
- const stateUpdate = Grid . _getScrollToPositionStateUpdate ( {
613
- prevState,
614
- scrollLeft,
615
- scrollTop,
616
- } ) ;
617
- if ( stateUpdate ) {
618
- stateUpdate . needToResetStyleCache = false ;
619
- return stateUpdate ;
620
- }
621
- return null ;
611
+ const stateUpdate = Grid . _getScrollToPositionStateUpdate ( {
612
+ prevState : this . state ,
613
+ scrollLeft,
614
+ scrollTop,
622
615
} ) ;
616
+ if ( stateUpdate ) {
617
+ stateUpdate . needToResetStyleCache = false ;
618
+ this . setState ( stateUpdate ) ;
619
+ }
623
620
}
624
621
625
622
// refs don't work in `react-test-renderer`
@@ -1436,19 +1433,16 @@ class Grid extends React.PureComponent<Props, State> {
1436
1433
* Useful for animating position changes.
1437
1434
*/
1438
1435
scrollToPosition ( { scrollLeft, scrollTop} : ScrollPosition ) {
1439
- this . setState ( prevState => {
1440
- const stateUpdate = Grid . _getScrollToPositionStateUpdate ( {
1441
- prevState,
1442
- scrollLeft,
1443
- scrollTop,
1444
- } ) ;
1445
-
1446
- if ( stateUpdate ) {
1447
- stateUpdate . needToResetStyleCache = false ;
1448
- return stateUpdate ;
1449
- }
1450
- return null ;
1436
+ const stateUpdate = Grid . _getScrollToPositionStateUpdate ( {
1437
+ prevState : this . state ,
1438
+ scrollLeft,
1439
+ scrollTop,
1451
1440
} ) ;
1441
+
1442
+ if ( stateUpdate ) {
1443
+ stateUpdate . needToResetStyleCache = false ;
1444
+ this . setState ( stateUpdate ) ;
1445
+ }
1452
1446
}
1453
1447
1454
1448
static _wrapSizeGetter ( value : CellSize ) : CellSizeGetter {
@@ -1530,8 +1524,8 @@ class Grid extends React.PureComponent<Props, State> {
1530
1524
) ;
1531
1525
if ( stateUpdate ) {
1532
1526
stateUpdate . needToResetStyleCache = false ;
1527
+ this . setState ( stateUpdate ) ;
1533
1528
}
1534
- this . setState ( stateUpdate ) ;
1535
1529
}
1536
1530
1537
1531
static _getCalculatedScrollTop ( nextProps : Props , prevState : State ) {
@@ -1626,8 +1620,8 @@ class Grid extends React.PureComponent<Props, State> {
1626
1620
) ;
1627
1621
if ( stateUpdate ) {
1628
1622
stateUpdate . needToResetStyleCache = false ;
1623
+ this . setState ( stateUpdate ) ;
1629
1624
}
1630
- this . setState ( stateUpdate ) ;
1631
1625
}
1632
1626
1633
1627
_onScroll = ( event : Event ) => {
0 commit comments