diff options
Diffstat (limited to 'src/lib/hooks')
-rw-r--r-- | src/lib/hooks/useOTAUpdate.ts | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/src/lib/hooks/useOTAUpdate.ts b/src/lib/hooks/useOTAUpdate.ts deleted file mode 100644 index d35179256..000000000 --- a/src/lib/hooks/useOTAUpdate.ts +++ /dev/null @@ -1,56 +0,0 @@ -import * as Updates from 'expo-updates' -import {useCallback, useEffect} from 'react' -import {AppState} from 'react-native' -import {logger} from '#/logger' - -export function useOTAUpdate() { - // HELPER FUNCTIONS - const checkForUpdate = useCallback(async () => { - logger.debug('useOTAUpdate: Checking for update...') - try { - // Check if new OTA update is available - const update = await Updates.checkForUpdateAsync() - // If updates aren't available stop the function execution - if (!update.isAvailable) { - return - } - // Otherwise fetch the update in the background, so even if the user rejects switching to latest version it will be done automatically on next relaunch. - await Updates.fetchUpdateAsync() - } catch (e) { - logger.error('useOTAUpdate: Error while checking for update', { - message: e, - }) - } - }, []) - const updateEventListener = useCallback((event: Updates.UpdateEvent) => { - logger.debug('useOTAUpdate: Listening for update...') - if (event.type === Updates.UpdateEventType.ERROR) { - logger.error('useOTAUpdate: Error while listening for update', { - message: event.message, - }) - } else if (event.type === Updates.UpdateEventType.NO_UPDATE_AVAILABLE) { - // Handle no update available - // do nothing - } else if (event.type === Updates.UpdateEventType.UPDATE_AVAILABLE) { - // Handle update available - // open modal, ask for user confirmation, and reload the app - } - }, []) - - useEffect(() => { - // ADD EVENT LISTENERS - const updateEventSubscription = Updates.addListener(updateEventListener) - const appStateSubscription = AppState.addEventListener('change', state => { - if (state === 'active' && !__DEV__) { - checkForUpdate() - } - }) - - // REMOVE EVENT LISTENERS (CLEANUP) - return () => { - updateEventSubscription.remove() - appStateSubscription.remove() - } - }, []) // eslint-disable-line react-hooks/exhaustive-deps - // disable exhaustive deps because we don't want to run this effect again -} |