1import NetInfo from '@react-native-community/netinfo'; 2 3let networkState: 'Offline' | 'Wifi' | 'Cellular'; 4 5function getState() { 6 return networkState; 7} 8 9const isOffline = () => networkState === 'Offline'; 10 11const isWifi = () => networkState === 'Wifi'; 12 13const isCellular = () => networkState === 'Cellular'; 14 15const mapState = (state: any) => { 16 if (state.type === 'none') { 17 networkState = 'Offline'; 18 } else if (state.type === 'wifi') { 19 networkState = 'Wifi'; 20 } else { 21 networkState = 'Cellular'; 22 } 23}; 24 25async function setup() { 26 try { 27 const state = await NetInfo.fetch(); 28 mapState(state); 29 } catch (e) {} 30 31 NetInfo.addEventListener(state => { 32 mapState(state); 33 }); 34} 35 36const Network = { 37 setup, 38 getState, 39 isOffline, 40 isWifi, 41 isCellular, 42}; 43 44export default Network; 45