diff --git a/app.config.js b/app.config.js
index 67234b4e0b..6ae059104e 100644
--- a/app.config.js
+++ b/app.config.js
@@ -108,11 +108,6 @@ module.exports = function (config) {
web: {
favicon: './assets/favicon.png',
},
- updates: {
- enabled: true,
- fallbackToCacheTimeout: 1000,
- url: 'https://u.expo.dev/55bd077a-d905-4184-9c7f-94789ba0f302',
- },
plugins: [
'expo-localization',
Boolean(process.env.SENTRY_AUTH_TOKEN) && 'sentry-expo',
@@ -132,12 +127,6 @@ module.exports = function (config) {
},
},
],
- [
- 'expo-updates',
- {
- username: 'blueskysocial',
- },
- ],
[
'expo-notifications',
{
diff --git a/package.json b/package.json
index b5e9710276..613c236939 100644
--- a/package.json
+++ b/package.json
@@ -117,7 +117,6 @@
"expo-status-bar": "~1.11.1",
"expo-system-ui": "~2.9.3",
"expo-task-manager": "~11.7.2",
- "expo-updates": "~0.24.10",
"expo-web-browser": "~12.8.2",
"fast-text-encoding": "^1.0.6",
"history": "^5.3.0",
@@ -147,7 +146,7 @@
"react-native": "~0.73.5",
"react-native-date-picker": "^4.4.0",
"react-native-drawer-layout": "^4.0.0-alpha.3",
- "react-native-gesture-handler": "~2.15.0",
+ "react-native-gesture-handler": "~2.16.0-rc.0",
"react-native-get-random-values": "~1.8.0",
"react-native-image-crop-picker": "~0.40.3",
"react-native-ios-context-menu": "^1.15.3",
diff --git a/src/lib/app-info.ts b/src/lib/app-info.ts
index a152b1dee3..c345877f67 100644
--- a/src/lib/app-info.ts
+++ b/src/lib/app-info.ts
@@ -1,4 +1,2 @@
import {nativeBuildVersion, nativeApplicationVersion} from 'expo-application'
-import {channel} from 'expo-updates'
-export const updateChannel = channel
export const appVersion = `${nativeApplicationVersion} (${nativeBuildVersion})`
diff --git a/src/lib/hooks/useOTAUpdate.ts b/src/lib/hooks/useOTAUpdate.ts
index 53eab300e7..9848faf80b 100644
--- a/src/lib/hooks/useOTAUpdate.ts
+++ b/src/lib/hooks/useOTAUpdate.ts
@@ -1,78 +1,69 @@
-import * as Updates from 'expo-updates'
-import {useCallback, useEffect} from 'react'
-import {AppState} from 'react-native'
+import {useEffect} from 'react'
import {logger} from '#/logger'
-import {useModalControls} from '#/state/modals'
-import {t} from '@lingui/macro'
export function useOTAUpdate() {
- const {openModal} = useModalControls()
-
- // HELPER FUNCTIONS
- const showUpdatePopup = useCallback(() => {
- openModal({
- name: 'confirm',
- title: t`Update Available`,
- message: t`A new version of the app is available. Please update to continue using the app.`,
- onPressConfirm: async () => {
- Updates.reloadAsync().catch(err => {
- throw err
- })
- },
- })
- }, [openModal])
- 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()
- // show a popup modal
- showUpdatePopup()
- } catch (e) {
- logger.error('useOTAUpdate: Error while checking for update', {
- message: e,
- })
- }
- }, [showUpdatePopup])
- 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
- showUpdatePopup()
- }
- },
- [showUpdatePopup],
- )
+ // // HELPER FUNCTIONS
+ // const showUpdatePopup = useCallback(() => {
+ // openModal({
+ // name: 'confirm',
+ // title: t`Update Available`,
+ // message: t`A new version of the app is available. Please update to continue using the app.`,
+ // onPressConfirm: async () => {
+ // // Updates.reloadAsync().catch(err => {
+ // // throw err
+ // // })
+ // },
+ // })
+ // }, [openModal])
+ // 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()
+ // // show a popup modal
+ // showUpdatePopup()
+ // } catch (e) {
+ // logger.error('useOTAUpdate: Error while checking for update', {
+ // message: e,
+ // })
+ // }
+ // }, [showUpdatePopup])
+ // 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
+ // showUpdatePopup()
+ // }
+ // }, [])
useEffect(() => {
// ADD EVENT LISTENERS
- const updateEventSubscription = Updates.addListener(updateEventListener)
- const appStateSubscription = AppState.addEventListener('change', state => {
- if (state === 'active' && !__DEV__) {
- checkForUpdate()
- }
- })
+ // 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()
+ // updateEventSubscription.remove()
+ // appStateSubscription.remove()
}
- }, []) // eslint-disable-line react-hooks/exhaustive-deps
+ }, [])
// disable exhaustive deps because we don't want to run this effect again
}
diff --git a/src/lib/sentry.ts b/src/lib/sentry.ts
index 82dc34bf0e..28435e8ce0 100644
--- a/src/lib/sentry.ts
+++ b/src/lib/sentry.ts
@@ -4,17 +4,14 @@
*/
import {Platform} from 'react-native'
-import * as info from 'expo-updates'
import {init} from 'sentry-expo'
import {nativeApplicationVersion, nativeBuildVersion} from 'expo-application'
/**
* Matches the build profile `channel` props in `eas.json`
*/
-const buildChannel = (info.channel || 'development') as
- | 'development'
- | 'preview'
- | 'production'
+// TODO FABRIC expo updates .info
+const buildChannel = 'development' as 'development' | 'preview' | 'production'
/**
* Examples:
diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx
index 438025ff60..49bc392fe2 100644
--- a/src/view/screens/Settings/index.tsx
+++ b/src/view/screens/Settings/index.tsx
@@ -856,9 +856,7 @@ export function SettingsScreen({}: Props) {
accessibilityRole="button"
onPress={onPressBuildInfo}>
-
- Build version {AppInfo.appVersion} {AppInfo.updateChannel}
-
+ Build version {AppInfo.appVersion}
diff --git a/yarn.lock b/yarn.lock
index e315f580b5..545a2fdd16 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2044,9 +2044,9 @@
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
"@babel/plugin-transform-object-assign@^7.16.7":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.22.5.tgz#290c1b9555dcea48bb2c29ad94237777600d04f9"
- integrity sha512-iDhx9ARkXq4vhZ2CYOSnQXkmxkDgosLi3J8Z17mKz7LyzthtkdVchLD7WZ3aXeCuvJDOW3+1I5TpJmwIbF9MKQ==
+ version "7.23.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.23.3.tgz#64177e8cf943460c7f0e1c410277546804f59625"
+ integrity sha512-TPJ6O7gVC2rlQH2hvQGRH273G1xdoloCj9Pc07Q7JbIZYDi+Sv5gaE2fu+r5E7qK4zyt6vj0FbZaZTRU5C3OMA==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
@@ -8288,11 +8288,6 @@ application-config-path@^0.1.0:
resolved "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.1.tgz#8b5ac64ff6afdd9bd70ce69f6f64b6998f5f756e"
integrity sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==
-arg@4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0"
- integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==
-
arg@5.0.2, arg@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
@@ -11639,11 +11634,6 @@ expo-device@~5.9.3:
dependencies:
ua-parser-js "^0.7.33"
-expo-eas-client@~0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.11.0.tgz#0f25aa497849cade7ebef55c0631093a87e58b07"
- integrity sha512-99W0MUGe3U4/MY1E9UeJ4uKNI39mN8/sOGA0Le8XC47MTbwbLoVegHR3C5y2fXLwLn7EpfNxAn5nlxYjY3gD2A==
-
expo-file-system@^16.0.7, expo-file-system@~16.0.7:
version "16.0.7"
resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.7.tgz#0b3bd920a602b1c474d57a6b51202986113e1ef8"
@@ -11692,11 +11682,6 @@ expo-image@~1.10.6:
dependencies:
"@react-native/assets-registry" "~0.73.1"
-expo-json-utils@~0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.12.0.tgz#15ad797e9518a6a47eae9b95599e6373e641f8f2"
- integrity sha512-xsUsPUZcXZWoT4RY3FhEPYGYvr2iThMNNU5drdmkC/vmkePvqy5kK4aIqlIKzQboXxj7k1dXoNSSLg5mKy8uKg==
-
expo-keep-awake@~12.8.2:
version "12.8.2"
resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.8.2.tgz#6cfdf8ad02b5fa130f99d4a1eb98e459d5b4332e"
@@ -11722,14 +11707,6 @@ expo-localization@~14.8.3:
dependencies:
rtl-detect "^1.0.2"
-expo-manifests@~0.13.0:
- version "0.13.0"
- resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.13.0.tgz#20f163f84a414c6c50b8079e5fd0685d7c5b8ce2"
- integrity sha512-N3adl3edSga3jdatLXjXiltdSwQkB1rOI5uyGEE5OwR/bpxc/5OUgHdRZjJgY6jJmVY4BCAiw0RXFoVRBbgE0Q==
- dependencies:
- "@expo/config" "~8.5.0"
- expo-json-utils "~0.12.0"
-
expo-media-library@~15.9.1:
version "15.9.1"
resolved "https://registry.yarnpkg.com/expo-media-library/-/expo-media-library-15.9.1.tgz#1eaf5a0c8f51669f6f86d385a8fa411226042216"
@@ -11795,11 +11772,6 @@ expo-status-bar@~1.11.1:
resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.11.1.tgz#a11318741d361048c11db2b16c4364a79a74af30"
integrity sha512-ddQEtCOgYHTLlFUe/yH67dDBIoct5VIULthyT3LRJbEwdpzAgueKsX2FYK02ldh440V87PWKCamh7R9evk1rrg==
-expo-structured-headers@~3.7.0:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-3.7.0.tgz#69b752cf43515535eccd30513da428688634a7ec"
- integrity sha512-uGcU65gzP4trfmVtntAg3rU/pytTGpCUXN+hQmCwCCvQb9qK1aoCXvVlqlW5zP8SZ04tzF1WXKR+P8RSEn5rSw==
-
expo-system-ui@~2.9.3:
version "2.9.3"
resolved "https://registry.yarnpkg.com/expo-system-ui/-/expo-system-ui-2.9.3.tgz#845c7615a6ede9d959dff1719df3d9392a43c080"
@@ -11815,28 +11787,6 @@ expo-task-manager@~11.7.2:
dependencies:
unimodules-app-loader "~4.5.0"
-expo-updates-interface@~0.15.1:
- version "0.15.1"
- resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.15.1.tgz#b0242fa7ba05768ada2f0faf83b90aa8b8fa65d7"
- integrity sha512-B42oOB0pw4TaPoOGE/yzt9ggwNNxo3PEJRU0kIOurQ8hW5UEUC8cAbGQDYWGbTyNGp8gLBG+T2MCg+YYaCYJUw==
-
-expo-updates@~0.24.10:
- version "0.24.11"
- resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.24.11.tgz#605692a246103c29d0ca8a4b1134e8957f35b913"
- integrity sha512-SWpjZj7VGWBZJtbVj0gbGY7uZYrE7b+sRRoj/K1ma2ckHwXtAAB8gYI95Zp0joBdRNAbEtoMHYXP66Nrj5l8Ng==
- dependencies:
- "@expo/code-signing-certificates" "0.0.5"
- "@expo/config" "~8.5.0"
- "@expo/config-plugins" "~7.8.0"
- arg "4.1.0"
- chalk "^4.1.2"
- expo-eas-client "~0.11.0"
- expo-manifests "~0.13.0"
- expo-structured-headers "~3.7.0"
- expo-updates-interface "~0.15.1"
- fbemitter "^3.0.0"
- resolve-from "^5.0.0"
-
expo-web-browser@~12.8.2:
version "12.8.2"
resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-12.8.2.tgz#f34fb85c80031e0dddd4f9b9efd03cb60333b089"
@@ -18320,10 +18270,10 @@ react-native-drawer-layout@^4.0.0-alpha.3:
dependencies:
use-latest-callback "^0.1.9"
-react-native-gesture-handler@~2.15.0:
- version "2.15.0"
- resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.15.0.tgz#f8e6c0451a7bdf065edb7b9be605480db402baa0"
- integrity sha512-cmMGW8k86o/xgVTBZZOPohvR5re4Vh65PUxH4HbBBJAYTog4aN4wTVTUlnoky01HuSN8/X4h3tI/K3XLPoDnsg==
+react-native-gesture-handler@~2.16.0-rc.0:
+ version "2.16.0-rc.0"
+ resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.16.0-rc.0.tgz#ed9bbd7840fe84446402ec1d26c65e8e3ab07323"
+ integrity sha512-7y7UKLnDBq5BndVZQed1BC0CtXSVYg27XNL6Fu2vhmkvxVPtsHFOW1XMMCVajIi4ySnf4JNO/LbEQeOlJVXsYQ==
dependencies:
"@egjs/hammerjs" "^2.0.17"
hoist-non-react-statics "^3.3.0"