Offline sync patterns:
1import NetInfo from "@react-native-community/netinfo";2import AsyncStorage from "@react-native-async-storage/async-storage";34class OfflineSync {5 private queue: PendingAction[] = [];67 async addAction(action: PendingAction) {8 this.queue.push(action);9 await AsyncStorage.setItem("syncQueue", JSON.stringify(this.queue));10 }1112 async processQueue() {13 const state = await NetInfo.fetch();14 if (!state.isConnected) return;1516 for (const action of this.queue) {17 try {18 await api.execute(action);19 this.queue.shift();20 } catch (e) {21 break;22 }23 }24 }25}
Strategies: