@@ -59,6 +59,7 @@ interface SheetContentState {
59
59
veilTouched : boolean ;
60
60
isAnimating : boolean ;
61
61
inWindowResizeScope : boolean ;
62
+ delayedResize : boolean ;
62
63
}
63
64
64
65
class SheetContent extends React . Component < SheetContentInnerProps , SheetContentState > {
@@ -86,6 +87,7 @@ class SheetContent extends React.Component<SheetContentInnerProps, SheetContentS
86
87
veilTouched : false ,
87
88
isAnimating : false ,
88
89
inWindowResizeScope : false ,
90
+ delayedResize : false ,
89
91
} ;
90
92
91
93
componentDidMount ( ) {
@@ -333,12 +335,14 @@ class SheetContent extends React.Component<SheetContentInnerProps, SheetContentS
333
335
y : e . nativeEvent . touches [ 0 ] . clientY ,
334
336
} ) ;
335
337
336
- this . setState ( { deltaY : delta } ) ;
337
-
338
+ // if allowHideOnContentScroll is true and delta <= 0, it's a content scroll
339
+ // animation is not needed
338
340
if ( delta <= 0 ) {
341
+ this . setState ( { deltaY : 0 } ) ;
339
342
return ;
340
343
}
341
344
345
+ this . setState ( { deltaY : delta } ) ;
342
346
this . setStyles ( { status : 'showing' , deltaHeight : delta } ) ;
343
347
} ;
344
348
@@ -397,6 +401,12 @@ class SheetContent extends React.Component<SheetContentInnerProps, SheetContentS
397
401
398
402
if ( this . veilOpacity === '0' ) {
399
403
this . props . hideSheet ( ) ;
404
+ return ;
405
+ }
406
+
407
+ if ( this . state . delayedResize ) {
408
+ this . onResizeWindow ( ) ;
409
+ this . setState ( { delayedResize : false } ) ;
400
410
}
401
411
} ;
402
412
@@ -410,6 +420,7 @@ class SheetContent extends React.Component<SheetContentInnerProps, SheetContentS
410
420
411
421
private onResizeWindow = ( ) => {
412
422
if ( this . state . isAnimating ) {
423
+ this . setState ( { delayedResize : true } ) ;
413
424
return ;
414
425
}
415
426
0 commit comments