@@ -13,35 +13,36 @@ export function useAutoRefreshInterval(): [number, (value: number) => void] {
1313
1414 const lastHiddenTimeRef = React . useRef < number | null > ( null ) ;
1515
16- const handleVisibilityChange = React . useCallback ( ( ) => {
17- const isVisible = document . visibilityState === 'visible' ;
18-
19- if ( isVisible ) {
20- // If more than settingValue milliseconds have passed since the page was hidden,
21- // trigger an immediate update
22- const shouldTriggerImmediate =
23- lastHiddenTimeRef . current &&
24- settingValue !== DISABLED_INTERVAL &&
25- Date . now ( ) - lastHiddenTimeRef . current >= settingValue ;
26-
27- if ( shouldTriggerImmediate ) {
28- setEffectiveInterval ( IMMEDIATE_UPDATE_INTERVAL ) ;
29-
30- setTimeout ( ( ) => {
31- setEffectiveInterval ( settingValue ) ;
32- } , 0 ) ;
16+ React . useEffect ( ( ) => {
17+ setEffectiveInterval ( settingValue ) ;
18+
19+ const handleVisibilityChange = ( ) => {
20+ const isVisible = document . visibilityState === 'visible' ;
21+ if ( isVisible ) {
22+ // If more than settingValue milliseconds have passed since the page was hidden,
23+ // trigger an immediate update
24+ const shouldTriggerImmediate =
25+ lastHiddenTimeRef . current &&
26+ settingValue !== DISABLED_INTERVAL &&
27+ Date . now ( ) - lastHiddenTimeRef . current >= settingValue ;
28+
29+ if ( shouldTriggerImmediate ) {
30+ setEffectiveInterval ( IMMEDIATE_UPDATE_INTERVAL ) ;
31+
32+ setTimeout ( ( ) => {
33+ setEffectiveInterval ( settingValue ) ;
34+ } , 0 ) ;
35+ }
36+
37+ lastHiddenTimeRef . current = null ;
38+ } else {
39+ lastHiddenTimeRef . current = Date . now ( ) ;
3340 }
41+ } ;
3442
35- lastHiddenTimeRef . current = null ;
36- } else {
37- lastHiddenTimeRef . current = Date . now ( ) ;
38- }
39- } , [ settingValue ] ) ;
40-
41- React . useEffect ( ( ) => {
4243 document . addEventListener ( 'visibilitychange' , handleVisibilityChange ) ;
4344 return ( ) => document . removeEventListener ( 'visibilitychange' , handleVisibilityChange ) ;
44- } , [ handleVisibilityChange ] ) ;
45+ } , [ settingValue ] ) ;
4546
4647 return [ effectiveInterval , setSettingValue ] ;
4748}
0 commit comments