diff --git a/apps/mobile/AppRootEvents.js b/apps/mobile/AppRootEvents.js index 9c1c50320..3fde77f95 100644 --- a/apps/mobile/AppRootEvents.js +++ b/apps/mobile/AppRootEvents.js @@ -281,11 +281,14 @@ export const AppRootEvents = React.memo( setLastSynced(await db.lastSynced()); } catch (e) { setSyncing(false); - ToastEvent.show({ - heading: 'Sync failed', - message: e.message, - context: 'global', - }); + let status = await NetInfo.fetch(); + if (status.isConnected && status.isInternetReachable) { + ToastEvent.show({ + heading: 'Sync failed', + message: e.message, + context: 'global', + }); + } } finally { setSyncing(false); } diff --git a/apps/mobile/src/services/Sync.js b/apps/mobile/src/services/Sync.js index 99f75287d..f3287654b 100644 --- a/apps/mobile/src/services/Sync.js +++ b/apps/mobile/src/services/Sync.js @@ -1,14 +1,14 @@ +import NetInfo from '@react-native-community/netinfo'; import {updateEvent} from '../components/DialogManager/recievers'; import {Actions} from '../provider/Actions'; -import { initialize, useUserStore } from '../provider/stores'; +import {initialize, useUserStore} from '../provider/stores'; import {doInBackground} from '../utils'; import {db} from '../utils/DB'; import {eOpenLoginDialog} from '../utils/Events'; import {eSendEvent, ToastEvent} from './EventManager'; const run = async (context = 'global', forced) => { - - let userstore = useUserStore.getState() + let userstore = useUserStore.getState(); userstore.setSyncing(true); try { let res = await doInBackground(async () => { @@ -19,7 +19,7 @@ const run = async (context = 'global', forced) => { return e.message; } }); - + if (res !== true) throw new Error(res); ToastEvent.show({ @@ -40,16 +40,18 @@ const run = async (context = 'global', forced) => { actionText: 'Login', }); } else { - userstore.setSyncing(false); - ToastEvent.show({ - heading: 'Sync failed', - message: e.message, - context: context, - }); + let status = await NetInfo.fetch(); + if (status.isConnected && status.isInternetReachable) { + ToastEvent.show({ + heading: 'Sync failed', + message: e.message, + context: context, + }); + } } } finally { - userstore.setLastSynced(await db.lastSynced()) + userstore.setLastSynced(await db.lastSynced()); initialize(); userstore.setSyncing(false); }