diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 73ce0f1d..5e159974 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ on: jobs: build: - runs-on: macos-10.15 + runs-on: macos-11 steps: - name: -- Step 0 -- Extract branch name shell: bash @@ -20,11 +20,11 @@ jobs: with: node-version: 14.x - name: -- Step 3 -- Use Expo action - uses: expo/expo-github-action@v5 + uses: expo/expo-github-action@v6 with: expo-version: 4.x - expo-username: ${{ secrets.EXPO_USERNAME }} - expo-token: ${{ secrets.EXPO_TOKEN }} + username: ${{ secrets.EXPO_USERNAME }} + token: ${{ secrets.EXPO_TOKEN }} - name: -- Step 4 -- Install node dependencies run: yarn install - name: -- Step 5 -- Install native dependencies @@ -33,6 +33,7 @@ jobs: run: bundle install - name: -- Step 7 -- Run fastlane env: + DEVELOPER_DIR: /Applications/Xcode_12.5.1.app/Contents/Developer ENVIRONMENT: ${{ steps.branch.outputs.branch }} LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 diff --git a/VERSIONING.md b/VERSIONING.md index c9d788ad..6d9e4861 100644 --- a/VERSIONING.md +++ b/VERSIONING.md @@ -5,7 +5,7 @@ * A new app store version has to be submitted. * Outdated versions in principle do not receive further OTA updates. -## Minor releases - App Store and OTA +## Minor releases - App Store "Minor releases" are artifacts published as `?.y.?`: * An artifact can be released as `?.y.?` when there is no change nor update made to the native modules. @@ -21,11 +21,12 @@ ## OTA release channels - * `MAJOR-environment`. Environments include `release`, `candidate` and `development`. + * `MAJOR.MINOR-environment`. Environments include `release`, `candidate` and `development`. ## Major versions mapping to native module versions -| Major version | Native module version | Expo version | -| :-----------: | :-------------------: | :----------: | -| `0` | `210201` | `40.0.0` | -| `1` | `210317` | `40.0.0` | \ No newline at end of file +| Version | Native module version | Expo version | +| :------:| :-------------------: | :----------: | +| `0-` | `210201` | `40.0.0` | +| `1-` | `210317` | `40.0.0` | +| `2.2` | `210916` | `41.0.0` | \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index 69182fd5..23656c7e 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -78,7 +78,7 @@ import com.android.build.OutputFile */ project.ext.react = [ - enableHermes: true + enableHermes: (findProperty('expo.jsEngine') ?: "jsc") == "hermes" ] apply from: '../../node_modules/react-native-unimodules/gradle.groovy' diff --git a/android/gradle.properties b/android/gradle.properties index 2ac55671..f249bc98 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -31,4 +31,8 @@ FLIPPER_VERSION=0.75.1 org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError org.gradle.daemon=true org.gradle.parallel=true -org.gradle.configureondemand=true \ No newline at end of file +org.gradle.configureondemand=true + +# The hosted JavaScript engine +# Supported values: expo.jsEngine = "hermes" | "jsc" +expo.jsEngine=hermes \ No newline at end of file diff --git a/app.config.ts b/app.config.ts index 6344887b..9de1facb 100644 --- a/app.config.ts +++ b/app.config.ts @@ -34,7 +34,7 @@ export default (): ExpoConfig => ({ bundleIdentifier: 'com.xmflsct.app.tooot' }, android: { - versionCode: 4, + jsEngine: 'hermes', package: 'com.xmflsct.app.tooot', googleServicesFile: './configs/google-services.json', permissions: ['CAMERA', 'VIBRATE'] diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 7298ff94..21c536a8 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -8,7 +8,7 @@ ensure_env_vars( VERSIONS = read_json( json_path: "./package.json" )[:versions] ENVIRONMENT = ENV["ENVIRONMENT"] VERSION = "#{VERSIONS[:major]}.#{VERSIONS[:minor]}" -RELEASE_CHANNEL = "#{VERSIONS[:major]}-#{ENVIRONMENT}" +RELEASE_CHANNEL = "#{VERSIONS[:major]}.#{VERSIONS[:minor]}-#{ENVIRONMENT}" BUILD_NUMBER = "#{Time.now.strftime("%y%m%d")}#{ENV["GITHUB_RUN_NUMBER"]}" GITHUB_REPO = "tooot-app/app" case ENVIRONMENT diff --git a/ios/File.swift b/ios/File.swift index 5c905f26..8ac9906c 100644 --- a/ios/File.swift +++ b/ios/File.swift @@ -2,7 +2,7 @@ // File.swift // tooot // -// Created by Zheng Zhiyuan (SEBD) on 2021-03-15. +// Created by Zhiyuan Zheng on 2021-08-22. // import Foundation diff --git a/ios/Podfile b/ios/Podfile index db4de4cc..dd6f31a0 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -11,7 +11,7 @@ target 'tooot' do use_react_native!( :path => config[:reactNativePath], # to enable hermes on iOS, change `false` to `true` and then install pods - :hermes_enabled => true + :hermes_enabled => false ) # Enables Flipper. diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b70113fb..2974ea51 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,85 +1,96 @@ PODS: - boost-for-react-native (1.63.0) - DoubleConversion (1.1.6) - - EXApplication (3.1.2): + - EXApplication (3.2.0): - UMCore - - EXAV (9.1.2): + - EXAV (9.2.3): + - ExpoModulesCore - UMCore - - UMFileSystemInterface - - UMPermissionsInterface - - EXConstants (10.1.3): - - UMConstantsInterface + - EXConstants (11.0.2): + - ExpoModulesCore - UMCore - - EXCrypto (9.1.0): + - EXCrypto (9.2.0): - UMCore - - EXDevice (2.4.0): + - EXDevice (3.3.0): - UMCore - - EXErrorRecovery (2.1.0): + - EXErrorRecovery (2.2.0): - UMCore - - EXFileSystem (11.0.2): + - EXFileSystem (11.1.3): + - ExpoModulesCore - UMCore - - UMFileSystemInterface - - EXFirebaseAnalytics (4.0.2): + - EXFirebaseAnalytics (4.1.0): - EXFirebaseCore - Firebase/Core (= 7.7.0) - UMCore - - EXFirebaseCore (3.0.0): + - EXFirebaseCore (3.1.0): - Firebase/Core (= 7.7.0) - UMCore - - EXFont (9.1.0): + - EXFont (9.2.1): + - ExpoModulesCore - UMCore - - UMFontInterface - - EXHaptics (10.0.0): + - EXHaptics (10.1.0): - UMCore - - EXImageLoader (2.1.1): + - EXImageLoader (2.2.0): + - ExpoModulesCore - React-Core - UMCore - - UMImageLoaderInterface - - EXImageManipulator (9.1.0): + - EXImageManipulator (9.2.2): + - ExpoModulesCore - UMCore - - UMFileSystemInterface - - UMImageLoaderInterface - - EXImagePicker (10.1.4): + - EXImagePicker (10.2.3): + - ExpoModulesCore - UMCore - - UMFileSystemInterface - - UMPermissionsInterface - - EXKeepAwake (9.1.2): + - EXKeepAwake (9.2.0): - UMCore - - EXLocalization (10.1.0): + - EXLocalization (10.2.0): - UMCore - - EXNotifications (0.11.6): + - EXNotifications (0.12.3): + - ExpoModulesCore - UMCore - - UMPermissionsInterface - - EXPermissions (12.0.1): + - EXPermissions (12.1.1): + - ExpoModulesCore - UMCore - - UMPermissionsInterface - - EXRandom (11.1.2): + - ExpoModulesCore (0.2.0): + - ExpoModulesCore/Core (= 0.2.0) + - ExpoModulesCore/Interfaces (= 0.2.0) + - UMCore + - ExpoModulesCore/Core (0.2.0): + - UMCore + - ExpoModulesCore/Interfaces (0.2.0): + - ExpoModulesCore/Core + - UMCore + - EXRandom (11.2.0): - React-Core - - EXScreenCapture (3.1.0): + - EXScreenCapture (3.2.0): - UMCore - - EXSecureStore (10.1.0): + - EXSecureStore (10.2.0): - UMCore - - EXSplashScreen (0.10.2): + - EXSplashScreen (0.11.4): - React-Core - UMCore - - EXStoreReview (4.0.2): + - EXStoreReview (4.1.0): - UMCore - - EXUpdates (0.3.5): - - React + - EXStructuredHeaders (1.1.1): - UMCore - - EXVideoThumbnails (5.1.0): + - EXUpdates (0.8.5): + - EXStructuredHeaders + - EXUpdatesInterface + - React-Core - UMCore - - UMFileSystemInterface - - EXWebBrowser (9.1.0): + - EXUpdatesInterface (0.2.2) + - EXVideoThumbnails (5.2.1): + - ExpoModulesCore - UMCore - - FBLazyVector (0.64.1) - - FBReactNativeSpec (0.64.1): + - EXWebBrowser (9.2.0): + - UMCore + - FBLazyVector (0.64.2) + - FBReactNativeSpec (0.64.2): - RCT-Folly (= 2020.01.13.00) - - RCTRequired (= 0.64.1) - - RCTTypeSafety (= 0.64.1) - - React-Core (= 0.64.1) - - React-jsi (= 0.64.1) - - ReactCommon/turbomodule/core (= 0.64.1) + - RCTRequired (= 0.64.2) + - RCTTypeSafety (= 0.64.2) + - React-Core (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) - Firebase/Core (7.7.0): - Firebase/CoreOnly - FirebaseAnalytics (= 7.7.0) @@ -119,27 +130,25 @@ PODS: - GoogleUtilities/Environment (~> 7.2) - nanopb (~> 2.30907.0) - PromisesObjC (~> 1.2) - - GoogleUtilities/AppDelegateSwizzler (7.4.1): + - GoogleUtilities/AppDelegateSwizzler (7.5.1): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - - GoogleUtilities/Environment (7.4.1): - - PromisesObjC (~> 1.2) - - GoogleUtilities/Logger (7.4.1): + - GoogleUtilities/Environment (7.5.1): + - PromisesObjC (< 3.0, >= 1.2) + - GoogleUtilities/Logger (7.5.1): - GoogleUtilities/Environment - - GoogleUtilities/MethodSwizzler (7.4.1): + - GoogleUtilities/MethodSwizzler (7.5.1): - GoogleUtilities/Logger - - GoogleUtilities/Network (7.4.1): + - GoogleUtilities/Network (7.5.1): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (7.4.1)" - - GoogleUtilities/Reachability (7.4.1): + - "GoogleUtilities/NSData+zlib (7.5.1)" + - GoogleUtilities/Reachability (7.5.1): - GoogleUtilities/Logger - - GoogleUtilities/UserDefaults (7.4.1): + - GoogleUtilities/UserDefaults (7.5.1): - GoogleUtilities/Logger - - hermes-engine (0.7.2) - - libevent (2.1.12) - libwebp (1.2.0): - libwebp/demux (= 1.2.0) - libwebp/mux (= 1.2.0) @@ -164,294 +173,277 @@ PODS: - boost-for-react-native - DoubleConversion - glog - - RCT-Folly/Futures (2020.01.13.00): - - boost-for-react-native - - DoubleConversion - - glog - - libevent - - RCTRequired (0.64.1) - - RCTTypeSafety (0.64.1): - - FBLazyVector (= 0.64.1) + - RCTRequired (0.64.2) + - RCTTypeSafety (0.64.2): + - FBLazyVector (= 0.64.2) - RCT-Folly (= 2020.01.13.00) - - RCTRequired (= 0.64.1) - - React-Core (= 0.64.1) - - React (0.64.1): - - React-Core (= 0.64.1) - - React-Core/DevSupport (= 0.64.1) - - React-Core/RCTWebSocket (= 0.64.1) - - React-RCTActionSheet (= 0.64.1) - - React-RCTAnimation (= 0.64.1) - - React-RCTBlob (= 0.64.1) - - React-RCTImage (= 0.64.1) - - React-RCTLinking (= 0.64.1) - - React-RCTNetwork (= 0.64.1) - - React-RCTSettings (= 0.64.1) - - React-RCTText (= 0.64.1) - - React-RCTVibration (= 0.64.1) - - React-callinvoker (0.64.1) - - React-Core (0.64.1): + - RCTRequired (= 0.64.2) + - React-Core (= 0.64.2) + - React (0.64.2): + - React-Core (= 0.64.2) + - React-Core/DevSupport (= 0.64.2) + - React-Core/RCTWebSocket (= 0.64.2) + - React-RCTActionSheet (= 0.64.2) + - React-RCTAnimation (= 0.64.2) + - React-RCTBlob (= 0.64.2) + - React-RCTImage (= 0.64.2) + - React-RCTLinking (= 0.64.2) + - React-RCTNetwork (= 0.64.2) + - React-RCTSettings (= 0.64.2) + - React-RCTText (= 0.64.2) + - React-RCTVibration (= 0.64.2) + - React-callinvoker (0.64.2) + - React-Core (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - - React-Core/Default (= 0.64.1) - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-Core/Default (= 0.64.2) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/CoreModulesHeaders (0.64.1): + - React-Core/CoreModulesHeaders (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/Default (0.64.1): + - React-Core/Default (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/DevSupport (0.64.1): + - React-Core/DevSupport (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - - React-Core/Default (= 0.64.1) - - React-Core/RCTWebSocket (= 0.64.1) - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-jsinspector (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-Core/Default (= 0.64.2) + - React-Core/RCTWebSocket (= 0.64.2) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-jsinspector (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/Hermes (0.64.1): - - glog - - hermes-engine - - RCT-Folly (= 2020.01.13.00) - - RCT-Folly/Futures - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) - - Yoga - - React-Core/RCTActionSheetHeaders (0.64.1): + - React-Core/RCTActionSheetHeaders (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTAnimationHeaders (0.64.1): + - React-Core/RCTAnimationHeaders (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTBlobHeaders (0.64.1): + - React-Core/RCTBlobHeaders (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTImageHeaders (0.64.1): + - React-Core/RCTImageHeaders (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTLinkingHeaders (0.64.1): + - React-Core/RCTLinkingHeaders (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTNetworkHeaders (0.64.1): + - React-Core/RCTNetworkHeaders (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTSettingsHeaders (0.64.1): + - React-Core/RCTSettingsHeaders (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTTextHeaders (0.64.1): + - React-Core/RCTTextHeaders (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTVibrationHeaders (0.64.1): + - React-Core/RCTVibrationHeaders (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - React-Core/Default - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-Core/RCTWebSocket (0.64.1): + - React-Core/RCTWebSocket (0.64.2): - glog - RCT-Folly (= 2020.01.13.00) - - React-Core/Default (= 0.64.1) - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsiexecutor (= 0.64.1) - - React-perflogger (= 0.64.1) + - React-Core/Default (= 0.64.2) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsiexecutor (= 0.64.2) + - React-perflogger (= 0.64.2) - Yoga - - React-CoreModules (0.64.1): - - FBReactNativeSpec (= 0.64.1) + - React-CoreModules (0.64.2): + - FBReactNativeSpec (= 0.64.2) - RCT-Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.64.1) - - React-Core/CoreModulesHeaders (= 0.64.1) - - React-jsi (= 0.64.1) - - React-RCTImage (= 0.64.1) - - ReactCommon/turbomodule/core (= 0.64.1) - - React-cxxreact (0.64.1): + - RCTTypeSafety (= 0.64.2) + - React-Core/CoreModulesHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - React-RCTImage (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-cxxreact (0.64.2): - boost-for-react-native (= 1.63.0) - DoubleConversion - glog - RCT-Folly (= 2020.01.13.00) - - React-callinvoker (= 0.64.1) - - React-jsi (= 0.64.1) - - React-jsinspector (= 0.64.1) - - React-perflogger (= 0.64.1) - - React-runtimeexecutor (= 0.64.1) - - React-jsi (0.64.1): + - React-callinvoker (= 0.64.2) + - React-jsi (= 0.64.2) + - React-jsinspector (= 0.64.2) + - React-perflogger (= 0.64.2) + - React-runtimeexecutor (= 0.64.2) + - React-jsi (0.64.2): - boost-for-react-native (= 1.63.0) - DoubleConversion - glog - RCT-Folly (= 2020.01.13.00) - - React-jsi/Default (= 0.64.1) - - React-jsi/Default (0.64.1): + - React-jsi/Default (= 0.64.2) + - React-jsi/Default (0.64.2): - boost-for-react-native (= 1.63.0) - DoubleConversion - glog - RCT-Folly (= 2020.01.13.00) - - React-jsiexecutor (0.64.1): + - React-jsiexecutor (0.64.2): - DoubleConversion - glog - RCT-Folly (= 2020.01.13.00) - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-perflogger (= 0.64.1) - - React-jsinspector (0.64.1) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-perflogger (= 0.64.2) + - React-jsinspector (0.64.2) - react-native-blur (0.8.0): - React - - react-native-blurhash (1.1.4): + - react-native-blurhash (1.1.5): - React-Core - react-native-cameraroll (4.0.4): - React-Core - - react-native-netinfo (6.0.0): + - react-native-netinfo (6.0.2): - React-Core - - react-native-pager-view (5.1.9): + - react-native-pager-view (5.4.6): - React-Core - react-native-safe-area-context (3.2.0): - React-Core - react-native-segmented-control (2.2.2): - React-Core - - React-perflogger (0.64.1) - - React-RCTActionSheet (0.64.1): - - React-Core/RCTActionSheetHeaders (= 0.64.1) - - React-RCTAnimation (0.64.1): - - FBReactNativeSpec (= 0.64.1) + - React-perflogger (0.64.2) + - React-RCTActionSheet (0.64.2): + - React-Core/RCTActionSheetHeaders (= 0.64.2) + - React-RCTAnimation (0.64.2): + - FBReactNativeSpec (= 0.64.2) - RCT-Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.64.1) - - React-Core/RCTAnimationHeaders (= 0.64.1) - - React-jsi (= 0.64.1) - - ReactCommon/turbomodule/core (= 0.64.1) - - React-RCTBlob (0.64.1): - - FBReactNativeSpec (= 0.64.1) + - RCTTypeSafety (= 0.64.2) + - React-Core/RCTAnimationHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTBlob (0.64.2): + - FBReactNativeSpec (= 0.64.2) - RCT-Folly (= 2020.01.13.00) - - React-Core/RCTBlobHeaders (= 0.64.1) - - React-Core/RCTWebSocket (= 0.64.1) - - React-jsi (= 0.64.1) - - React-RCTNetwork (= 0.64.1) - - ReactCommon/turbomodule/core (= 0.64.1) - - React-RCTImage (0.64.1): - - FBReactNativeSpec (= 0.64.1) + - React-Core/RCTBlobHeaders (= 0.64.2) + - React-Core/RCTWebSocket (= 0.64.2) + - React-jsi (= 0.64.2) + - React-RCTNetwork (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTImage (0.64.2): + - FBReactNativeSpec (= 0.64.2) - RCT-Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.64.1) - - React-Core/RCTImageHeaders (= 0.64.1) - - React-jsi (= 0.64.1) - - React-RCTNetwork (= 0.64.1) - - ReactCommon/turbomodule/core (= 0.64.1) - - React-RCTLinking (0.64.1): - - FBReactNativeSpec (= 0.64.1) - - React-Core/RCTLinkingHeaders (= 0.64.1) - - React-jsi (= 0.64.1) - - ReactCommon/turbomodule/core (= 0.64.1) - - React-RCTNetwork (0.64.1): - - FBReactNativeSpec (= 0.64.1) + - RCTTypeSafety (= 0.64.2) + - React-Core/RCTImageHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - React-RCTNetwork (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTLinking (0.64.2): + - FBReactNativeSpec (= 0.64.2) + - React-Core/RCTLinkingHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTNetwork (0.64.2): + - FBReactNativeSpec (= 0.64.2) - RCT-Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.64.1) - - React-Core/RCTNetworkHeaders (= 0.64.1) - - React-jsi (= 0.64.1) - - ReactCommon/turbomodule/core (= 0.64.1) - - React-RCTSettings (0.64.1): - - FBReactNativeSpec (= 0.64.1) + - RCTTypeSafety (= 0.64.2) + - React-Core/RCTNetworkHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTSettings (0.64.2): + - FBReactNativeSpec (= 0.64.2) - RCT-Folly (= 2020.01.13.00) - - RCTTypeSafety (= 0.64.1) - - React-Core/RCTSettingsHeaders (= 0.64.1) - - React-jsi (= 0.64.1) - - ReactCommon/turbomodule/core (= 0.64.1) - - React-RCTText (0.64.1): - - React-Core/RCTTextHeaders (= 0.64.1) - - React-RCTVibration (0.64.1): - - FBReactNativeSpec (= 0.64.1) + - RCTTypeSafety (= 0.64.2) + - React-Core/RCTSettingsHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-RCTText (0.64.2): + - React-Core/RCTTextHeaders (= 0.64.2) + - React-RCTVibration (0.64.2): + - FBReactNativeSpec (= 0.64.2) - RCT-Folly (= 2020.01.13.00) - - React-Core/RCTVibrationHeaders (= 0.64.1) - - React-jsi (= 0.64.1) - - ReactCommon/turbomodule/core (= 0.64.1) - - React-runtimeexecutor (0.64.1): - - React-jsi (= 0.64.1) - - ReactCommon/turbomodule/core (0.64.1): + - React-Core/RCTVibrationHeaders (= 0.64.2) + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (= 0.64.2) + - React-runtimeexecutor (0.64.2): + - React-jsi (= 0.64.2) + - ReactCommon/turbomodule/core (0.64.2): - DoubleConversion - glog - RCT-Folly (= 2020.01.13.00) - - React-callinvoker (= 0.64.1) - - React-Core (= 0.64.1) - - React-cxxreact (= 0.64.1) - - React-jsi (= 0.64.1) - - React-perflogger (= 0.64.1) - - RNCAsyncStorage (1.15.4): + - React-callinvoker (= 0.64.2) + - React-Core (= 0.64.2) + - React-cxxreact (= 0.64.2) + - React-jsi (= 0.64.2) + - React-perflogger (= 0.64.2) + - RNCAsyncStorage (1.15.8): - React-Core - - RNCMaskedView (0.1.11): - - React - - RNFastImage (8.3.4): + - RNFastImage (8.5.11): - React-Core - - SDWebImage (~> 5.8) - - SDWebImageWebPCoder (~> 0.6.1) + - SDWebImage (~> 5.11.1) + - SDWebImageWebPCoder (~> 0.8.4) - RNGestureHandler (1.10.3): - React-Core - - RNReanimated (2.1.0): + - RNReanimated (2.2.2): - DoubleConversion - FBLazyVector - FBReactNativeSpec @@ -480,44 +472,30 @@ PODS: - React-RCTVibration - ReactCommon/turbomodule/core - Yoga - - RNScreens (3.3.0): + - RNScreens (3.8.0): - React-Core - React-RCTImage - - RNSentry (2.4.3): + - RNSentry (2.6.2): - React-Core - - Sentry (= 6.1.4) + - Sentry (= 7.1.4) - RNSVG (12.1.1): - React - SDWebImage (5.11.1): - SDWebImage/Core (= 5.11.1) - SDWebImage/Core (5.11.1) - - SDWebImageWebPCoder (0.6.1): + - SDWebImageWebPCoder (0.8.4): - libwebp (~> 1.0) - - SDWebImage/Core (~> 5.7) - - Sentry (6.1.4): - - Sentry/Core (= 6.1.4) - - Sentry/Core (6.1.4) - - UMAppLoader (2.1.0) - - UMBarCodeScannerInterface (6.1.0): - - UMCore - - UMCameraInterface (6.1.0): - - UMCore - - UMConstantsInterface (6.1.0): - - UMCore - - UMCore (7.1.0) - - UMFaceDetectorInterface (6.1.0) - - UMFileSystemInterface (6.1.0) - - UMFontInterface (6.1.0) - - UMImageLoaderInterface (6.1.0) - - UMPermissionsInterface (6.1.0): - - UMCore - - UMReactNativeAdapter (6.2.2): + - SDWebImage/Core (~> 5.10) + - Sentry (7.1.4): + - Sentry/Core (= 7.1.4) + - Sentry/Core (7.1.4) + - UMAppLoader (2.2.0) + - UMCore (7.1.2) + - UMReactNativeAdapter (6.3.9): + - ExpoModulesCore - React-Core - UMCore - - UMFontInterface - - UMSensorsInterface (6.1.0): - - UMCore - - UMTaskManagerInterface (6.1.0): + - UMTaskManagerInterface (6.2.0): - UMCore - Yoga (1.14.0) @@ -525,7 +503,7 @@ DEPENDENCIES: - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - EXApplication (from `../node_modules/expo-application/ios`) - EXAV (from `../node_modules/expo-av/ios`) - - EXConstants (from `../node_modules/expo-constants/ios`) + - EXConstants (from `../node_modules/react-native-unimodules/node_modules/expo-constants/ios`) - EXCrypto (from `../node_modules/expo-crypto/ios`) - EXDevice (from `../node_modules/expo-device/ios`) - EXErrorRecovery (from `../node_modules/expo-error-recovery/ios`) @@ -541,19 +519,20 @@ DEPENDENCIES: - EXLocalization (from `../node_modules/expo-localization/ios`) - EXNotifications (from `../node_modules/expo-notifications/ios`) - EXPermissions (from `../node_modules/expo-permissions/ios`) + - ExpoModulesCore (from `../node_modules/expo-modules-core/ios`) - EXRandom (from `../node_modules/expo-random/ios`) - EXScreenCapture (from `../node_modules/expo-screen-capture/ios`) - EXSecureStore (from `../node_modules/expo-secure-store/ios`) - EXSplashScreen (from `../node_modules/expo-splash-screen/ios`) - EXStoreReview (from `../node_modules/expo-store-review/ios`) + - EXStructuredHeaders (from `../node_modules/expo-structured-headers/ios`) - EXUpdates (from `../node_modules/expo-updates/ios`) + - EXUpdatesInterface (from `../node_modules/expo-updates-interface/ios`) - EXVideoThumbnails (from `../node_modules/expo-video-thumbnails/ios`) - EXWebBrowser (from `../node_modules/expo-web-browser/ios`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - - hermes-engine (~> 0.7.2) - - libevent (~> 2.1.12) - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) @@ -561,7 +540,6 @@ DEPENDENCIES: - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - React-Core (from `../node_modules/react-native/`) - React-Core/DevSupport (from `../node_modules/react-native/`) - - React-Core/Hermes (from `../node_modules/react-native/`) - React-Core/RCTWebSocket (from `../node_modules/react-native/`) - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) @@ -588,7 +566,6 @@ DEPENDENCIES: - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" - - "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)" - RNFastImage (from `../node_modules/react-native-fast-image`) - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNReanimated (from `../node_modules/react-native-reanimated`) @@ -596,17 +573,8 @@ DEPENDENCIES: - "RNSentry (from `../node_modules/@sentry/react-native`)" - RNSVG (from `../node_modules/react-native-svg`) - UMAppLoader (from `../node_modules/unimodules-app-loader/ios`) - - UMBarCodeScannerInterface (from `../node_modules/unimodules-barcode-scanner-interface/ios`) - - UMCameraInterface (from `../node_modules/unimodules-camera-interface/ios`) - - UMConstantsInterface (from `../node_modules/unimodules-constants-interface/ios`) - "UMCore (from `../node_modules/@unimodules/core/ios`)" - - UMFaceDetectorInterface (from `../node_modules/unimodules-face-detector-interface/ios`) - - UMFileSystemInterface (from `../node_modules/unimodules-file-system-interface/ios`) - - UMFontInterface (from `../node_modules/unimodules-font-interface/ios`) - - UMImageLoaderInterface (from `../node_modules/unimodules-image-loader-interface/ios`) - - UMPermissionsInterface (from `../node_modules/unimodules-permissions-interface/ios`) - "UMReactNativeAdapter (from `../node_modules/@unimodules/react-native-adapter/ios`)" - - UMSensorsInterface (from `../node_modules/unimodules-sensors-interface/ios`) - UMTaskManagerInterface (from `../node_modules/unimodules-task-manager-interface/ios`) - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) @@ -621,8 +589,6 @@ SPEC REPOS: - GoogleAppMeasurement - GoogleDataTransport - GoogleUtilities - - hermes-engine - - libevent - libwebp - nanopb - PromisesObjC @@ -638,7 +604,7 @@ EXTERNAL SOURCES: EXAV: :path: "../node_modules/expo-av/ios" EXConstants: - :path: "../node_modules/expo-constants/ios" + :path: "../node_modules/react-native-unimodules/node_modules/expo-constants/ios" EXCrypto: :path: "../node_modules/expo-crypto/ios" EXDevice: @@ -669,6 +635,8 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-notifications/ios" EXPermissions: :path: "../node_modules/expo-permissions/ios" + ExpoModulesCore: + :path: "../node_modules/expo-modules-core/ios" EXRandom: :path: "../node_modules/expo-random/ios" EXScreenCapture: @@ -679,8 +647,12 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-splash-screen/ios" EXStoreReview: :path: "../node_modules/expo-store-review/ios" + EXStructuredHeaders: + :path: "../node_modules/expo-structured-headers/ios" EXUpdates: :path: "../node_modules/expo-updates/ios" + EXUpdatesInterface: + :path: "../node_modules/expo-updates-interface/ios" EXVideoThumbnails: :path: "../node_modules/expo-video-thumbnails/ios" EXWebBrowser: @@ -753,8 +725,6 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" RNCAsyncStorage: :path: "../node_modules/@react-native-async-storage/async-storage" - RNCMaskedView: - :path: "../node_modules/@react-native-community/masked-view" RNFastImage: :path: "../node_modules/react-native-fast-image" RNGestureHandler: @@ -769,28 +739,10 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-svg" UMAppLoader: :path: "../node_modules/unimodules-app-loader/ios" - UMBarCodeScannerInterface: - :path: "../node_modules/unimodules-barcode-scanner-interface/ios" - UMCameraInterface: - :path: "../node_modules/unimodules-camera-interface/ios" - UMConstantsInterface: - :path: "../node_modules/unimodules-constants-interface/ios" UMCore: :path: "../node_modules/@unimodules/core/ios" - UMFaceDetectorInterface: - :path: "../node_modules/unimodules-face-detector-interface/ios" - UMFileSystemInterface: - :path: "../node_modules/unimodules-file-system-interface/ios" - UMFontInterface: - :path: "../node_modules/unimodules-font-interface/ios" - UMImageLoaderInterface: - :path: "../node_modules/unimodules-image-loader-interface/ios" - UMPermissionsInterface: - :path: "../node_modules/unimodules-permissions-interface/ios" UMReactNativeAdapter: :path: "../node_modules/@unimodules/react-native-adapter/ios" - UMSensorsInterface: - :path: "../node_modules/unimodules-sensors-interface/ios" UMTaskManagerInterface: :path: "../node_modules/unimodules-task-manager-interface/ios" Yoga: @@ -799,34 +751,37 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de - EXApplication: 4797b8b37f0b0470f587fdccf6407f44b50d18b5 - EXAV: f7c1b9af3aff7834cbdbe3e002d1f70e21c38320 - EXConstants: c4dd28acc12039c999612507a5f935556f2c86ce - EXCrypto: 9cbeb90f6c60a8ae9f26242fd2db916b21c55700 - EXDevice: 01f54314f618aa4098893f66cd8f2a8a411f33ee - EXErrorRecovery: 720641265b8cf95e6cdeb1884ac38e794a352488 - EXFileSystem: dcf2273f49431e5037347c733a2dc5d08e0d0a9e - EXFirebaseAnalytics: aa820eafe8527a32f65a285047ce475e622c7e8f - EXFirebaseCore: 7865e37021ddcff5c575a4598686a2939d6c4183 - EXFont: d6fb79f9863120f0d0b26b0c2d1453bc9511e9df - EXHaptics: 2de40c5f50a9e78da92c209db06db5134d8cac0b - EXImageLoader: da941c9399e01ec28f2d5b270bdd21f2c8ca596c - EXImageManipulator: a099e4694070c7cb86aa0b0b1afa3ea184153a7d - EXImagePicker: dd05b8a5cb782c79d07d1d72e5850c6acc2b9a37 - EXKeepAwake: d4e4a3ed8c1c4fd940dd62fc5a8be2a190371fd4 - EXLocalization: f139efe4a06be1041815879959346e3d437a6e93 - EXNotifications: c13e078d83ce01c7aeb8e3f44a48c13f50099291 - EXPermissions: 8f8c1c05580c4e02d4ee2c8dd74bfe173ff6a723 - EXRandom: cbd66cd45434a494f5ef98650eec1f8d78b90270 - EXScreenCapture: 2903dace06f2d06cc161017637cc4cbfcaa98986 - EXSecureStore: da5a255445bb6ee8b8ac54f65412bc803272bd87 - EXSplashScreen: a9baaf4fa866003884c90ba049f18760d6a8ce39 - EXStoreReview: b1f68ed0369b0f1c443214ac8d6881ef3b64de9a - EXUpdates: 74b39409f68eca207075d87b0077bdf37865a8bf - EXVideoThumbnails: cd257fc6e07884a704a5674d362a6410933acb68 - EXWebBrowser: 0b466c50e5ff61c9758095d49d5081e3229d77ac - FBLazyVector: 7b423f9e248eae65987838148c36eec1dbfe0b53 - FBReactNativeSpec: 5058d1917c80dca4b9ed89bdf94385315939ab80 + EXApplication: 9ff2a206009d6e55bca6c20b3f33d07986b51ef3 + EXAV: 67bcc1d0afeb1fab854b206c84b9f2afbd61d0cd + EXConstants: 4cb52b6d8f636c767104a44bf7db3873e9c01a6f + EXCrypto: 46e28f1eb7ec3e2ae5aab652fe1dc4d46bafb386 + EXDevice: 6f1eed02c099f5b382a12a40406c58868892aba6 + EXErrorRecovery: 404d827bc7d42f306c062d58a60b06afc4d082b3 + EXFileSystem: 0a04aba8da751b9ac954065911bcf166503f8267 + EXFirebaseAnalytics: ca01838167729b67f838a673e4b3e0637faec118 + EXFirebaseCore: 9b5380fd62fce3c790fa1d6727a8d7cbbef4f0fb + EXFont: 9846ba1bb6f5f5aed44e20eea3ac70693323832d + EXHaptics: 6dc4307ab0794fe7a87ec8d7d1c299cf103d6cb3 + EXImageLoader: d3531a3fe530b22925c19977cb53bb43e3821fe6 + EXImageManipulator: c9af8e8dc6543fdca23693eae280e388b2f93fb0 + EXImagePicker: 414a3663910fd6604248e84c9c77a0501ae0d18b + EXKeepAwake: f4105ef469be7b283f66ce2d7234bb71ac80cd26 + EXLocalization: 356f4e16a606cec21a77d6250528fde526152b45 + EXNotifications: 171ccaf17643811673c78f4c4830560d6e5a92aa + EXPermissions: 916efb5b817cb0a40160c0cd2f369af3c23a78be + ExpoModulesCore: 2734852616127a6c1fc23012197890a6f3763dc7 + EXRandom: ecb71f5d01991f29bb0277f8a2c35d168f85d637 + EXScreenCapture: c51844407fbac8bbca4415467bc43f2b7764d225 + EXSecureStore: 1aa80d49a3a101418bbd2675e2a0d32dceea10c2 + EXSplashScreen: 847e0d8026731c1090bf269ede3e15ac87d88958 + EXStoreReview: 40674cc897a6d7fd249969b86d1833f67b99170a + EXStructuredHeaders: e52b880264d15b8ad07d36670226c29476af6334 + EXUpdates: 013d26649cb6ab4f8d8d80c35d3d4be150b47e7c + EXUpdatesInterface: b68e78b912a03fff7901a5f46ec200c45e3506a5 + EXVideoThumbnails: 442c3abadb51a81551a3b53705b7560de390e6f7 + EXWebBrowser: 76783ba5dcb8699237746ecf41a9643d428a4cc5 + FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b + FBReactNativeSpec: 23c392d9bbc0bef14737ae5109976815b182edcf Firebase: cd2ab85eec8170dc260186159f21072ecb679ad5 FirebaseAnalytics: f3f8f75de34fe04141a69bb1c4bd7e24a80178e1 FirebaseCore: ac35d680a0bf32319a59966a1478e0741536b97b @@ -835,68 +790,56 @@ SPEC CHECKSUMS: glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 GoogleAppMeasurement: 0c3b134b2c0a90c4c24833873894bfe0e42a0384 GoogleDataTransport: 8b0e733ea77c9218778e5a9e34ba9508b8328939 - GoogleUtilities: f8a43108b38a68eebe8b3540e1f4f2d28843ce20 - hermes-engine: 7d97ba46a1e29bacf3e3c61ecb2804a5ddd02d4f - libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 + GoogleUtilities: 3df19e3c24f7bbc291d8b5809aa6b0d41e642437 libwebp: e90b9c01d99205d03b6bb8f2c8c415e5a4ef66f0 nanopb: 59221d7f958fb711001e6a449489542d92ae113e PromisesObjC: 3113f7f76903778cf4a0586bd1ab89329a0b7b97 RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c - RCTRequired: ec2ebc96b7bfba3ca5c32740f5a0c6a014a274d2 - RCTTypeSafety: 22567f31e67c3e088c7ac23ea46ab6d4779c0ea5 - React: a241e3dbb1e91d06332f1dbd2b3ab26e1a4c4b9d - React-callinvoker: da4d1c6141696a00163960906bc8a55b985e4ce4 - React-Core: 46ba164c437d7dac607b470c83c8308b05799748 - React-CoreModules: 217bd14904491c7b9940ff8b34a3fe08013c2f14 - React-cxxreact: 0090588ae6660c4615d3629fdd5c768d0983add4 - React-jsi: 5de8204706bd872b78ea646aee5d2561ca1214b6 - React-jsiexecutor: 124e8f99992490d0d13e0649d950d3e1aae06fe9 - React-jsinspector: 500a59626037be5b3b3d89c5151bc3baa9abf1a9 + RCTRequired: 6d3e854f0e7260a648badd0d44fc364bc9da9728 + RCTTypeSafety: c1f31d19349c6b53085766359caac425926fafaa + React: bda6b6d7ae912de97d7a61aa5c160db24aa2ad69 + React-callinvoker: 9840ea7e8e88ed73d438edb725574820b29b5baa + React-Core: b5e385da7ce5f16a220fc60fd0749eae2c6120f0 + React-CoreModules: 17071a4e2c5239b01585f4aa8070141168ab298f + React-cxxreact: 9be7b6340ed9f7c53e53deca7779f07cd66525ba + React-jsi: 67747b9722f6dab2ffe15b011bcf6b3f2c3f1427 + React-jsiexecutor: 80c46bd381fd06e418e0d4f53672dc1d1945c4c3 + React-jsinspector: cc614ec18a9ca96fd275100c16d74d62ee11f0ae react-native-blur: cad4d93b364f91e7b7931b3fa935455487e5c33c - react-native-blurhash: ec98d751a9cb9075cef0b9e3188244c517d6ab22 + react-native-blurhash: d978f8017ed091d9e1179775fe7bac14297e6e1e react-native-cameraroll: 88f4e62d9ecd0e1f253abe4f685474f2ea14bfa2 - react-native-netinfo: e849fc21ca2f4128a5726c801a82fc6f4a6db50d - react-native-pager-view: 14653de580178af7e65aa7e3fa08b4f243c86d4d + react-native-netinfo: 92e6e4476eb8bf6fc2d7c0a6ca0a1406f663d73a + react-native-pager-view: b90963d848e777def6714ab7fd40d02fa797e930 react-native-safe-area-context: f0906bf8bc9835ac9a9d3f97e8bde2a997d8da79 react-native-segmented-control: 65df6cd0619b780b3843d574a72d4c7cec396097 - React-perflogger: aad6d4b4a267936b3667260d1f649b6f6069a675 - React-RCTActionSheet: fc376be462c9c8d6ad82c0905442fd77f82a9d2a - React-RCTAnimation: ba0a1c3a2738be224a08092fa7f1b444ab77d309 - React-RCTBlob: f758d4403fc5828a326dc69e27b41e1a92f34947 - React-RCTImage: ce57088705f4a8d03f6594b066a59c29143ba73e - React-RCTLinking: 852a3a95c65fa63f657a4b4e2d3d83a815e00a7c - React-RCTNetwork: 9d7ccb8a08d522d71700b4fb677d9fa28cccd118 - React-RCTSettings: d8aaf4389ff06114dee8c42ef5f0f2915946011e - React-RCTText: 809c12ed6b261796ba056c04fcd20d8b90bcc81d - React-RCTVibration: 4b99a7f5c6c0abbc5256410cc5425fb8531986e1 - React-runtimeexecutor: ff951a0c241bfaefc4940a3f1f1a229e7cb32fa6 - ReactCommon: bedc99ed4dae329c4fcf128d0c31b9115e5365ca - RNCAsyncStorage: f47a7e8f927f7c9da947491fc55752eb9ce17f2d - RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489 - RNFastImage: d4870d58f5936111c56218dbd7fcfc18e65b58ff + React-perflogger: 25373e382fed75ce768a443822f07098a15ab737 + React-RCTActionSheet: af7796ba49ffe4ca92e7277a5d992d37203f7da5 + React-RCTAnimation: 6a2e76ab50c6f25b428d81b76a5a45351c4d77aa + React-RCTBlob: 02a2887023e0eed99391b6445b2e23a2a6f9226d + React-RCTImage: ce5bf8e7438f2286d9b646a05d6ab11f38b0323d + React-RCTLinking: ccd20742de14e020cb5f99d5c7e0bf0383aefbd9 + React-RCTNetwork: dfb9d089ab0753e5e5f55fc4b1210858f7245647 + React-RCTSettings: b14aef2d83699e48b410fb7c3ba5b66cd3291ae2 + React-RCTText: 41a2e952dd9adc5caf6fb68ed46b275194d5da5f + React-RCTVibration: 24600e3b1aaa77126989bc58b6747509a1ba14f3 + React-runtimeexecutor: a9904c6d0218fb9f8b19d6dd88607225927668f9 + ReactCommon: 149906e01aa51142707a10665185db879898e966 + RNCAsyncStorage: e8b8d6320a0dd90eb610fb0d0b1ef90596697c69 + RNFastImage: 1f2cab428712a4baaf78d6169eaec7f622556dd7 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 - RNReanimated: b8c8004b43446e3c2709fe64b2b41072f87428ad - RNScreens: bf59f17fbf001f1025243eeed5f19419d3c11ef2 - RNSentry: 6f8f9ee7e4c939dcd35e5633b94d0e3782888e46 + RNReanimated: 241c586663f44f19a53883c63375fdd041253960 + RNScreens: 6e1ea5787989f92b0671049b808aef64fa1ef98c + RNSentry: 68644ef607b780551cc555f084869764f2566652 RNSVG: 551acb6562324b1d52a4e0758f7ca0ec234e278f SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d - SDWebImageWebPCoder: d0dac55073088d24b2ac1b191a71a8f8d0adac21 - Sentry: 9d055e2de30a77685e86b219acf02e59b82091fc - UMAppLoader: fe2708bb0ac5cd70052bc207d06aa3b7e72b9e97 - UMBarCodeScannerInterface: 79f92bea5f7af39b381a4c82298105ceb537408a - UMCameraInterface: 81ff46700da88435f17afedfc88915eaede7e6a6 - UMConstantsInterface: bb94dd46039dcde276ed50225b29e22785e604bf - UMCore: 60b35f4d217461f7b54934b0c5be67442871f01f - UMFaceDetectorInterface: 791eec55ffca1171992976b7eceb73e69e391c58 - UMFileSystemInterface: f72245e90ce78fa6427180ff0b0904ead13d8161 - UMFontInterface: 5843cff7db85a42ba629aaac53d33091c35524d3 - UMImageLoaderInterface: 9ddffeb644b3f45d4eb0c2f51a2fd95fd5c8d1a4 - UMPermissionsInterface: 40b72935a7d12a3f60dc6b7bb99ce47908380cb1 - UMReactNativeAdapter: 65ada852a648fcb6674acfbfe72ccb095f2f5b75 - UMSensorsInterface: a5e9db661e5d9ae214762033d725989880ae6993 - UMTaskManagerInterface: 203c11259d2699b5b3a4eda4adbc466f5cb5c561 - Yoga: a7de31c64fe738607e7a3803e3f591a4b1df7393 + SDWebImageWebPCoder: f93010f3f6c031e2f8fb3081ca4ee6966c539815 + Sentry: 1d3eb1a25f8c5333c88dd5603904a6d461cd9fcf + UMAppLoader: 21af63390e55c82e037fb9752d93114a80ecf16e + UMCore: ce3a4faa010239063b8343895b29a6d97b01069d + UMReactNativeAdapter: d03cefd0e4e4179ab8c490408589f1c8a6c8b785 + UMTaskManagerInterface: 2be431101b73604e64fbfffcf759336f9d8fccbb + Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac -PODFILE CHECKSUM: 34cad1fa3f14caa5b138177b6379ac2cba0e1087 +PODFILE CHECKSUM: ef8b50a8ef67c2c3062d4beeb7172184208da350 -COCOAPODS: 1.10.1 +COCOAPODS: 1.11.2 diff --git a/ios/tooot.xcodeproj/project.pbxproj b/ios/tooot.xcodeproj/project.pbxproj index 0e2771ea..34838708 100644 --- a/ios/tooot.xcodeproj/project.pbxproj +++ b/ios/tooot.xcodeproj/project.pbxproj @@ -148,7 +148,6 @@ 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */, - 5C5B41FC5F9DBE367CF7EF21 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -247,24 +246,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 5C5B41FC5F9DBE367CF7EF21 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-tooot/Pods-tooot-frameworks.sh", - "${PODS_ROOT}/hermes-engine/destroot/Library/Frameworks/iphoneos/hermes.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-tooot/Pods-tooot-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -438,7 +419,7 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 "; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -500,7 +481,7 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 i386"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64 "; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; diff --git a/ios/tooot/Supporting/Expo.plist b/ios/tooot/Supporting/Expo.plist index 51168cbe..bba13d22 100644 --- a/ios/tooot/Supporting/Expo.plist +++ b/ios/tooot/Supporting/Expo.plist @@ -11,7 +11,7 @@ EXUpdatesReleaseChannel 0-development EXUpdatesSDKVersion - 40.0.0 + 0 EXUpdatesURL https://exp.host/@xmflsct/tooot diff --git a/package.json b/package.json index 0f614641..bc35c345 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "tooot", "versions": { - "native": "210511", + "native": "210916", "major": 2, - "minor": 1, - "patch": 3, - "expo": "41.0.0" + "minor": 2, + "patch": 0, + "expo": "42.0.0" }, "description": "tooot app for Mastodon", "author": "xmflsct ", @@ -19,108 +19,97 @@ "android": "react-native run-android", "ios": "react-native run-ios", "app:build": "bundle exec fastlane build", - "test": "jest --watchAll", "release": "scripts/release.sh", "clean": "react-native-clean-project" }, "dependencies": { - "@expo/react-native-action-sheet": "^3.9.0", - "@neverdull-agency/expo-unlimited-secure-store": "^1.0.10", - "@react-native-async-storage/async-storage": "^1.15.4", - "@react-native-community/blur": "^3.6.0", - "@react-native-community/cameraroll": "^4.0.4", - "@react-native-community/masked-view": "0.1.11", - "@react-native-community/netinfo": "6.0.0", + "@expo/react-native-action-sheet": "3.11.0", + "@neverdull-agency/expo-unlimited-secure-store": "1.0.10", + "@react-native-async-storage/async-storage": "1.15.8", + "@react-native-community/blur": "3.6.0", + "@react-native-community/cameraroll": "4.0.4", + "@react-native-community/netinfo": "6.0.2", "@react-native-community/segmented-control": "2.2.2", - "@react-navigation/bottom-tabs": "^5.11.11", - "@react-navigation/native": "^5.9.4", - "@react-navigation/stack": "^5.14.5", - "@reduxjs/toolkit": "^1.5.1", - "@sentry/react-native": "^2.4.3", - "@sharcoux/slider": "^5.3.0", - "axios": "^0.21.1", - "expo": "^41.0.1", - "expo-auth-session": "~3.2.3", - "expo-av": "~9.1.2", - "expo-crypto": "~9.1.0", - "expo-firebase-analytics": "~4.0.2", - "expo-haptics": "~10.0.0", - "expo-image-manipulator": "~9.1.0", - "expo-image-picker": "~10.1.4", - "expo-linking": "~2.2.3", - "expo-localization": "~10.1.0", - "expo-notifications": "~0.11.6", - "expo-random": "~11.1.2", - "expo-screen-capture": "^3.1.0", - "expo-secure-store": "~10.1.0", - "expo-splash-screen": "~0.10.2", - "expo-status-bar": "~1.0.4", - "expo-store-review": "~4.0.2", - "expo-video-thumbnails": "~5.1.0", - "expo-web-browser": "~9.1.0", - "i18next": "^20.3.0", - "li": "^1.3.0", - "lodash": "^4.17.21", + "@react-navigation/bottom-tabs": "6.0.7", + "@react-navigation/native": "6.0.4", + "@react-navigation/native-stack": "6.2.2", + "@react-navigation/stack": "6.0.9", + "@reduxjs/toolkit": "1.6.1", + "@sentry/react-native": "2.6.2", + "@sharcoux/slider": "5.5.2", + "axios": "0.22.0", + "expo": "42.0.4", + "expo-auth-session": "3.3.1", + "expo-av": "9.2.3", + "expo-crypto": "9.2.0", + "expo-device": "^3.3.0", + "expo-firebase-analytics": "4.1.0", + "expo-haptics": "10.1.0", + "expo-image-manipulator": "9.2.2", + "expo-image-picker": "10.2.3", + "expo-linking": "2.3.1", + "expo-localization": "10.2.0", + "expo-notifications": "0.12.3", + "expo-permissions": "^12.1.1", + "expo-random": "11.2.0", + "expo-screen-capture": "3.2.0", + "expo-secure-store": "10.2.0", + "expo-splash-screen": "0.11.4", + "expo-status-bar": "1.0.4", + "expo-store-review": "4.1.0", + "expo-updates": "^0.8.5", + "expo-video-thumbnails": "^5.2.1", + "expo-web-browser": "9.2.0", + "i18next": "20.6.1", + "li": "1.3.0", + "lodash": "4.17.21", "react": "17.0.2", "react-dom": "17.0.2", - "react-i18next": "^11.9.0", - "react-native": "~0.64.1", - "react-native-animated-spinkit": "^1.5.2", - "react-native-blurhash": "^1.1.4", - "react-native-fast-image": "^8.3.4", - "react-native-feather": "^1.0.2", - "react-native-flash-message": "^0.1.23", - "react-native-gesture-handler": "~1.10.3", - "react-native-htmlview": "^0.16.0", - "react-native-pager-view": "5.1.9", - "react-native-reanimated": "~2.1.0", + "react-i18next": "11.12.0", + "react-native": "0.64.2", + "react-native-animated-spinkit": "1.5.2", + "react-native-blurhash": "1.1.5", + "react-native-fast-image": "8.5.11", + "react-native-feather": "1.1.2", + "react-native-flash-message": "0.2.0", + "react-native-gesture-handler": "1.10.3", + "react-native-htmlview": "0.16.0", + "react-native-pager-view": "5.4.6", + "react-native-reanimated": "2.2.2", "react-native-safe-area-context": "3.2.0", - "react-native-screens": "~3.3.0", + "react-native-screens": "3.8.0", "react-native-svg": "12.1.1", - "react-native-swipe-list-view": "^3.2.7", - "react-native-tab-view": "^3.0.1", - "react-native-unimodules": "~0.13.3", - "react-query": "^3.16.0", - "react-redux": "^7.2.4", - "react-timeago": "^5.2.0", - "redux-persist": "^6.0.0", - "rn-placeholder": "^3.0.3", - "sentry-expo": "^3.1.3", - "tslib": "^2.2.0", - "valid-url": "^1.0.9" + "react-native-swipe-list-view": "3.2.9", + "react-native-tab-view": "3.1.1", + "react-native-unimodules": "0.14.8", + "react-query": "3.25.1", + "react-redux": "7.2.5", + "react-timeago": "6.2.1", + "redux-persist": "6.0.0", + "rn-placeholder": "3.0.3", + "sentry-expo": "4.0.1", + "tslib": "2.3.1", + "valid-url": "1.0.9" }, "devDependencies": { - "@babel/core": "~7.14.3", - "@babel/plugin-proposal-optional-chaining": "^7.14.2", - "@babel/preset-typescript": "^7.13.0", - "@expo/config": "^3.3.43", - "@jest/types": "^26.6.2", - "@testing-library/jest-native": "^4.0.1", - "@testing-library/react-hooks": "^5.1.2", - "@testing-library/react-native": "^7.2.0", - "@types/jest": "^26.0.23", - "@types/lodash": "^4.14.170", - "@types/react": "~17.0.8", - "@types/react-dom": "~17.0.5", - "@types/react-native": "~0.64.6", - "@types/react-navigation": "^3.4.0", - "@types/react-redux": "^7.1.16", - "@types/react-test-renderer": "^17.0.1", - "@types/react-timeago": "^4.1.2", - "@types/valid-url": "^1.0.3", - "@welldone-software/why-did-you-render": "^6.1.4", - "babel-jest": "~26.6.3", - "babel-plugin-module-resolver": "^4.1.0", - "babel-plugin-transform-remove-console": "^6.9.4", - "chalk": "^4.1.1", - "dotenv": "^10.0.0", - "jest": "^26.6.3", - "jest-expo": "^41.0.0", - "nock": "^13.0.11", - "react-native-clean-project": "^3.6.4", - "react-navigation": "^4.4.4", - "react-navigation-stack": "^2.10.4", - "react-test-renderer": "^17.0.2", - "typescript": "~4.2.4" + "@babel/core": "7.15.5", + "@babel/plugin-proposal-optional-chaining": "7.14.5", + "@babel/preset-typescript": "7.15.0", + "@expo/config": "6.0.0", + "@types/lodash": "4.14.175", + "@types/react": "17.0.27", + "@types/react-dom": "17.0.9", + "@types/react-native": "0.64.13", + "@types/react-navigation": "3.4.0", + "@types/react-redux": "7.1.18", + "@types/react-timeago": "4.1.3", + "@types/valid-url": "1.0.3", + "@welldone-software/why-did-you-render": "6.2.1", + "babel-plugin-module-resolver": "4.1.0", + "babel-plugin-transform-remove-console": "6.9.4", + "chalk": "4.1.2", + "dotenv": "10.0.0", + "react-native-clean-project": "3.6.7", + "typescript": "4.4.3" } } diff --git a/scripts/release.sh b/scripts/release.sh index 8ba2bfd1..b7534c7e 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -5,4 +5,4 @@ if [ $# -ne 1 ]; then exit 1 fi -expo publish --target bare --release-channel=$1 \ No newline at end of file +expo publish --quiet --target bare --release-channel=$1 \ No newline at end of file diff --git a/src/@types/react-navigation.d.ts b/src/@types/react-navigation.d.ts deleted file mode 100644 index 5f522ea1..00000000 --- a/src/@types/react-navigation.d.ts +++ /dev/null @@ -1,152 +0,0 @@ -declare namespace Nav { - type RootStackParamList = { - 'Screen-Tabs': undefined - 'Screen-Actions': - | { - type: 'status' - queryKey: QueryKeyTimeline - rootQueryKey?: QueryKeyTimeline - status: Mastodon.Status - } - | { - type: 'account' - account: Mastodon.Account - } - | { - type: 'notifications_filter' - } - 'Screen-Announcements': { showAll: boolean } - 'Screen-Compose': - | { - type: 'edit' - incomingStatus: Mastodon.Status - replyToStatus?: Mastodon.Status - queryKey?: [ - 'Timeline', - { - page: App.Pages - hashtag?: Mastodon.Tag['name'] - list?: Mastodon.List['id'] - toot?: Mastodon.Status['id'] - account?: Mastodon.Account['id'] - } - ] - } - | { - type: 'reply' - incomingStatus: Mastodon.Status - accts: Mastodon.Account['acct'][] - queryKey?: [ - 'Timeline', - { - page: App.Pages - hashtag?: Mastodon.Tag['name'] - list?: Mastodon.List['id'] - toot?: Mastodon.Status['id'] - account?: Mastodon.Account['id'] - } - ] - } - | { - type: 'conversation' - accts: Mastodon.Account['acct'][] - } - | undefined - 'Screen-ImagesViewer': { - imageUrls: { - id: Mastodon.Attachment['id'] - preview_url: Mastodon.AttachmentImage['preview_url'] - url: Mastodon.AttachmentImage['url'] - remote_url?: Mastodon.AttachmentImage['remote_url'] - blurhash: Mastodon.AttachmentImage['blurhash'] - width?: number - height?: number - }[] - id: Mastodon.Attachment['id'] - } - } - - type ScreenComposeStackParamList = { - 'Screen-Compose-Root': undefined - 'Screen-Compose-EditAttachment': { index: number } - 'Screen-Compose-DraftsList': { timestamp: number } - } - - type ScreenTabsStackParamList = { - 'Tab-Local': undefined - 'Tab-Public': undefined - 'Tab-Compose': undefined - 'Tab-Notifications': undefined - 'Tab-Me': undefined - } - - type TabSharedStackParamList = { - 'Tab-Shared-Account': { - account: Mastodon.Account | Mastodon.Mention - } - 'Tab-Shared-Attachments': { account: Mastodon.Account } - 'Tab-Shared-Hashtag': { - hashtag: Mastodon.Tag['name'] - } - 'Tab-Shared-Search': { text: string | undefined } - 'Tab-Shared-Toot': { - toot: Mastodon.Status - rootQueryKey?: QueryKeyTimeline - } - 'Tab-Shared-Users': - | { - reference: 'accounts' - id: Mastodon.Account['id'] - type: 'following' | 'followers' - count: number - } - | { - reference: 'statuses' - id: Mastodon.Status['id'] - type: 'reblogged_by' | 'favourited_by' - count: number - } - } - - type TabLocalStackParamList = { - 'Tab-Local-Root': undefined - } & TabSharedStackParamList - - type TabPublicStackParamList = { - 'Tab-Public-Root': undefined - } & TabSharedStackParamList - - type TabNotificationsStackParamList = { - 'Tab-Notifications-Root': undefined - } & TabSharedStackParamList - - type TabMeStackParamList = { - 'Tab-Me-Root': undefined - 'Tab-Me-Bookmarks': undefined - 'Tab-Me-Conversations': undefined - 'Tab-Me-Favourites': undefined - 'Tab-Me-Lists': undefined - 'Tab-Me-Lists-List': { - list: Mastodon.List['id'] - title: Mastodon.List['title'] - } - 'Tab-Me-Profile': undefined - 'Tab-Me-Push': undefined - 'Tab-Me-Settings': undefined - 'Tab-Me-Settings-Fontsize': undefined - 'Tab-Me-Switch': undefined - } & TabSharedStackParamList - - type TabMeProfileStackParamList = { - 'Tab-Me-Profile-Root': undefined - 'Tab-Me-Profile-Name': { - display_name: Mastodon.Account['display_name'] - } - 'Tab-Me-Profile-Note': { - note: Mastodon.Source['note'] - } - 'Tab-Me-Profile-Fields': { - fields?: Mastodon.Source['fields'] - } - } -} diff --git a/src/Screens.tsx b/src/Screens.tsx index 955f9a31..b5fc58f5 100644 --- a/src/Screens.tsx +++ b/src/Screens.tsx @@ -1,13 +1,15 @@ -import { HeaderCenter, HeaderLeft } from '@components/Header' +import { HeaderLeft } from '@components/Header' import { displayMessage, Message, removeMessage } from '@components/Message' import navigationRef from '@helpers/navigationRef' import { useNetInfo } from '@react-native-community/netinfo' import { NavigationContainer } from '@react-navigation/native' +import { createNativeStackNavigator } from '@react-navigation/native-stack' import ScreenActions from '@screens/Actions' import ScreenAnnouncements from '@screens/Announcements' import ScreenCompose from '@screens/Compose' import ScreenImagesViewer from '@screens/ImagesViewer' import ScreenTabs from '@screens/Tabs' +import { RootStackParamList } from '@utils/navigation/navigators' import pushUseConnect from '@utils/push/useConnect' import pushUseReceive from '@utils/push/useReceive' import pushUseRespond from '@utils/push/useRespond' @@ -22,12 +24,11 @@ import { addScreenshotListener } from 'expo-screen-capture' import React, { useCallback, useEffect, useRef } from 'react' import { useTranslation } from 'react-i18next' import { Alert, Platform, StatusBar } from 'react-native' -import { createNativeStackNavigator } from 'react-native-screens/native-stack' import { onlineManager, useQueryClient } from 'react-query' import { useDispatch, useSelector } from 'react-redux' import * as Sentry from 'sentry-expo' -const Stack = createNativeStackNavigator() +const Stack = createNativeStackNavigator() export interface Props { localCorrupt?: string @@ -71,9 +72,9 @@ const Screens: React.FC = ({ localCorrupt }) => { (prev, next) => prev.length === next.length ) const queryClient = useQueryClient() - pushUseConnect({ navigationRef, mode, t, instances, dispatch }) - pushUseReceive({ navigationRef, queryClient, instances }) - pushUseRespond({ navigationRef, queryClient, instances, dispatch }) + pushUseConnect({ mode, t, instances, dispatch }) + pushUseReceive({ queryClient, instances }) + pushUseRespond({ queryClient, instances, dispatch }) // Prevent screenshot alert useEffect(() => { @@ -96,7 +97,7 @@ const Screens: React.FC = ({ localCorrupt }) => { type: 'error', mode }) - navigationRef.current?.navigate('Screen-Tabs', { + navigationRef.navigate('Screen-Tabs', { screen: 'Tab-Me' }) } @@ -114,7 +115,7 @@ const Screens: React.FC = ({ localCorrupt }) => { // Callbacks const navigationContainerOnReady = useCallback(() => { - const currentRoute = navigationRef.current?.getCurrentRoute() + const currentRoute = navigationRef.getCurrentRoute() routeRef.current = { name: currentRoute?.name, params: currentRoute?.params @@ -124,7 +125,7 @@ const Screens: React.FC = ({ localCorrupt }) => { }, []) const navigationContainerOnStateChange = useCallback(() => { const previousRoute = routeRef.current - const currentRoute = navigationRef.current?.getCurrentRoute() + const currentRoute = navigationRef.getCurrentRoute() const matchTabName = currentRoute?.name?.match(/(Tab-.*)-Root/) if (matchTabName) { @@ -166,8 +167,8 @@ const Screens: React.FC = ({ localCorrupt }) => { name='Screen-Actions' component={ScreenActions} options={{ - stackPresentation: 'transparentModal', - stackAnimation: 'fade', + presentation: 'transparentModal', + animation: 'fade', headerShown: false }} /> @@ -175,38 +176,33 @@ const Screens: React.FC = ({ localCorrupt }) => { name='Screen-Announcements' component={ScreenAnnouncements} options={({ navigation }) => ({ - stackPresentation: 'transparentModal', - stackAnimation: 'fade', + presentation: 'transparentModal', + animation: 'fade', headerShown: true, - headerHideShadow: true, - headerTopInsetEnabled: false, + headerShadowVisible: false, + headerTransparent: true, headerStyle: { backgroundColor: 'transparent' }, headerLeft: () => ( navigation.goBack()} /> ), - headerTitle: t('screenAnnouncements:heading'), - ...(Platform.OS === 'android' && { - headerCenter: () => ( - - ) - }) + headerTitle: t('screenAnnouncements:heading') })} /> diff --git a/src/api/general.ts b/src/api/general.ts index 6d3c3b6e..445a4d08 100644 --- a/src/api/general.ts +++ b/src/api/general.ts @@ -46,7 +46,7 @@ const apiGeneral = async ({ params, headers: { 'Content-Type': 'application/json', - 'User-Agent': `tooot/${Constants.manifest.version}`, + 'User-Agent': `tooot/${Constants.manifest?.version}`, Accept: '*/*', ...headers }, diff --git a/src/api/instance.ts b/src/api/instance.ts index cd3a3c9e..e8a95d87 100644 --- a/src/api/instance.ts +++ b/src/api/instance.ts @@ -68,7 +68,7 @@ const apiInstance = async ({ params, headers: { 'Content-Type': 'application/json', - 'User-Agent': `tooot/${Constants.manifest.version}`, + 'User-Agent': `tooot/${Constants.manifest?.version}`, Accept: '*/*', ...headers, ...(token && { diff --git a/src/api/tooot.ts b/src/api/tooot.ts index 0958661a..a15b23bc 100644 --- a/src/api/tooot.ts +++ b/src/api/tooot.ts @@ -28,7 +28,7 @@ const apiTooot = async ({ body, sentry = false }: Params): Promise<{ body: T }> => { - const key = Constants.manifest.extra?.toootApiKey + const key = Constants.manifest?.extra?.toootApiKey console.log( ctx.bgGreen.bold(' API tooot ') + @@ -49,7 +49,7 @@ const apiTooot = async ({ headers: { ...(key && { 'x-tooot-key': key }), 'Content-Type': 'application/json', - 'User-Agent': `tooot/${Constants.manifest.version}`, + 'User-Agent': `tooot/${Constants.manifest?.version}`, Accept: '*/*', ...headers }, diff --git a/src/components/Account.tsx b/src/components/Account.tsx index 1b4d78f7..ca9d2f17 100644 --- a/src/components/Account.tsx +++ b/src/components/Account.tsx @@ -1,6 +1,7 @@ import { ParseEmojis } from '@components/Parse' import { useNavigation } from '@react-navigation/native' import { StackNavigationProp } from '@react-navigation/stack' +import { TabLocalStackParamList } from '@utils/navigation/navigators' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import React, { useCallback } from 'react' @@ -21,7 +22,7 @@ const ComponentAccount: React.FC = ({ }) => { const { theme } = useTheme() const navigation = useNavigation< - StackNavigationProp + StackNavigationProp >() const onPress = useCallback(() => { diff --git a/src/components/Instance/Auth.tsx b/src/components/Instance/Auth.tsx index 14ffae4f..765d20ef 100644 --- a/src/components/Instance/Auth.tsx +++ b/src/components/Instance/Auth.tsx @@ -1,4 +1,5 @@ import { useNavigation } from '@react-navigation/native' +import { TabMeStackNavigationProp } from '@utils/navigation/navigators' import addInstance from '@utils/slices/instances/add' import { Instance } from '@utils/slices/instancesSlice' import * as AuthSession from 'expo-auth-session' @@ -21,7 +22,9 @@ const InstanceAuth = React.memo( useProxy: false }) - const navigation = useNavigation() + const navigation = useNavigation< + TabMeStackNavigationProp<'Tab-Me-Root' | 'Tab-Me-Switch'> + >() const queryClient = useQueryClient() const dispatch = useDispatch() diff --git a/src/components/Timeline/Default.tsx b/src/components/Timeline/Default.tsx index 36260389..47e18c98 100644 --- a/src/components/Timeline/Default.tsx +++ b/src/components/Timeline/Default.tsx @@ -10,10 +10,9 @@ import TimelinePoll from '@components/Timeline/Shared/Poll' import { useNavigation } from '@react-navigation/native' import { StackNavigationProp } from '@react-navigation/stack' import { QueryKeyTimeline } from '@utils/queryHooks/timeline' -import { getInstance, getInstanceAccount } from '@utils/slices/instancesSlice' +import { getInstanceAccount } from '@utils/slices/instancesSlice' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' -import htmlparser2 from 'htmlparser2-without-node-native' import { uniqBy } from 'lodash' import React, { useCallback } from 'react' import { Pressable, StyleSheet, View } from 'react-native' diff --git a/src/components/Timeline/Shared/Attachment.tsx b/src/components/Timeline/Shared/Attachment.tsx index aad3c1fc..347709ef 100644 --- a/src/components/Timeline/Shared/Attachment.tsx +++ b/src/components/Timeline/Shared/Attachment.tsx @@ -6,6 +6,7 @@ import AttachmentImage from '@components/Timeline/Shared/Attachment/Image' import AttachmentUnsupported from '@components/Timeline/Shared/Attachment/Unsupported' import AttachmentVideo from '@components/Timeline/Shared/Attachment/Video' import { useNavigation } from '@react-navigation/native' +import { RootStackParamList } from '@utils/navigation/navigators' import { StyleConstants } from '@utils/styles/constants' import layoutAnimation from '@utils/styles/layoutAnimation' import React, { useCallback, useMemo, useRef, useState } from 'react' @@ -35,7 +36,7 @@ const TimelineAttachment = React.memo( }, []) const imageUrls = useRef< - Nav.RootStackParamList['Screen-ImagesViewer']['imageUrls'] + RootStackParamList['Screen-ImagesViewer']['imageUrls'] >([]) const navigation = useNavigation() useEffect(() => { diff --git a/src/components/Timeline/Shared/Attachment/Video.tsx b/src/components/Timeline/Shared/Attachment/Video.tsx index 35ad16e9..4c204716 100644 --- a/src/components/Timeline/Shared/Attachment/Video.tsx +++ b/src/components/Timeline/Shared/Attachment/Video.tsx @@ -1,8 +1,14 @@ import Button from '@components/Button' import { StyleConstants } from '@utils/styles/constants' import { Video } from 'expo-av' -import React, { useCallback, useRef, useState } from 'react' -import { Pressable, StyleSheet, View } from 'react-native' +import React, { useCallback, useEffect, useRef, useState } from 'react' +import { + AppState, + AppStateStatus, + Pressable, + StyleSheet, + View +} from 'react-native' import { Blurhash } from 'react-native-blurhash' import attachmentAspectRatio from './aspectRatio' import analytics from '@components/analytics' @@ -45,15 +51,43 @@ const AttachmentVideo: React.FC = ({ videoPlayer.current?.setOnPlaybackStatusUpdate(props => { if (props.isLoaded) { setVideoLoaded(true) - } - // @ts-ignore - if (props.positionMillis) { - // @ts-ignore - setVideoPosition(props.positionMillis) + if (props.positionMillis) { + setVideoPosition(props.positionMillis) + } } }) }, [videoLoaded, videoPosition]) + const appState = useRef(AppState.currentState) + useEffect(() => { + AppState.addEventListener('change', _handleAppStateChange) + + return () => { + AppState.removeEventListener('change', _handleAppStateChange) + } + }, []) + const _handleAppStateChange = async (nextAppState: AppStateStatus) => { + if (appState.current.match(/active/) && nextAppState.match(/inactive/)) { + await videoPlayer.current?.pauseAsync() + } else if ( + gifv && + appState.current.match(/background/) && + nextAppState.match(/active/) + ) { + await videoPlayer.current?.setIsMutedAsync(true) + await videoPlayer.current?.playAsync() + } + + appState.current = nextAppState + } + + const playerStatus = useRef(null) + useEffect(() => { + videoPlayer.current?.setOnPlaybackStatusUpdate(playbackStatus => { + playerStatus.current = playbackStatus + }) + }, []) + return ( = ({ posterStyle: { resizeMode: 'cover' } })} useNativeControls={false} - onFullscreenUpdate={event => { + onFullscreenUpdate={async event => { if ( event.fullscreenUpdate === Video.FULLSCREEN_UPDATE_PLAYER_DID_DISMISS ) { if (gifv) { - videoPlayer.current?.setIsLoopingAsync(true) - videoPlayer.current?.playAsync() + await videoPlayer.current?.pauseAsync() } else { - videoPlayer.current?.pauseAsync() + await videoPlayer.current?.pauseAsync() } } }} @@ -108,7 +141,7 @@ const AttachmentVideo: React.FC = ({ }} /> ) : null - ) : !gifv ? ( + ) : !gifv || (gifv && playerStatus.current === false) ? (