@@ -6,6 +6,7 @@ import React, {
6
6
useContext ,
7
7
useEffect ,
8
8
useState ,
9
+ useRef
9
10
} from 'react' ;
10
11
import { DataSyncContext } from './data-sync-context' ;
11
12
import axios from 'axios' ;
@@ -45,6 +46,7 @@ export const OfflineSyncProvider: FC<{
45
46
} > = ( { children, render, onStatusChange, onCallback } ) => {
46
47
// Manage state for data, offline status, and online status
47
48
const [ data , setData ] = useState < Record < string , any > > ( { } ) ;
49
+ const isSyncing = useRef < boolean > ( ) ;
48
50
const [ isOnline , setIsOnline ] = useState < boolean > (
49
51
window ?. navigator ?. onLine ?? true
50
52
) ;
@@ -57,7 +59,6 @@ export const OfflineSyncProvider: FC<{
57
59
console . log ( 'Network status:' , isConnected ? 'Online' : 'Offline' ) ;
58
60
if ( isConnected ) {
59
61
handleOnline ( ) ;
60
-
61
62
} else {
62
63
handleOffline ( ) ;
63
64
@@ -168,6 +169,10 @@ export const OfflineSyncProvider: FC<{
168
169
} ;
169
170
170
171
const syncOfflineRequests = async ( ) => {
172
+ if ( isSyncing . current ) {
173
+ return ;
174
+ }
175
+ isSyncing . current = true ;
171
176
const storedRequests : any = await getStoredRequests ( ) ;
172
177
if ( ! storedRequests || storedRequests . length === 0 ) {
173
178
return ;
@@ -192,6 +197,7 @@ export const OfflineSyncProvider: FC<{
192
197
}
193
198
}
194
199
}
200
+ isSyncing . current = false ;
195
201
} ;
196
202
197
203
return (
0 commit comments