Network connectivity state management for React Native apps - Offline detection, online/offline state tracking.
- ✅ Network Detection - Real-time network connectivity monitoring
- ✅ Universal Support - Works on iOS, Android, and Web
- ✅ NetInfo Integration - Uses React Native NetInfo for accurate detection
- ✅ Zustand Store - Global state management for network state
- ✅ React Hooks - Easy integration with React components
- ✅ Type-Safe - Full TypeScript support
npm install @umituz/react-native-offlinenpm install @react-native-community/netinfo zustandimport { useOffline } from '@umituz/react-native-offline';
function MyComponent() {
const { isOnline, isOffline, connectionType } = useOffline();
if (isOffline) {
return <OfflineBanner />;
}
return <YourContent />;
}import { useOfflineState } from '@umituz/react-native-offline';
function MyComponent() {
const isOffline = useOfflineState((state) => state.isOffline);
return (
<View>
{isOffline && <Text>You are offline</Text>}
</View>
);
}import { useOfflineWithMutations } from '@umituz/react-native-offline';
function MyComponent() {
const { isOnline, isOffline } = useOfflineWithMutations(async () => {
// Sync data when coming back online
await syncLocalData();
});
if (isOffline) {
return <OfflineBanner />;
}
return <YourContent />;
}import { useOfflineStore } from '@umituz/react-native-offline';
function TestComponent() {
const store = useOfflineStore();
const handleForceOffline = () => {
store.setOffline();
};
const handleForceOnline = () => {
store.setOnline();
};
return (
<View>
<Button onPress={handleForceOffline} title="Force Offline" />
<Button onPress={handleForceOnline} title="Force Online" />
</View>
);
}Primary hook for accessing offline state. Automatically subscribes to network changes.
Returns:
isOnline: boolean- Whether device is onlineisOffline: boolean- Whether device is offlineconnectionType: string | null- Connection type (wifi, cellular, etc.)isInternetReachable: boolean | null- Whether internet is reachablelastOnlineAt: Date | null- Last time device was onlinelastOfflineAt: Date | null- Last time device went offlinehasConnection: boolean- Alias forisOnlinehasInternet: boolean- Whether device has internet access
Raw store access hook. Use when you don't need automatic NetInfo subscription.
Returns: Zustand store instance
Enhanced version of useOffline that automatically calls a callback when coming back online.
Parameters:
onOnline: () => Promise<void>- Function to call when device comes back online (e.g., sync data)
Returns: Same as useOffline()
Zustand store for offline state management.
Methods:
updateNetworkState(state: NetInfoState)- Update network state from NetInfosetOnline()- Manually set online statesetOffline()- Manually set offline state
MIT
Ümit UZ umit@umituz.com