@@ -75,14 +75,14 @@ const ScrollBar = React.forwardRef<ScrollBarRef, ScrollBarProps>((props, ref) =>
7575 const [ visible , setVisible ] = React . useState ( showScrollBar ) ;
7676 const visibleTimeoutRef = React . useRef < ReturnType < typeof setTimeout > | undefined > ( undefined ) ;
7777
78- const delayHidden = ( ) => {
78+ const delayHidden = useEvent ( ( ) => {
7979 if ( showScrollBar === true || showScrollBar === false ) return ;
8080 clearTimeout ( visibleTimeoutRef . current ) ;
8181 setVisible ( true ) ;
8282 visibleTimeoutRef . current = setTimeout ( ( ) => {
8383 setVisible ( false ) ;
8484 } , 3000 ) ;
85- } ;
85+ } ) ;
8686
8787 // ======================== Range =========================
8888 const enableScrollRange = scrollRange - containerSize || 0 ;
@@ -134,10 +134,7 @@ const ScrollBar = React.forwardRef<ScrollBarRef, ScrollBarProps>((props, ref) =>
134134 nextTop = pagePosition - rect . top - spinSize / 2 ;
135135 }
136136
137- onScroll (
138- getScrollOffsetByThumbTop ( nextTop , enableScrollRange , enableOffsetRange ) ,
139- horizontal ,
140- ) ;
137+ onScroll ( getScrollOffsetByThumbTop ( nextTop , enableScrollRange , enableOffsetRange ) , horizontal ) ;
141138 } ;
142139
143140 const onContainerMouseDown : React . MouseEventHandler = ( e ) => {
@@ -255,11 +252,17 @@ const ScrollBar = React.forwardRef<ScrollBarRef, ScrollBarProps>((props, ref) =>
255252 } , [ dragging ] ) ;
256253
257254 React . useEffect ( ( ) => {
258- delayHidden ( ) ;
255+ if ( showScrollBar === true || showScrollBar === false ) {
256+ clearTimeout ( visibleTimeoutRef . current ) ;
257+ setVisible ( showScrollBar ) ;
258+ } else {
259+ delayHidden ( ) ;
260+ }
261+
259262 return ( ) => {
260263 clearTimeout ( visibleTimeoutRef . current ) ;
261264 } ;
262- } , [ scrollOffset ] ) ;
265+ } , [ scrollOffset , showScrollBar , delayHidden ] ) ;
263266
264267 // ====================== Imperative ======================
265268 React . useImperativeHandle ( ref , ( ) => ( {
0 commit comments