mirror of
https://github.com/tooot-app/app
synced 2025-02-15 11:20:48 +01:00
commit
46c864f7f9
6
index.js
6
index.js
@ -1,8 +1,8 @@
|
|||||||
import { registerRootComponent } from 'expo';
|
import { registerRootComponent } from 'expo'
|
||||||
|
|
||||||
import App from '@root/App';
|
import App from '@root/App'
|
||||||
|
|
||||||
// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
|
// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
|
||||||
// It also ensures that whether you load the app in the Expo client or in a native build,
|
// It also ensures that whether you load the app in the Expo client or in a native build,
|
||||||
// the environment is set up appropriately
|
// the environment is set up appropriately
|
||||||
registerRootComponent(App);
|
registerRootComponent(App)
|
||||||
|
@ -20,9 +20,9 @@ target 'tooot' do
|
|||||||
use_react_native!(
|
use_react_native!(
|
||||||
:path => config[:reactNativePath],
|
:path => config[:reactNativePath],
|
||||||
:production => production,
|
:production => production,
|
||||||
:hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes',
|
:hermes_enabled => podfile_properties['jsEngine'] == 'hermes',
|
||||||
:fabric_enabled => flags[:fabric_enabled],
|
:fabric_enabled => flags[:fabric_enabled],
|
||||||
:flipper_configuration => FlipperConfiguration.enabled,
|
:flipper_configuration => FlipperConfiguration.disabled,
|
||||||
# An absolute path to your application root.
|
# An absolute path to your application root.
|
||||||
:app_path => "#{Pod::Config.instance.installation_root}/.."
|
:app_path => "#{Pod::Config.instance.installation_root}/.."
|
||||||
)
|
)
|
||||||
@ -50,7 +50,9 @@ end
|
|||||||
|
|
||||||
target 'ShareExtension' do
|
target 'ShareExtension' do
|
||||||
use_react_native!(
|
use_react_native!(
|
||||||
:hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes'
|
:production => production,
|
||||||
|
:hermes_enabled => podfile_properties['jsEngine'] == 'hermes',
|
||||||
|
:flipper_configuration => FlipperConfiguration.disabled
|
||||||
)
|
)
|
||||||
|
|
||||||
pod 'RNShareMenu', :path => '../node_modules/react-native-share-menu'
|
pod 'RNShareMenu', :path => '../node_modules/react-native-share-menu'
|
||||||
|
173
ios/Podfile.lock
173
ios/Podfile.lock
@ -1,13 +1,10 @@
|
|||||||
PODS:
|
PODS:
|
||||||
- ASN1Decoder (1.8.0)
|
- ASN1Decoder (1.8.0)
|
||||||
- boost (1.76.0)
|
- boost (1.76.0)
|
||||||
- CocoaAsyncSocket (7.6.5)
|
|
||||||
- DoubleConversion (1.1.6)
|
- DoubleConversion (1.1.6)
|
||||||
- EASClient (0.3.0):
|
- EASClient (0.3.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXApplication (4.2.2):
|
- EXAV (12.0.4):
|
||||||
- ExpoModulesCore
|
|
||||||
- EXAV (12.0.3):
|
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- React-runtimeexecutor
|
- React-runtimeexecutor
|
||||||
- ReactCommon
|
- ReactCommon
|
||||||
@ -26,21 +23,17 @@ PODS:
|
|||||||
- EXFirebaseCore (5.1.1):
|
- EXFirebaseCore (5.1.1):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- Firebase/Core (= 8.14.0)
|
- Firebase/Core (= 8.14.0)
|
||||||
- EXFont (10.2.0):
|
|
||||||
- ExpoModulesCore
|
|
||||||
- EXJSONUtils (0.3.0)
|
- EXJSONUtils (0.3.0)
|
||||||
- EXManifests (0.3.1):
|
- EXManifests (0.3.1):
|
||||||
- EXJSONUtils
|
- EXJSONUtils
|
||||||
- EXNotifications (0.16.1):
|
- EXNotifications (0.16.1):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- Expo (46.0.2):
|
- Expo (46.0.6):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoCrypto (11.0.0):
|
- ExpoCrypto (11.0.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoHaptics (11.3.0):
|
- ExpoHaptics (11.3.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoKeepAwake (10.2.0):
|
|
||||||
- ExpoModulesCore
|
|
||||||
- ExpoLocalization (13.1.0):
|
- ExpoLocalization (13.1.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoModulesCore (0.11.3):
|
- ExpoModulesCore (0.11.3):
|
||||||
@ -60,7 +53,7 @@ PODS:
|
|||||||
- EXStoreReview (5.3.0):
|
- EXStoreReview (5.3.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXStructuredHeaders (2.2.1)
|
- EXStructuredHeaders (2.2.1)
|
||||||
- EXUpdates (0.14.3):
|
- EXUpdates (0.14.4):
|
||||||
- ASN1Decoder (~> 1.8)
|
- ASN1Decoder (~> 1.8)
|
||||||
- EASClient
|
- EASClient
|
||||||
- EXManifests
|
- EXManifests
|
||||||
@ -116,67 +109,6 @@ PODS:
|
|||||||
- GoogleUtilities/Environment (~> 7.7)
|
- GoogleUtilities/Environment (~> 7.7)
|
||||||
- GoogleUtilities/UserDefaults (~> 7.7)
|
- GoogleUtilities/UserDefaults (~> 7.7)
|
||||||
- PromisesObjC (< 3.0, >= 1.2)
|
- PromisesObjC (< 3.0, >= 1.2)
|
||||||
- Flipper (0.125.0):
|
|
||||||
- Flipper-Folly (~> 2.6)
|
|
||||||
- Flipper-RSocket (~> 1.4)
|
|
||||||
- Flipper-Boost-iOSX (1.76.0.1.11)
|
|
||||||
- Flipper-DoubleConversion (3.2.0.1)
|
|
||||||
- Flipper-Fmt (7.1.7)
|
|
||||||
- Flipper-Folly (2.6.10):
|
|
||||||
- Flipper-Boost-iOSX
|
|
||||||
- Flipper-DoubleConversion
|
|
||||||
- Flipper-Fmt (= 7.1.7)
|
|
||||||
- Flipper-Glog
|
|
||||||
- libevent (~> 2.1.12)
|
|
||||||
- OpenSSL-Universal (= 1.1.1100)
|
|
||||||
- Flipper-Glog (0.5.0.5)
|
|
||||||
- Flipper-PeerTalk (0.0.4)
|
|
||||||
- Flipper-RSocket (1.4.3):
|
|
||||||
- Flipper-Folly (~> 2.6)
|
|
||||||
- FlipperKit (0.125.0):
|
|
||||||
- FlipperKit/Core (= 0.125.0)
|
|
||||||
- FlipperKit/Core (0.125.0):
|
|
||||||
- Flipper (~> 0.125.0)
|
|
||||||
- FlipperKit/CppBridge
|
|
||||||
- FlipperKit/FBCxxFollyDynamicConvert
|
|
||||||
- FlipperKit/FBDefines
|
|
||||||
- FlipperKit/FKPortForwarding
|
|
||||||
- SocketRocket (~> 0.6.0)
|
|
||||||
- FlipperKit/CppBridge (0.125.0):
|
|
||||||
- Flipper (~> 0.125.0)
|
|
||||||
- FlipperKit/FBCxxFollyDynamicConvert (0.125.0):
|
|
||||||
- Flipper-Folly (~> 2.6)
|
|
||||||
- FlipperKit/FBDefines (0.125.0)
|
|
||||||
- FlipperKit/FKPortForwarding (0.125.0):
|
|
||||||
- CocoaAsyncSocket (~> 7.6)
|
|
||||||
- Flipper-PeerTalk (~> 0.0.4)
|
|
||||||
- FlipperKit/FlipperKitHighlightOverlay (0.125.0)
|
|
||||||
- FlipperKit/FlipperKitLayoutHelpers (0.125.0):
|
|
||||||
- FlipperKit/Core
|
|
||||||
- FlipperKit/FlipperKitHighlightOverlay
|
|
||||||
- FlipperKit/FlipperKitLayoutTextSearchable
|
|
||||||
- FlipperKit/FlipperKitLayoutIOSDescriptors (0.125.0):
|
|
||||||
- FlipperKit/Core
|
|
||||||
- FlipperKit/FlipperKitHighlightOverlay
|
|
||||||
- FlipperKit/FlipperKitLayoutHelpers
|
|
||||||
- YogaKit (~> 1.18)
|
|
||||||
- FlipperKit/FlipperKitLayoutPlugin (0.125.0):
|
|
||||||
- FlipperKit/Core
|
|
||||||
- FlipperKit/FlipperKitHighlightOverlay
|
|
||||||
- FlipperKit/FlipperKitLayoutHelpers
|
|
||||||
- FlipperKit/FlipperKitLayoutIOSDescriptors
|
|
||||||
- FlipperKit/FlipperKitLayoutTextSearchable
|
|
||||||
- YogaKit (~> 1.18)
|
|
||||||
- FlipperKit/FlipperKitLayoutTextSearchable (0.125.0)
|
|
||||||
- FlipperKit/FlipperKitNetworkPlugin (0.125.0):
|
|
||||||
- FlipperKit/Core
|
|
||||||
- FlipperKit/FlipperKitReactPlugin (0.125.0):
|
|
||||||
- FlipperKit/Core
|
|
||||||
- FlipperKit/FlipperKitUserDefaultsPlugin (0.125.0):
|
|
||||||
- FlipperKit/Core
|
|
||||||
- FlipperKit/SKIOSNetworkPlugin (0.125.0):
|
|
||||||
- FlipperKit/Core
|
|
||||||
- FlipperKit/FlipperKitNetworkPlugin
|
|
||||||
- fmt (6.2.1)
|
- fmt (6.2.1)
|
||||||
- glog (0.3.5)
|
- glog (0.3.5)
|
||||||
- GoogleAppMeasurement (8.14.0):
|
- GoogleAppMeasurement (8.14.0):
|
||||||
@ -238,7 +170,6 @@ PODS:
|
|||||||
- nanopb/encode (= 2.30908.0)
|
- nanopb/encode (= 2.30908.0)
|
||||||
- nanopb/decode (2.30908.0)
|
- nanopb/decode (2.30908.0)
|
||||||
- nanopb/encode (2.30908.0)
|
- nanopb/encode (2.30908.0)
|
||||||
- OpenSSL-Universal (1.1.1100)
|
|
||||||
- PromisesObjC (2.1.1)
|
- PromisesObjC (2.1.1)
|
||||||
- RCT-Folly (2021.06.28.00-v2):
|
- RCT-Folly (2021.06.28.00-v2):
|
||||||
- boost
|
- boost
|
||||||
@ -590,7 +521,7 @@ PODS:
|
|||||||
- React-logger (= 0.69.4)
|
- React-logger (= 0.69.4)
|
||||||
- React-perflogger (= 0.69.4)
|
- React-perflogger (= 0.69.4)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.4)
|
- ReactCommon/turbomodule/core (= 0.69.4)
|
||||||
- RNCAsyncStorage (1.17.8):
|
- RNCAsyncStorage (1.17.9):
|
||||||
- React-Core
|
- React-Core
|
||||||
- RNCClipboard (1.10.0):
|
- RNCClipboard (1.10.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
@ -630,12 +561,12 @@ PODS:
|
|||||||
- RNScreens (3.15.0):
|
- RNScreens (3.15.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- React-RCTImage
|
- React-RCTImage
|
||||||
- RNSentry (4.2.2):
|
- RNSentry (4.2.3):
|
||||||
- React-Core
|
- React-Core
|
||||||
- Sentry (= 7.22.0)
|
- Sentry (= 7.23.0)
|
||||||
- RNShareMenu (5.0.5):
|
- RNShareMenu (6.0.0):
|
||||||
- React
|
- React
|
||||||
- RNSVG (12.4.3):
|
- RNSVG (12.4.4):
|
||||||
- React-Core
|
- React-Core
|
||||||
- SDWebImage (5.13.2):
|
- SDWebImage (5.13.2):
|
||||||
- SDWebImage/Core (= 5.13.2)
|
- SDWebImage/Core (= 5.13.2)
|
||||||
@ -643,20 +574,16 @@ PODS:
|
|||||||
- SDWebImageWebPCoder (0.9.0):
|
- SDWebImageWebPCoder (0.9.0):
|
||||||
- libwebp (~> 1.0)
|
- libwebp (~> 1.0)
|
||||||
- SDWebImage/Core (~> 5.13)
|
- SDWebImage/Core (~> 5.13)
|
||||||
- Sentry (7.22.0):
|
- Sentry (7.23.0):
|
||||||
- Sentry/Core (= 7.22.0)
|
- Sentry/Core (= 7.23.0)
|
||||||
- Sentry/Core (7.22.0)
|
- Sentry/Core (7.23.0)
|
||||||
- SocketRocket (0.6.0)
|
|
||||||
- Swime (3.0.6)
|
- Swime (3.0.6)
|
||||||
- Yoga (1.14.0)
|
- Yoga (1.14.0)
|
||||||
- YogaKit (1.18.1):
|
|
||||||
- Yoga (~> 1.14)
|
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
|
- boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
|
||||||
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||||
- EASClient (from `../node_modules/expo-eas-client/ios`)
|
- EASClient (from `../node_modules/expo-eas-client/ios`)
|
||||||
- EXApplication (from `../node_modules/expo-application/ios`)
|
|
||||||
- EXAV (from `../node_modules/expo-av/ios`)
|
- EXAV (from `../node_modules/expo-av/ios`)
|
||||||
- EXConstants (from `../node_modules/expo-constants/ios`)
|
- EXConstants (from `../node_modules/expo-constants/ios`)
|
||||||
- EXDevice (from `../node_modules/expo-device/ios`)
|
- EXDevice (from `../node_modules/expo-device/ios`)
|
||||||
@ -664,14 +591,12 @@ DEPENDENCIES:
|
|||||||
- EXFileSystem (from `../node_modules/expo-file-system/ios`)
|
- EXFileSystem (from `../node_modules/expo-file-system/ios`)
|
||||||
- EXFirebaseAnalytics (from `../node_modules/expo-firebase-analytics/ios`)
|
- EXFirebaseAnalytics (from `../node_modules/expo-firebase-analytics/ios`)
|
||||||
- EXFirebaseCore (from `../node_modules/expo-firebase-core/ios`)
|
- EXFirebaseCore (from `../node_modules/expo-firebase-core/ios`)
|
||||||
- EXFont (from `../node_modules/expo-font/ios`)
|
|
||||||
- EXJSONUtils (from `../node_modules/expo-json-utils/ios`)
|
- EXJSONUtils (from `../node_modules/expo-json-utils/ios`)
|
||||||
- EXManifests (from `../node_modules/expo-manifests/ios`)
|
- EXManifests (from `../node_modules/expo-manifests/ios`)
|
||||||
- EXNotifications (from `../node_modules/expo-notifications/ios`)
|
- EXNotifications (from `../node_modules/expo-notifications/ios`)
|
||||||
- Expo (from `../node_modules/expo`)
|
- Expo (from `../node_modules/expo`)
|
||||||
- ExpoCrypto (from `../node_modules/expo-crypto/ios`)
|
- ExpoCrypto (from `../node_modules/expo-crypto/ios`)
|
||||||
- ExpoHaptics (from `../node_modules/expo-haptics/ios`)
|
- ExpoHaptics (from `../node_modules/expo-haptics/ios`)
|
||||||
- ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`)
|
|
||||||
- ExpoLocalization (from `../node_modules/expo-localization/ios`)
|
- ExpoLocalization (from `../node_modules/expo-localization/ios`)
|
||||||
- ExpoModulesCore (from `../node_modules/expo-modules-core/ios`)
|
- ExpoModulesCore (from `../node_modules/expo-modules-core/ios`)
|
||||||
- ExpoRandom (from `../node_modules/expo-random/ios`)
|
- ExpoRandom (from `../node_modules/expo-random/ios`)
|
||||||
@ -686,31 +611,9 @@ DEPENDENCIES:
|
|||||||
- EXVideoThumbnails (from `../node_modules/expo-video-thumbnails/ios`)
|
- EXVideoThumbnails (from `../node_modules/expo-video-thumbnails/ios`)
|
||||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
||||||
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
|
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
|
||||||
- Flipper (= 0.125.0)
|
|
||||||
- Flipper-Boost-iOSX (= 1.76.0.1.11)
|
|
||||||
- Flipper-DoubleConversion (= 3.2.0.1)
|
|
||||||
- Flipper-Fmt (= 7.1.7)
|
|
||||||
- Flipper-Folly (= 2.6.10)
|
|
||||||
- Flipper-Glog (= 0.5.0.5)
|
|
||||||
- Flipper-PeerTalk (= 0.0.4)
|
|
||||||
- Flipper-RSocket (= 1.4.3)
|
|
||||||
- FlipperKit (= 0.125.0)
|
|
||||||
- FlipperKit/Core (= 0.125.0)
|
|
||||||
- FlipperKit/CppBridge (= 0.125.0)
|
|
||||||
- FlipperKit/FBCxxFollyDynamicConvert (= 0.125.0)
|
|
||||||
- FlipperKit/FBDefines (= 0.125.0)
|
|
||||||
- FlipperKit/FKPortForwarding (= 0.125.0)
|
|
||||||
- FlipperKit/FlipperKitHighlightOverlay (= 0.125.0)
|
|
||||||
- FlipperKit/FlipperKitLayoutPlugin (= 0.125.0)
|
|
||||||
- FlipperKit/FlipperKitLayoutTextSearchable (= 0.125.0)
|
|
||||||
- FlipperKit/FlipperKitNetworkPlugin (= 0.125.0)
|
|
||||||
- FlipperKit/FlipperKitReactPlugin (= 0.125.0)
|
|
||||||
- FlipperKit/FlipperKitUserDefaultsPlugin (= 0.125.0)
|
|
||||||
- FlipperKit/SKIOSNetworkPlugin (= 0.125.0)
|
|
||||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||||
- hermes-engine (from `../node_modules/react-native/sdks/hermes/hermes-engine.podspec`)
|
- hermes-engine (from `../node_modules/react-native/sdks/hermes/hermes-engine.podspec`)
|
||||||
- libevent (~> 2.1.12)
|
- libevent (~> 2.1.12)
|
||||||
- OpenSSL-Universal (= 1.1.1100)
|
|
||||||
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||||
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
|
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
|
||||||
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
|
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
|
||||||
@ -719,7 +622,6 @@ DEPENDENCIES:
|
|||||||
- React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
|
- React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
|
||||||
- React-Codegen (from `build/generated/ios`)
|
- React-Codegen (from `build/generated/ios`)
|
||||||
- React-Core (from `../node_modules/react-native/`)
|
- React-Core (from `../node_modules/react-native/`)
|
||||||
- React-Core/DevSupport (from `../node_modules/react-native/`)
|
|
||||||
- React-Core/RCTWebSocket (from `../node_modules/react-native/`)
|
- React-Core/RCTWebSocket (from `../node_modules/react-native/`)
|
||||||
- React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
|
- React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
|
||||||
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
|
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
|
||||||
@ -765,21 +667,11 @@ DEPENDENCIES:
|
|||||||
SPEC REPOS:
|
SPEC REPOS:
|
||||||
trunk:
|
trunk:
|
||||||
- ASN1Decoder
|
- ASN1Decoder
|
||||||
- CocoaAsyncSocket
|
|
||||||
- Firebase
|
- Firebase
|
||||||
- FirebaseAnalytics
|
- FirebaseAnalytics
|
||||||
- FirebaseCore
|
- FirebaseCore
|
||||||
- FirebaseCoreDiagnostics
|
- FirebaseCoreDiagnostics
|
||||||
- FirebaseInstallations
|
- FirebaseInstallations
|
||||||
- Flipper
|
|
||||||
- Flipper-Boost-iOSX
|
|
||||||
- Flipper-DoubleConversion
|
|
||||||
- Flipper-Fmt
|
|
||||||
- Flipper-Folly
|
|
||||||
- Flipper-Glog
|
|
||||||
- Flipper-PeerTalk
|
|
||||||
- Flipper-RSocket
|
|
||||||
- FlipperKit
|
|
||||||
- fmt
|
- fmt
|
||||||
- GoogleAppMeasurement
|
- GoogleAppMeasurement
|
||||||
- GoogleDataTransport
|
- GoogleDataTransport
|
||||||
@ -787,14 +679,11 @@ SPEC REPOS:
|
|||||||
- libevent
|
- libevent
|
||||||
- libwebp
|
- libwebp
|
||||||
- nanopb
|
- nanopb
|
||||||
- OpenSSL-Universal
|
|
||||||
- PromisesObjC
|
- PromisesObjC
|
||||||
- SDWebImage
|
- SDWebImage
|
||||||
- SDWebImageWebPCoder
|
- SDWebImageWebPCoder
|
||||||
- Sentry
|
- Sentry
|
||||||
- SocketRocket
|
|
||||||
- Swime
|
- Swime
|
||||||
- YogaKit
|
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
boost:
|
boost:
|
||||||
@ -803,8 +692,6 @@ EXTERNAL SOURCES:
|
|||||||
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
|
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
|
||||||
EASClient:
|
EASClient:
|
||||||
:path: "../node_modules/expo-eas-client/ios"
|
:path: "../node_modules/expo-eas-client/ios"
|
||||||
EXApplication:
|
|
||||||
:path: "../node_modules/expo-application/ios"
|
|
||||||
EXAV:
|
EXAV:
|
||||||
:path: "../node_modules/expo-av/ios"
|
:path: "../node_modules/expo-av/ios"
|
||||||
EXConstants:
|
EXConstants:
|
||||||
@ -819,8 +706,6 @@ EXTERNAL SOURCES:
|
|||||||
:path: "../node_modules/expo-firebase-analytics/ios"
|
:path: "../node_modules/expo-firebase-analytics/ios"
|
||||||
EXFirebaseCore:
|
EXFirebaseCore:
|
||||||
:path: "../node_modules/expo-firebase-core/ios"
|
:path: "../node_modules/expo-firebase-core/ios"
|
||||||
EXFont:
|
|
||||||
:path: "../node_modules/expo-font/ios"
|
|
||||||
EXJSONUtils:
|
EXJSONUtils:
|
||||||
:path: "../node_modules/expo-json-utils/ios"
|
:path: "../node_modules/expo-json-utils/ios"
|
||||||
EXManifests:
|
EXManifests:
|
||||||
@ -833,8 +718,6 @@ EXTERNAL SOURCES:
|
|||||||
:path: "../node_modules/expo-crypto/ios"
|
:path: "../node_modules/expo-crypto/ios"
|
||||||
ExpoHaptics:
|
ExpoHaptics:
|
||||||
:path: "../node_modules/expo-haptics/ios"
|
:path: "../node_modules/expo-haptics/ios"
|
||||||
ExpoKeepAwake:
|
|
||||||
:path: "../node_modules/expo-keep-awake/ios"
|
|
||||||
ExpoLocalization:
|
ExpoLocalization:
|
||||||
:path: "../node_modules/expo-localization/ios"
|
:path: "../node_modules/expo-localization/ios"
|
||||||
ExpoModulesCore:
|
ExpoModulesCore:
|
||||||
@ -967,25 +850,21 @@ EXTERNAL SOURCES:
|
|||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
ASN1Decoder: 6110fdeacfdb41559b1481457a1645be716610aa
|
ASN1Decoder: 6110fdeacfdb41559b1481457a1645be716610aa
|
||||||
boost: a7c83b31436843459a1961bfd74b96033dc77234
|
boost: a7c83b31436843459a1961bfd74b96033dc77234
|
||||||
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
|
|
||||||
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
|
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
|
||||||
EASClient: a2581835cf9b97d0defd5d630fc6eb1bf77045e7
|
EASClient: a2581835cf9b97d0defd5d630fc6eb1bf77045e7
|
||||||
EXApplication: e418d737a036e788510f2c4ad6c10a7d54d18586
|
EXAV: 596506c9bee54ad52f2f3b625cdaeb9d9f2dd6b7
|
||||||
EXAV: db5cb61ba842df32814ef5fd02872e1c1697e91b
|
|
||||||
EXConstants: 75c40827af38bd6bfcf69f880a5b45037eeff9c9
|
EXConstants: 75c40827af38bd6bfcf69f880a5b45037eeff9c9
|
||||||
EXDevice: 7647ca9b1fd8b269dfd896a7643d659343358054
|
EXDevice: 7647ca9b1fd8b269dfd896a7643d659343358054
|
||||||
EXErrorRecovery: 74d71ee59f6814315457b09d68e86aa95cc7d05d
|
EXErrorRecovery: 74d71ee59f6814315457b09d68e86aa95cc7d05d
|
||||||
EXFileSystem: 927e0a8885aa9c49e50fc38eaba2c2389f2f1019
|
EXFileSystem: 927e0a8885aa9c49e50fc38eaba2c2389f2f1019
|
||||||
EXFirebaseAnalytics: 15c5f2d5bae6668ecb1104f98b2b74a2d9fd3740
|
EXFirebaseAnalytics: 15c5f2d5bae6668ecb1104f98b2b74a2d9fd3740
|
||||||
EXFirebaseCore: 9ee5a9691a8480f0fbaeb7f3cd135f256d436fdf
|
EXFirebaseCore: 9ee5a9691a8480f0fbaeb7f3cd135f256d436fdf
|
||||||
EXFont: a5d80bd9b3452b2d5abbce2487da89b0150e6487
|
|
||||||
EXJSONUtils: 2a74b8f40f1523cc3f92af99c91aa78201737a77
|
EXJSONUtils: 2a74b8f40f1523cc3f92af99c91aa78201737a77
|
||||||
EXManifests: b38dc61303f5eede990b4c8ecbfac32f82160e65
|
EXManifests: b38dc61303f5eede990b4c8ecbfac32f82160e65
|
||||||
EXNotifications: 9a2aa201deb19dfe1dbe0e370eeb2922de0d2422
|
EXNotifications: 9a2aa201deb19dfe1dbe0e370eeb2922de0d2422
|
||||||
Expo: a2d9d4d17b9c97beab797c54220b305708f60e87
|
Expo: efd244782651dd1a73c7bd977babe19ed80e3243
|
||||||
ExpoCrypto: e534314db0e1a17ae12b5140d529bd0c5efcbc6a
|
ExpoCrypto: e534314db0e1a17ae12b5140d529bd0c5efcbc6a
|
||||||
ExpoHaptics: efe9e68e9dfe0d15c183c0c70a25f3874124ab9e
|
ExpoHaptics: efe9e68e9dfe0d15c183c0c70a25f3874124ab9e
|
||||||
ExpoKeepAwake: 0e8f18142e71bbf2c7f6aa66ebed249ba1420320
|
|
||||||
ExpoLocalization: 63204f4b9d4f653469d266332ceaa6c6ac8a305d
|
ExpoLocalization: 63204f4b9d4f653469d266332ceaa6c6ac8a305d
|
||||||
ExpoModulesCore: 8303cc952788be09fc6eab62815d257016ae6dec
|
ExpoModulesCore: 8303cc952788be09fc6eab62815d257016ae6dec
|
||||||
ExpoRandom: f9f1faa299a40733867f344d6b7bfa2d1f4ab04d
|
ExpoRandom: f9f1faa299a40733867f344d6b7bfa2d1f4ab04d
|
||||||
@ -995,7 +874,7 @@ SPEC CHECKSUMS:
|
|||||||
EXSplashScreen: 31ab6df6d23e97e074d1330224741979943f1d82
|
EXSplashScreen: 31ab6df6d23e97e074d1330224741979943f1d82
|
||||||
EXStoreReview: cbb6b2202bb6f831cd3234d9d8b995cec0eb32f2
|
EXStoreReview: cbb6b2202bb6f831cd3234d9d8b995cec0eb32f2
|
||||||
EXStructuredHeaders: 5d86829469399370a9fc7cb1e4391b09de87681d
|
EXStructuredHeaders: 5d86829469399370a9fc7cb1e4391b09de87681d
|
||||||
EXUpdates: 0d639074a69862e121706c0d4203a700ecfcc22d
|
EXUpdates: 784c8c593f6649d0640e81cede66613703e3c267
|
||||||
EXUpdatesInterface: 2bbc11815dfa2ec3fc02e5534c7592c6b42b5327
|
EXUpdatesInterface: 2bbc11815dfa2ec3fc02e5534c7592c6b42b5327
|
||||||
EXVideoThumbnails: 486533e1a66c9859f9b9e3b2e1f9f0b275515b48
|
EXVideoThumbnails: 486533e1a66c9859f9b9e3b2e1f9f0b275515b48
|
||||||
FBLazyVector: c71b8c429a8af2aff1013934a7152e9d9d0c937d
|
FBLazyVector: c71b8c429a8af2aff1013934a7152e9d9d0c937d
|
||||||
@ -1005,15 +884,6 @@ SPEC CHECKSUMS:
|
|||||||
FirebaseCore: b84a44ee7ba999e0f9f76d198a9c7f60a797b848
|
FirebaseCore: b84a44ee7ba999e0f9f76d198a9c7f60a797b848
|
||||||
FirebaseCoreDiagnostics: 92e07a649aeb66352b319d43bdd2ee3942af84cb
|
FirebaseCoreDiagnostics: 92e07a649aeb66352b319d43bdd2ee3942af84cb
|
||||||
FirebaseInstallations: 40bd9054049b2eae9a2c38ef1c3dd213df3605cd
|
FirebaseInstallations: 40bd9054049b2eae9a2c38ef1c3dd213df3605cd
|
||||||
Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0
|
|
||||||
Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c
|
|
||||||
Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30
|
|
||||||
Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b
|
|
||||||
Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3
|
|
||||||
Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446
|
|
||||||
Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
|
|
||||||
Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541
|
|
||||||
FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86
|
|
||||||
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
|
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
|
||||||
glog: 3d02b25ca00c2d456734d0bcff864cbc62f6ae1a
|
glog: 3d02b25ca00c2d456734d0bcff864cbc62f6ae1a
|
||||||
GoogleAppMeasurement: 71156240babd3cc6ced03e0d54816f01a880c730
|
GoogleAppMeasurement: 71156240babd3cc6ced03e0d54816f01a880c730
|
||||||
@ -1023,7 +893,6 @@ SPEC CHECKSUMS:
|
|||||||
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
|
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
|
||||||
libwebp: 60305b2e989864154bd9be3d772730f08fc6a59c
|
libwebp: 60305b2e989864154bd9be3d772730f08fc6a59c
|
||||||
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
|
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
|
||||||
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
|
|
||||||
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb
|
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb
|
||||||
RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a
|
RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a
|
||||||
RCTRequired: bd9d2ab0fda10171fcbcf9ba61a7df4dc15a28f4
|
RCTRequired: bd9d2ab0fda10171fcbcf9ba61a7df4dc15a28f4
|
||||||
@ -1063,23 +932,21 @@ SPEC CHECKSUMS:
|
|||||||
React-RCTVibration: 9adb4a3cbb598d1bbd46a05256f445e4b8c70603
|
React-RCTVibration: 9adb4a3cbb598d1bbd46a05256f445e4b8c70603
|
||||||
React-runtimeexecutor: 61ee22a8cdf8b6bb2a7fb7b4ba2cc763e5285196
|
React-runtimeexecutor: 61ee22a8cdf8b6bb2a7fb7b4ba2cc763e5285196
|
||||||
ReactCommon: 8f67bd7e0a6afade0f20718f859dc8c2275f2e83
|
ReactCommon: 8f67bd7e0a6afade0f20718f859dc8c2275f2e83
|
||||||
RNCAsyncStorage: 7cbd0d823dbb0e415d40a7e77fea2292483c8bdb
|
RNCAsyncStorage: b2489b49e38c85e10ed45a888d13a2a4c7b32ea1
|
||||||
RNCClipboard: f1736c75ab85b627a4d57587edb4b60999c4dd80
|
RNCClipboard: f1736c75ab85b627a4d57587edb4b60999c4dd80
|
||||||
RNFastImage: 8e9b5b9e6df94d2e359c0a75a4745ad1311506fd
|
RNFastImage: 8e9b5b9e6df94d2e359c0a75a4745ad1311506fd
|
||||||
RNGestureHandler: bad495418bcbd3ab47017a38d93d290ebd406f50
|
RNGestureHandler: bad495418bcbd3ab47017a38d93d290ebd406f50
|
||||||
RNReanimated: 2cf7451318bb9cc430abeec8d67693f9cf4e039c
|
RNReanimated: 2cf7451318bb9cc430abeec8d67693f9cf4e039c
|
||||||
RNScreens: 4a1af06327774490d97342c00aee0c2bafb497b7
|
RNScreens: 4a1af06327774490d97342c00aee0c2bafb497b7
|
||||||
RNSentry: f03937a2cf86c7029ba31fbbf5618c55d223cd62
|
RNSentry: 6798624706227656d942849d593f89c8ca3bdde5
|
||||||
RNShareMenu: c69282e50ac439737a86949a55c7b023b90027c8
|
RNShareMenu: cb9dac548c8bf147d06f0bf07296ad51ea9f5fc3
|
||||||
RNSVG: f3b60aeeaa81960e2e0536c3a9eef50b667ef3a9
|
RNSVG: ecd661f380a07ba690c9c5929c475a44f432d674
|
||||||
SDWebImage: 72f86271a6f3139cc7e4a89220946489d4b9a866
|
SDWebImage: 72f86271a6f3139cc7e4a89220946489d4b9a866
|
||||||
SDWebImageWebPCoder: 3dc350894112feab5375cfba9ce0986544a66a69
|
SDWebImageWebPCoder: 3dc350894112feab5375cfba9ce0986544a66a69
|
||||||
Sentry: 30b51086ca9aac23337880152e95538f7e177f7f
|
Sentry: a0d4563fa4ddacba31fdcc35daaa8573d87224d6
|
||||||
SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
|
|
||||||
Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b
|
Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b
|
||||||
Yoga: ff994563b2fd98c982ca58e8cd9db2cdaf4dda74
|
Yoga: ff994563b2fd98c982ca58e8cd9db2cdaf4dda74
|
||||||
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
|
|
||||||
|
|
||||||
PODFILE CHECKSUM: a2f2cbb9af4b081ba2a1ca88de325713cfa64ec5
|
PODFILE CHECKSUM: 87f71ca2771d16ab3648db0569a7eb066517134c
|
||||||
|
|
||||||
COCOAPODS: 1.11.3
|
COCOAPODS: 1.11.3
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"expo.jsEngine": "hermes"
|
"jsEngine": "hermes"
|
||||||
}
|
}
|
||||||
|
@ -372,16 +372,10 @@
|
|||||||
);
|
);
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-tooot/Pods-tooot-frameworks.sh",
|
"${PODS_ROOT}/Target Support Files/Pods-tooot/Pods-tooot-frameworks.sh",
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-DoubleConversion/double-conversion.framework/double-conversion",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/Flipper-Glog/glog.framework/glog",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
|
|
||||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/hermes.framework/hermes",
|
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/hermes.framework/hermes",
|
||||||
);
|
);
|
||||||
name = "[CP] Embed Pods Frameworks";
|
name = "[CP] Embed Pods Frameworks";
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/double-conversion.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/glog.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
|
|
||||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
|
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
18
package.json
18
package.json
@ -34,7 +34,7 @@
|
|||||||
"@formatjs/intl-relativetimeformat": "^11.0.3",
|
"@formatjs/intl-relativetimeformat": "^11.0.3",
|
||||||
"@mattermost/react-native-paste-input": "^0.5.0",
|
"@mattermost/react-native-paste-input": "^0.5.0",
|
||||||
"@neverdull-agency/expo-unlimited-secure-store": "^1.0.10",
|
"@neverdull-agency/expo-unlimited-secure-store": "^1.0.10",
|
||||||
"@react-native-async-storage/async-storage": "^1.17.8",
|
"@react-native-async-storage/async-storage": "^1.17.9",
|
||||||
"@react-native-clipboard/clipboard": "^1.10.0",
|
"@react-native-clipboard/clipboard": "^1.10.0",
|
||||||
"@react-native-community/blur": "^4.2.0",
|
"@react-native-community/blur": "^4.2.0",
|
||||||
"@react-native-community/cameraroll": "^4.1.2",
|
"@react-native-community/cameraroll": "^4.1.2",
|
||||||
@ -44,13 +44,13 @@
|
|||||||
"@react-navigation/native": "^6.0.11",
|
"@react-navigation/native": "^6.0.11",
|
||||||
"@react-navigation/native-stack": "^6.7.0",
|
"@react-navigation/native-stack": "^6.7.0",
|
||||||
"@react-navigation/stack": "^6.2.2",
|
"@react-navigation/stack": "^6.2.2",
|
||||||
"@reduxjs/toolkit": "^1.8.3",
|
"@reduxjs/toolkit": "^1.8.4",
|
||||||
"@sentry/react-native": "^4.2.2",
|
"@sentry/react-native": "^4.2.2",
|
||||||
"@sharcoux/slider": "^6.0.3",
|
"@sharcoux/slider": "^6.0.3",
|
||||||
"axios": "^0.27.2",
|
"axios": "^0.27.2",
|
||||||
"expo": "^46.0.2",
|
"expo": "^46.0.6",
|
||||||
"expo-auth-session": "^3.7.1",
|
"expo-auth-session": "^3.7.1",
|
||||||
"expo-av": "^12.0.3",
|
"expo-av": "^12.0.4",
|
||||||
"expo-constants": "^13.2.3",
|
"expo-constants": "^13.2.3",
|
||||||
"expo-crypto": "^11.0.0",
|
"expo-crypto": "^11.0.0",
|
||||||
"expo-device": "^4.3.0",
|
"expo-device": "^4.3.0",
|
||||||
@ -65,7 +65,7 @@
|
|||||||
"expo-secure-store": "^11.3.0",
|
"expo-secure-store": "^11.3.0",
|
||||||
"expo-splash-screen": "^0.16.1",
|
"expo-splash-screen": "^0.16.1",
|
||||||
"expo-store-review": "^5.3.0",
|
"expo-store-review": "^5.3.0",
|
||||||
"expo-updates": "^0.14.3",
|
"expo-updates": "^0.14.4",
|
||||||
"expo-video-thumbnails": "^6.4.0",
|
"expo-video-thumbnails": "^6.4.0",
|
||||||
"expo-web-browser": "^11.0.0",
|
"expo-web-browser": "^11.0.0",
|
||||||
"i18next": "^21.9.0",
|
"i18next": "^21.9.0",
|
||||||
@ -91,15 +91,15 @@
|
|||||||
"react-native-reanimated": "^2.9.1",
|
"react-native-reanimated": "^2.9.1",
|
||||||
"react-native-safe-area-context": "^4.3.1",
|
"react-native-safe-area-context": "^4.3.1",
|
||||||
"react-native-screens": "^3.15.0",
|
"react-native-screens": "^3.15.0",
|
||||||
"react-native-share-menu": "^5.0.5",
|
"react-native-share-menu": "^6.0.0",
|
||||||
"react-native-svg": "^12.4.3",
|
"react-native-svg": "^12.4.4",
|
||||||
"react-native-swipe-list-view": "^3.2.9",
|
"react-native-swipe-list-view": "^3.2.9",
|
||||||
"react-native-tab-view": "^3.1.1",
|
"react-native-tab-view": "^3.1.1",
|
||||||
"react-query": "^3.39.2",
|
"react-query": "^3.39.2",
|
||||||
"react-redux": "^8.0.2",
|
"react-redux": "^8.0.2",
|
||||||
"redux-persist": "^6.0.0",
|
"redux-persist": "^6.0.0",
|
||||||
"rn-placeholder": "^3.0.3",
|
"rn-placeholder": "^3.0.3",
|
||||||
"sentry-expo": "^5.0.1",
|
"sentry-expo": "^5.0.2",
|
||||||
"tslib": "^2.4.0",
|
"tslib": "^2.4.0",
|
||||||
"valid-url": "^1.0.9"
|
"valid-url": "^1.0.9"
|
||||||
},
|
},
|
||||||
@ -108,7 +108,7 @@
|
|||||||
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
|
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
|
||||||
"@babel/preset-react": "^7.18.6",
|
"@babel/preset-react": "^7.18.6",
|
||||||
"@babel/preset-typescript": "^7.18.6",
|
"@babel/preset-typescript": "^7.18.6",
|
||||||
"@expo/config": "^7.0.0",
|
"@expo/config": "^7.0.1",
|
||||||
"@types/lodash": "^4.14.182",
|
"@types/lodash": "^4.14.182",
|
||||||
"@types/react": "^18.0.17",
|
"@types/react": "^18.0.17",
|
||||||
"@types/react-dom": "^18.0.6",
|
"@types/react-dom": "^18.0.6",
|
||||||
|
@ -1,501 +0,0 @@
|
|||||||
diff --git a/node_modules/react-native-share-menu/ios/Constants.swift b/node_modules/react-native-share-menu/ios/Constants.swift
|
|
||||||
index 2811008..08385b7 100644
|
|
||||||
--- a/node_modules/react-native-share-menu/ios/Constants.swift
|
|
||||||
+++ b/node_modules/react-native-share-menu/ios/Constants.swift
|
|
||||||
@@ -23,7 +23,7 @@ public let COULD_NOT_PARSE_IMG_ERROR = "Couldn't parse image"
|
|
||||||
public let COULD_NOT_SAVE_FILE_ERROR = "Couldn't save file on disk"
|
|
||||||
public let NO_EXTENSION_CONTEXT_ERROR = "No extension context attached"
|
|
||||||
public let NO_DELEGATE_ERROR = "No ReactShareViewDelegate attached"
|
|
||||||
-public let COULD_NOT_FIND_ITEM_ERROR = "Couldn't find item attached to this share"
|
|
||||||
+public let COULD_NOT_FIND_ITEMS_ERROR = "Couldn't find items attached to this share"
|
|
||||||
|
|
||||||
// MARK: Keys
|
|
||||||
|
|
||||||
diff --git a/node_modules/react-native-share-menu/ios/Modules/ShareMenu.swift b/node_modules/react-native-share-menu/ios/Modules/ShareMenu.swift
|
|
||||||
index 6c4922a..74badda 100644
|
|
||||||
--- a/node_modules/react-native-share-menu/ios/Modules/ShareMenu.swift
|
|
||||||
+++ b/node_modules/react-native-share-menu/ios/Modules/ShareMenu.swift
|
|
||||||
@@ -9,7 +9,7 @@ class ShareMenu: RCTEventEmitter {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- var sharedData: [String:String]?
|
|
||||||
+ var sharedData: [[String:String]?]?
|
|
||||||
|
|
||||||
static var initialShare: (UIApplication, URL, [UIApplication.OpenURLOptionsKey : Any])?
|
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@ class ShareMenu: RCTEventEmitter {
|
|
||||||
|
|
||||||
let extraData = userDefaults.object(forKey: USER_DEFAULTS_EXTRA_DATA_KEY) as? [String:Any]
|
|
||||||
|
|
||||||
- if let data = userDefaults.object(forKey: USER_DEFAULTS_KEY) as? [String:String] {
|
|
||||||
+ if let data = userDefaults.object(forKey: USER_DEFAULTS_KEY) as? [[String:String]] {
|
|
||||||
sharedData = data
|
|
||||||
dispatchEvent(with: data, and: extraData)
|
|
||||||
userDefaults.removeObject(forKey: USER_DEFAULTS_KEY)
|
|
||||||
@@ -100,25 +100,22 @@ class ShareMenu: RCTEventEmitter {
|
|
||||||
|
|
||||||
@objc(getSharedText:)
|
|
||||||
func getSharedText(callback: RCTResponseSenderBlock) {
|
|
||||||
- guard var data: [String:Any] = sharedData else {
|
|
||||||
- callback([])
|
|
||||||
- return
|
|
||||||
- }
|
|
||||||
+ var data = [DATA_KEY: sharedData] as [String: Any]
|
|
||||||
|
|
||||||
if let bundleId = Bundle.main.bundleIdentifier, let userDefaults = UserDefaults(suiteName: "group.\(bundleId)") {
|
|
||||||
- data[EXTRA_DATA_KEY] = userDefaults.object(forKey: USER_DEFAULTS_EXTRA_DATA_KEY) as? [String:Any]
|
|
||||||
+ data[EXTRA_DATA_KEY] = userDefaults.object(forKey: USER_DEFAULTS_EXTRA_DATA_KEY) as? [String: Any]
|
|
||||||
} else {
|
|
||||||
print("Error: \(NO_APP_GROUP_ERROR)")
|
|
||||||
}
|
|
||||||
|
|
||||||
callback([data as Any])
|
|
||||||
- sharedData = nil
|
|
||||||
+ sharedData = []
|
|
||||||
}
|
|
||||||
|
|
||||||
- func dispatchEvent(with data: [String:String], and extraData: [String:Any]?) {
|
|
||||||
+ func dispatchEvent(with data: [[String:String]], and extraData: [String:Any]?) {
|
|
||||||
guard hasListeners else { return }
|
|
||||||
|
|
||||||
- var finalData = data as [String:Any]
|
|
||||||
+ var finalData = [DATA_KEY: data] as [String: Any]
|
|
||||||
if (extraData != nil) {
|
|
||||||
finalData[EXTRA_DATA_KEY] = extraData
|
|
||||||
}
|
|
||||||
diff --git a/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift b/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift
|
|
||||||
index 5d21773..0c7eaa7 100644
|
|
||||||
--- a/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift
|
|
||||||
+++ b/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift
|
|
||||||
@@ -3,8 +3,9 @@
|
|
||||||
// RNShareMenu
|
|
||||||
//
|
|
||||||
// Created by Gustavo Parreira on 28/07/2020.
|
|
||||||
-//
|
|
||||||
+// Modified by Veselin Stoyanov on 17/04/2021.
|
|
||||||
|
|
||||||
+import Foundation
|
|
||||||
import MobileCoreServices
|
|
||||||
|
|
||||||
@objc(ShareMenuReactView)
|
|
||||||
@@ -17,8 +18,6 @@ public class ShareMenuReactView: NSObject {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static func attachViewDelegate(_ delegate: ReactShareViewDelegate!) {
|
|
||||||
- guard (ShareMenuReactView.viewDelegate == nil) else { return }
|
|
||||||
-
|
|
||||||
ShareMenuReactView.viewDelegate = delegate
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -65,12 +64,12 @@ public class ShareMenuReactView: NSObject {
|
|
||||||
|
|
||||||
let extensionContext = viewDelegate.loadExtensionContext()
|
|
||||||
|
|
||||||
- guard let item = extensionContext.inputItems.first as? NSExtensionItem else {
|
|
||||||
- print("Error: \(COULD_NOT_FIND_ITEM_ERROR)")
|
|
||||||
+ guard let items = extensionContext.inputItems as? [NSExtensionItem] else {
|
|
||||||
+ print("Error: \(COULD_NOT_FIND_ITEMS_ERROR)")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
- viewDelegate.continueInApp(with: item, and: extraData)
|
|
||||||
+ viewDelegate.continueInApp(with: items, and: extraData)
|
|
||||||
}
|
|
||||||
|
|
||||||
@objc(data:reject:)
|
|
||||||
@@ -82,91 +81,96 @@ public class ShareMenuReactView: NSObject {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
- extractDataFromContext(context: extensionContext) { (data, mimeType, error) in
|
|
||||||
+ extractDataFromContext(context: extensionContext) { (data, error) in
|
|
||||||
guard (error == nil) else {
|
|
||||||
reject("error", error?.description, nil)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
- resolve([MIME_TYPE_KEY: mimeType, DATA_KEY: data])
|
|
||||||
+ resolve([DATA_KEY: data])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- func extractDataFromContext(context: NSExtensionContext, withCallback callback: @escaping (String?, String?, NSException?) -> Void) {
|
|
||||||
- let item:NSExtensionItem! = context.inputItems.first as? NSExtensionItem
|
|
||||||
- let attachments:[AnyObject]! = item.attachments
|
|
||||||
-
|
|
||||||
- var urlProvider:NSItemProvider! = nil
|
|
||||||
- var imageProvider:NSItemProvider! = nil
|
|
||||||
- var textProvider:NSItemProvider! = nil
|
|
||||||
- var dataProvider:NSItemProvider! = nil
|
|
||||||
-
|
|
||||||
- for provider in attachments {
|
|
||||||
- if provider.hasItemConformingToTypeIdentifier(kUTTypeURL as String) {
|
|
||||||
- urlProvider = provider as? NSItemProvider
|
|
||||||
- break
|
|
||||||
- } else if provider.hasItemConformingToTypeIdentifier(kUTTypeText as String) {
|
|
||||||
- textProvider = provider as? NSItemProvider
|
|
||||||
- break
|
|
||||||
- } else if provider.hasItemConformingToTypeIdentifier(kUTTypeImage as String) {
|
|
||||||
- imageProvider = provider as? NSItemProvider
|
|
||||||
- break
|
|
||||||
- } else if provider.hasItemConformingToTypeIdentifier(kUTTypeData as String) {
|
|
||||||
- dataProvider = provider as? NSItemProvider
|
|
||||||
- break
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
+ func extractDataFromContext(context: NSExtensionContext, withCallback callback: @escaping ([Any]?, NSException?) -> Void) {
|
|
||||||
+ DispatchQueue.global().async {
|
|
||||||
+ let semaphore = DispatchSemaphore(value: 0)
|
|
||||||
+ let items:[NSExtensionItem]! = context.inputItems as? [NSExtensionItem]
|
|
||||||
+ var results: [[String: String]] = []
|
|
||||||
|
|
||||||
- if (urlProvider != nil) {
|
|
||||||
- urlProvider.loadItem(forTypeIdentifier: kUTTypeURL as String, options: nil) { (item, error) in
|
|
||||||
- let url: URL! = item as? URL
|
|
||||||
+ for item in items {
|
|
||||||
+ guard let attachments = item.attachments else {
|
|
||||||
+ callback(nil, NSException(name: NSExceptionName(rawValue: "Error"), reason:"couldn't find attachments", userInfo:nil))
|
|
||||||
+ return
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- callback(url.absoluteString, "text/plain", nil)
|
|
||||||
- }
|
|
||||||
- } else if (imageProvider != nil) {
|
|
||||||
- imageProvider.loadItem(forTypeIdentifier: kUTTypeImage as String, options: nil) { (item, error) in
|
|
||||||
- let imageUrl: URL! = item as? URL
|
|
||||||
+ for provider in attachments {
|
|
||||||
+ if provider.hasItemConformingToTypeIdentifier(kUTTypeURL as String) {
|
|
||||||
+ provider.loadItem(forTypeIdentifier: kUTTypeURL as String, options: nil) { (item, error) in
|
|
||||||
+ let url: URL! = item as? URL
|
|
||||||
|
|
||||||
- if (imageUrl != nil) {
|
|
||||||
- if let imageData = try? Data(contentsOf: imageUrl) {
|
|
||||||
- callback(imageUrl.absoluteString, self.extractMimeType(from: imageUrl), nil)
|
|
||||||
- }
|
|
||||||
- } else {
|
|
||||||
- let image: UIImage! = item as? UIImage
|
|
||||||
+ results.append([DATA_KEY: url.absoluteString, MIME_TYPE_KEY: "text/plain"])
|
|
||||||
|
|
||||||
- if (image != nil) {
|
|
||||||
- let imageData: Data! = image.pngData();
|
|
||||||
+ semaphore.signal()
|
|
||||||
+ }
|
|
||||||
+ semaphore.wait()
|
|
||||||
+ } else if provider.hasItemConformingToTypeIdentifier(kUTTypeText as String) {
|
|
||||||
+ provider.loadItem(forTypeIdentifier: kUTTypeText as String, options: nil) { (item, error) in
|
|
||||||
+ let text:String! = item as? String
|
|
||||||
+
|
|
||||||
+ results.append([DATA_KEY: text, MIME_TYPE_KEY: "text/plain"])
|
|
||||||
|
|
||||||
- // Creating temporary URL for image data (UIImage)
|
|
||||||
- guard let imageURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("TemporaryScreenshot.png") else {
|
|
||||||
- return
|
|
||||||
+ semaphore.signal()
|
|
||||||
+ }
|
|
||||||
+ semaphore.wait()
|
|
||||||
+ } else if provider.hasItemConformingToTypeIdentifier(kUTTypeImage as String) {
|
|
||||||
+ provider.loadItem(forTypeIdentifier: kUTTypeImage as String, options: nil) { (item, error) in
|
|
||||||
+ let imageUrl: URL! = item as? URL
|
|
||||||
+
|
|
||||||
+ if (imageUrl != nil) {
|
|
||||||
+ if let imageData = try? Data(contentsOf: imageUrl) {
|
|
||||||
+ results.append([DATA_KEY: imageUrl.absoluteString, MIME_TYPE_KEY: self.extractMimeType(from: imageUrl)])
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ let image: UIImage! = item as? UIImage
|
|
||||||
+
|
|
||||||
+ if (image != nil) {
|
|
||||||
+ let imageData: Data! = image.pngData();
|
|
||||||
+
|
|
||||||
+ // Creating temporary URL for image data (UIImage)
|
|
||||||
+ guard let imageURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("TemporaryScreenshot.png") else {
|
|
||||||
+ return
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ do {
|
|
||||||
+ // Writing the image to the URL
|
|
||||||
+ try imageData.write(to: imageURL)
|
|
||||||
+
|
|
||||||
+ results.append([DATA_KEY: imageUrl.absoluteString, MIME_TYPE_KEY: imageURL.extractMimeType()])
|
|
||||||
+ } catch {
|
|
||||||
+ callback(nil, NSException(name: NSExceptionName(rawValue: "Error"), reason:"Can't load image", userInfo:nil))
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ semaphore.signal()
|
|
||||||
}
|
|
||||||
+ semaphore.wait()
|
|
||||||
+ } else if provider.hasItemConformingToTypeIdentifier(kUTTypeData as String) {
|
|
||||||
+ provider.loadItem(forTypeIdentifier: kUTTypeData as String, options: nil) { (item, error) in
|
|
||||||
+ let url: URL! = item as? URL
|
|
||||||
|
|
||||||
- do {
|
|
||||||
- // Writing the image to the URL
|
|
||||||
- try imageData.write(to: imageURL)
|
|
||||||
+ results.append([DATA_KEY: url.absoluteString, MIME_TYPE_KEY: self.extractMimeType(from: url)])
|
|
||||||
|
|
||||||
- callback(imageURL.absoluteString, imageURL.extractMimeType(), nil)
|
|
||||||
- } catch {
|
|
||||||
- callback(nil, nil, NSException(name: NSExceptionName(rawValue: "Error"), reason:"Can't load image", userInfo:nil))
|
|
||||||
+ semaphore.signal()
|
|
||||||
}
|
|
||||||
+ semaphore.wait()
|
|
||||||
+ } else {
|
|
||||||
+ callback(nil, NSException(name: NSExceptionName(rawValue: "Error"), reason:"couldn't find provider", userInfo:nil))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- } else if (textProvider != nil) {
|
|
||||||
- textProvider.loadItem(forTypeIdentifier: kUTTypeText as String, options: nil) { (item, error) in
|
|
||||||
- let text:String! = item as? String
|
|
||||||
|
|
||||||
- callback(text, "text/plain", nil)
|
|
||||||
- }
|
|
||||||
- } else if (dataProvider != nil) {
|
|
||||||
- dataProvider.loadItem(forTypeIdentifier: kUTTypeData as String, options: nil) { (item, error) in
|
|
||||||
- let url: URL! = item as? URL
|
|
||||||
-
|
|
||||||
- callback(url.absoluteString, self.extractMimeType(from: url), nil)
|
|
||||||
- }
|
|
||||||
- } else {
|
|
||||||
- callback(nil, nil, NSException(name: NSExceptionName(rawValue: "Error"), reason:"couldn't find provider", userInfo:nil))
|
|
||||||
+ callback(results, nil)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/node_modules/react-native-share-menu/ios/ReactShareViewController.swift b/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
|
|
||||||
index 0189ef6..f42bce6 100644
|
|
||||||
--- a/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
|
|
||||||
+++ b/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
|
|
||||||
@@ -62,7 +62,7 @@ class ReactShareViewController: ShareViewController, RCTBridgeDelegate, ReactSha
|
|
||||||
self.openHostApp()
|
|
||||||
}
|
|
||||||
|
|
||||||
- func continueInApp(with item: NSExtensionItem, and extraData: [String:Any]?) {
|
|
||||||
- handlePost(item, extraData: extraData)
|
|
||||||
+ func continueInApp(with items: [NSExtensionItem], and extraData: [String:Any]?) {
|
|
||||||
+ handlePost(items, extraData: extraData)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/node_modules/react-native-share-menu/ios/ReactShareViewDelegate.swift b/node_modules/react-native-share-menu/ios/ReactShareViewDelegate.swift
|
|
||||||
index 0aa4c58..ad0812c 100644
|
|
||||||
--- a/node_modules/react-native-share-menu/ios/ReactShareViewDelegate.swift
|
|
||||||
+++ b/node_modules/react-native-share-menu/ios/ReactShareViewDelegate.swift
|
|
||||||
@@ -10,5 +10,5 @@ public protocol ReactShareViewDelegate {
|
|
||||||
|
|
||||||
func openApp()
|
|
||||||
|
|
||||||
- func continueInApp(with item: NSExtensionItem, and extraData: [String:Any]?)
|
|
||||||
+ func continueInApp(with items: [NSExtensionItem], and extraData: [String:Any]?)
|
|
||||||
}
|
|
||||||
diff --git a/node_modules/react-native-share-menu/ios/ShareViewController.swift b/node_modules/react-native-share-menu/ios/ShareViewController.swift
|
|
||||||
index 7faf6e4..f02bde5 100644
|
|
||||||
--- a/node_modules/react-native-share-menu/ios/ShareViewController.swift
|
|
||||||
+++ b/node_modules/react-native-share-menu/ios/ShareViewController.swift
|
|
||||||
@@ -6,15 +6,18 @@
|
|
||||||
//
|
|
||||||
// Created by Gustavo Parreira on 26/07/2020.
|
|
||||||
//
|
|
||||||
+// Modified by Veselin Stoyanov on 17/04/2021.
|
|
||||||
|
|
||||||
+import Foundation
|
|
||||||
import MobileCoreServices
|
|
||||||
import UIKit
|
|
||||||
import Social
|
|
||||||
import RNShareMenu
|
|
||||||
|
|
||||||
-class ShareViewController: SLComposeServiceViewController {
|
|
||||||
+class ShareViewController: UIViewController {
|
|
||||||
var hostAppId: String?
|
|
||||||
var hostAppUrlScheme: String?
|
|
||||||
+ var sharedItems: [Any] = []
|
|
||||||
|
|
||||||
override func viewDidLoad() {
|
|
||||||
super.viewDidLoad()
|
|
||||||
@@ -30,46 +33,64 @@ class ShareViewController: SLComposeServiceViewController {
|
|
||||||
} else {
|
|
||||||
print("Error: \(NO_INFO_PLIST_URL_SCHEME_ERROR)")
|
|
||||||
}
|
|
||||||
- }
|
|
||||||
|
|
||||||
- override func isContentValid() -> Bool {
|
|
||||||
- // Do validation of contentText and/or NSExtensionContext attachments here
|
|
||||||
- return true
|
|
||||||
+ guard let items = extensionContext?.inputItems as? [NSExtensionItem] else {
|
|
||||||
+ cancelRequest()
|
|
||||||
+ return
|
|
||||||
}
|
|
||||||
|
|
||||||
- override func didSelectPost() {
|
|
||||||
- // This is called after the user selects Post. Do the upload of contentText and/or NSExtensionContext attachments.
|
|
||||||
- guard let item = extensionContext?.inputItems.first as? NSExtensionItem else {
|
|
||||||
- cancelRequest()
|
|
||||||
+ handlePost(items)
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ override func viewDidAppear(_ animated: Bool) {
|
|
||||||
+ super.viewDidAppear(animated)
|
|
||||||
+
|
|
||||||
+ completeRequest()
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ func handlePost(_ items: [NSExtensionItem], extraData: [String:Any]? = nil) {
|
|
||||||
+ DispatchQueue.global().async {
|
|
||||||
+ guard let hostAppId = self.hostAppId else {
|
|
||||||
+ self.exit(withError: NO_INFO_PLIST_INDENTIFIER_ERROR)
|
|
||||||
+ return
|
|
||||||
+ }
|
|
||||||
+ guard let userDefaults = UserDefaults(suiteName: "group.\(hostAppId)") else {
|
|
||||||
+ self.exit(withError: NO_APP_GROUP_ERROR)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
- handlePost(item)
|
|
||||||
- }
|
|
||||||
+ if let data = extraData {
|
|
||||||
+ self.storeExtraData(data)
|
|
||||||
+ } else {
|
|
||||||
+ self.removeExtraData()
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- override func configurationItems() -> [Any]! {
|
|
||||||
- // To add configuration options via table cells at the bottom of the sheet, return an array of SLComposeSheetConfigurationItem here.
|
|
||||||
- return []
|
|
||||||
- }
|
|
||||||
+ let semaphore = DispatchSemaphore(value: 0)
|
|
||||||
|
|
||||||
- func handlePost(_ item: NSExtensionItem, extraData: [String:Any]? = nil) {
|
|
||||||
- guard let provider = item.attachments?.first else {
|
|
||||||
- cancelRequest()
|
|
||||||
- return
|
|
||||||
- }
|
|
||||||
+ for item in items {
|
|
||||||
+ guard let attachments = item.attachments else {
|
|
||||||
+ self.cancelRequest()
|
|
||||||
+ return
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- if let data = extraData {
|
|
||||||
- storeExtraData(data)
|
|
||||||
- } else {
|
|
||||||
- removeExtraData()
|
|
||||||
- }
|
|
||||||
+ for provider in attachments {
|
|
||||||
+ if provider.isText {
|
|
||||||
+ self.storeText(withProvider: provider, semaphore)
|
|
||||||
+ } else if provider.isURL {
|
|
||||||
+ self.storeUrl(withProvider: provider, semaphore)
|
|
||||||
+ } else {
|
|
||||||
+ self.storeFile(withProvider: provider, semaphore)
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- if provider.isText {
|
|
||||||
- storeText(withProvider: provider)
|
|
||||||
- } else if provider.isURL {
|
|
||||||
- storeUrl(withProvider: provider)
|
|
||||||
- } else {
|
|
||||||
- storeFile(withProvider: provider)
|
|
||||||
+ semaphore.wait()
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ userDefaults.set(self.sharedItems,
|
|
||||||
+ forKey: USER_DEFAULTS_KEY)
|
|
||||||
+ userDefaults.synchronize()
|
|
||||||
+
|
|
||||||
+ self.openHostApp()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -99,7 +120,7 @@ class ShareViewController: SLComposeServiceViewController {
|
|
||||||
userDefaults.synchronize()
|
|
||||||
}
|
|
||||||
|
|
||||||
- func storeText(withProvider provider: NSItemProvider) {
|
|
||||||
+ func storeText(withProvider provider: NSItemProvider, _ semaphore: DispatchSemaphore) {
|
|
||||||
provider.loadItem(forTypeIdentifier: kUTTypeText as String, options: nil) { (data, error) in
|
|
||||||
guard (error == nil) else {
|
|
||||||
self.exit(withError: error.debugDescription)
|
|
||||||
@@ -109,24 +130,13 @@ class ShareViewController: SLComposeServiceViewController {
|
|
||||||
self.exit(withError: COULD_NOT_FIND_STRING_ERROR)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
- guard let hostAppId = self.hostAppId else {
|
|
||||||
- self.exit(withError: NO_INFO_PLIST_INDENTIFIER_ERROR)
|
|
||||||
- return
|
|
||||||
- }
|
|
||||||
- guard let userDefaults = UserDefaults(suiteName: "group.\(hostAppId)") else {
|
|
||||||
- self.exit(withError: NO_APP_GROUP_ERROR)
|
|
||||||
- return
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- userDefaults.set([DATA_KEY: text, MIME_TYPE_KEY: "text/plain"],
|
|
||||||
- forKey: USER_DEFAULTS_KEY)
|
|
||||||
- userDefaults.synchronize()
|
|
||||||
|
|
||||||
- self.openHostApp()
|
|
||||||
+ self.sharedItems.append([DATA_KEY: text, MIME_TYPE_KEY: "text/plain"])
|
|
||||||
+ semaphore.signal()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- func storeUrl(withProvider provider: NSItemProvider) {
|
|
||||||
+ func storeUrl(withProvider provider: NSItemProvider, _ semaphore: DispatchSemaphore) {
|
|
||||||
provider.loadItem(forTypeIdentifier: kUTTypeURL as String, options: nil) { (data, error) in
|
|
||||||
guard (error == nil) else {
|
|
||||||
self.exit(withError: error.debugDescription)
|
|
||||||
@@ -136,24 +146,13 @@ class ShareViewController: SLComposeServiceViewController {
|
|
||||||
self.exit(withError: COULD_NOT_FIND_URL_ERROR)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
- guard let hostAppId = self.hostAppId else {
|
|
||||||
- self.exit(withError: NO_INFO_PLIST_INDENTIFIER_ERROR)
|
|
||||||
- return
|
|
||||||
- }
|
|
||||||
- guard let userDefaults = UserDefaults(suiteName: "group.\(hostAppId)") else {
|
|
||||||
- self.exit(withError: NO_APP_GROUP_ERROR)
|
|
||||||
- return
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- userDefaults.set([DATA_KEY: url.absoluteString, MIME_TYPE_KEY: "text/plain"],
|
|
||||||
- forKey: USER_DEFAULTS_KEY)
|
|
||||||
- userDefaults.synchronize()
|
|
||||||
|
|
||||||
- self.openHostApp()
|
|
||||||
+ self.sharedItems.append([DATA_KEY: url.absoluteString, MIME_TYPE_KEY: "text/plain"])
|
|
||||||
+ semaphore.signal()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- func storeFile(withProvider provider: NSItemProvider) {
|
|
||||||
+ func storeFile(withProvider provider: NSItemProvider, _ semaphore: DispatchSemaphore) {
|
|
||||||
provider.loadItem(forTypeIdentifier: kUTTypeData as String, options: nil) { (data, error) in
|
|
||||||
guard (error == nil) else {
|
|
||||||
self.exit(withError: error.debugDescription)
|
|
||||||
@@ -167,10 +166,6 @@ class ShareViewController: SLComposeServiceViewController {
|
|
||||||
self.exit(withError: NO_INFO_PLIST_INDENTIFIER_ERROR)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
- guard let userDefaults = UserDefaults(suiteName: "group.\(hostAppId)") else {
|
|
||||||
- self.exit(withError: NO_APP_GROUP_ERROR)
|
|
||||||
- return
|
|
||||||
- }
|
|
||||||
guard let groupFileManagerContainer = FileManager.default
|
|
||||||
.containerURL(forSecurityApplicationGroupIdentifier: "group.\(hostAppId)")
|
|
||||||
else {
|
|
||||||
@@ -189,11 +184,8 @@ class ShareViewController: SLComposeServiceViewController {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
- userDefaults.set([DATA_KEY: filePath.absoluteString, MIME_TYPE_KEY: mimeType],
|
|
||||||
- forKey: USER_DEFAULTS_KEY)
|
|
||||||
- userDefaults.synchronize()
|
|
||||||
-
|
|
||||||
- self.openHostApp()
|
|
||||||
+ self.sharedItems.append([DATA_KEY: filePath.absoluteString, MIME_TYPE_KEY: mimeType])
|
|
||||||
+ semaphore.signal()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
72
patches/react-native-share-menu+6.0.0.patch
Normal file
72
patches/react-native-share-menu+6.0.0.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
diff --git a/node_modules/react-native-share-menu/ios/ReactShareViewController.swift b/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
|
||||||
|
index f42bce6..ee36062 100644
|
||||||
|
--- a/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
|
||||||
|
+++ b/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
|
||||||
|
@@ -13,7 +13,7 @@ class ReactShareViewController: ShareViewController, RCTBridgeDelegate, ReactSha
|
||||||
|
func sourceURL(for bridge: RCTBridge!) -> URL! {
|
||||||
|
#if DEBUG
|
||||||
|
return RCTBundleURLProvider.sharedSettings()?
|
||||||
|
- .jsBundleURL(forBundleRoot: "index.share", fallbackResource: nil)
|
||||||
|
+ .jsBundleURL(forBundleRoot: "index.share")
|
||||||
|
#else
|
||||||
|
return Bundle.main.url(forResource: "main", withExtension: "jsbundle")
|
||||||
|
#endif
|
||||||
|
diff --git a/node_modules/react-native-share-menu/ios/ShareViewController.swift b/node_modules/react-native-share-menu/ios/ShareViewController.swift
|
||||||
|
index 12d8c92..64aa72b 100644
|
||||||
|
--- a/node_modules/react-native-share-menu/ios/ShareViewController.swift
|
||||||
|
+++ b/node_modules/react-native-share-menu/ios/ShareViewController.swift
|
||||||
|
@@ -19,8 +19,8 @@ class ShareViewController: SLComposeServiceViewController {
|
||||||
|
var hostAppUrlScheme: String?
|
||||||
|
var sharedItems: [Any] = []
|
||||||
|
|
||||||
|
- override func viewDidLoad() {
|
||||||
|
- super.viewDidLoad()
|
||||||
|
+ override func viewWillAppear(_ animated: Bool) {
|
||||||
|
+ super.viewWillAppear(animated)
|
||||||
|
|
||||||
|
if let hostAppId = Bundle.main.object(forInfoDictionaryKey: HOST_APP_IDENTIFIER_INFO_PLIST_KEY) as? String {
|
||||||
|
self.hostAppId = hostAppId
|
||||||
|
@@ -33,6 +33,13 @@ class ShareViewController: SLComposeServiceViewController {
|
||||||
|
} else {
|
||||||
|
print("Error: \(NO_INFO_PLIST_URL_SCHEME_ERROR)")
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ guard let items = extensionContext?.inputItems as? [NSExtensionItem] else {
|
||||||
|
+ cancelRequest()
|
||||||
|
+ return
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ handlePost(items)
|
||||||
|
}
|
||||||
|
|
||||||
|
override func isContentValid() -> Bool {
|
||||||
|
@@ -40,16 +47,6 @@ class ShareViewController: SLComposeServiceViewController {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
- override func didSelectPost() {
|
||||||
|
- // This is called after the user selects Post. Do the upload of contentText and/or NSExtensionContext attachments.
|
||||||
|
- guard let items = extensionContext?.inputItems as? [NSExtensionItem] else {
|
||||||
|
- cancelRequest()
|
||||||
|
- return
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- handlePost(items)
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
override func configurationItems() -> [Any]! {
|
||||||
|
// To add configuration options via table cells at the bottom of the sheet, return an array of SLComposeSheetConfigurationItem here.
|
||||||
|
return []
|
||||||
|
@@ -238,11 +235,10 @@ class ShareViewController: SLComposeServiceViewController {
|
||||||
|
|
||||||
|
func completeRequest() {
|
||||||
|
// Inform the host that we're done, so it un-blocks its UI. Note: Alternatively you could call super's -didSelectPost, which will similarly complete the extension context.
|
||||||
|
- extensionContext!.completeRequest(returningItems: [], completionHandler: nil)
|
||||||
|
+ extensionContext!.completeRequest(returningItems: nil, completionHandler: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func cancelRequest() {
|
||||||
|
extensionContext!.cancelRequest(withError: NSError())
|
||||||
|
}
|
||||||
|
-
|
||||||
|
}
|
@ -4,6 +4,7 @@ import { displayMessage, Message } from '@components/Message'
|
|||||||
import navigationRef from '@helpers/navigationRef'
|
import navigationRef from '@helpers/navigationRef'
|
||||||
import { NavigationContainer } from '@react-navigation/native'
|
import { NavigationContainer } from '@react-navigation/native'
|
||||||
import { createNativeStackNavigator } from '@react-navigation/native-stack'
|
import { createNativeStackNavigator } from '@react-navigation/native-stack'
|
||||||
|
import ScreenAccountSelection from '@screens/AccountSelection'
|
||||||
import ScreenActions from '@screens/Actions'
|
import ScreenActions from '@screens/Actions'
|
||||||
import ScreenAnnouncements from '@screens/Announcements'
|
import ScreenAnnouncements from '@screens/Announcements'
|
||||||
import ScreenCompose from '@screens/Compose'
|
import ScreenCompose from '@screens/Compose'
|
||||||
@ -170,7 +171,9 @@ const Screens: React.FC<Props> = ({ localCorrupt }) => {
|
|||||||
}
|
}
|
||||||
| { data: string | string[]; mimeType: string }
|
| { data: string | string[]; mimeType: string }
|
||||||
) => {
|
) => {
|
||||||
console.log('item', item)
|
if (Platform.OS === 'android') {
|
||||||
|
return
|
||||||
|
}
|
||||||
if (instanceActive < 0) {
|
if (instanceActive < 0) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -235,30 +238,34 @@ const Screens: React.FC<Props> = ({ localCorrupt }) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case 'android':
|
// case 'android':
|
||||||
if (!item.mimeType) {
|
// if (!item.mimeType) {
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
let tempData: string[]
|
// for (const d of item.data) {
|
||||||
if (!Array.isArray(item.data)) {
|
// filterMedia({ uri: d, mime: item.mimeType })
|
||||||
tempData = [item.data]
|
// }
|
||||||
} else {
|
// break
|
||||||
tempData = item.data
|
|
||||||
}
|
|
||||||
for (const d of item.data) {
|
|
||||||
filterMedia({ uri: d, mime: item.mimeType })
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!text && !media.length) {
|
if (!text && !media.length) {
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
console.log('media', media)
|
console.log('share', text, media)
|
||||||
navigationRef.navigate('Screen-Compose', { type: 'share', text, media })
|
if (instances.length > 1) {
|
||||||
|
navigationRef.navigate('Screen-AccountSelection', {
|
||||||
|
share: { text, media }
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
navigationRef.navigate('Screen-Compose', {
|
||||||
|
type: 'share',
|
||||||
|
text,
|
||||||
|
media
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[instanceActive]
|
[]
|
||||||
)
|
)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
ShareMenu.getInitialShare(handleShare)
|
ShareMenu.getInitialShare(handleShare)
|
||||||
@ -333,6 +340,23 @@ const Screens: React.FC<Props> = ({ localCorrupt }) => {
|
|||||||
animation: 'fade'
|
animation: 'fade'
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
<Stack.Screen
|
||||||
|
name='Screen-AccountSelection'
|
||||||
|
component={ScreenAccountSelection}
|
||||||
|
options={({ navigation }) => ({
|
||||||
|
title: t('screenAccountSelection:heading'),
|
||||||
|
headerShadowVisible: false,
|
||||||
|
presentation: 'modal',
|
||||||
|
gestureEnabled: false,
|
||||||
|
headerLeft: () => (
|
||||||
|
<HeaderLeft
|
||||||
|
type='text'
|
||||||
|
content={t('common:buttons.cancel')}
|
||||||
|
onPress={() => navigation.goBack()}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
/>
|
||||||
</Stack.Navigator>
|
</Stack.Navigator>
|
||||||
|
|
||||||
<Message />
|
<Message />
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import chalk from 'chalk'
|
|
||||||
import Constants from 'expo-constants'
|
import Constants from 'expo-constants'
|
||||||
|
import handleError, { ctx } from './handleError'
|
||||||
const ctx = new chalk.Instance({ level: 3 })
|
|
||||||
|
|
||||||
export type Params = {
|
export type Params = {
|
||||||
method: 'get' | 'post' | 'put' | 'delete'
|
method: 'get' | 'post' | 'put' | 'delete'
|
||||||
@ -57,40 +55,7 @@ const apiGeneral = async <T = unknown>({
|
|||||||
body: response.data
|
body: response.data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(handleError)
|
||||||
if (error?.response) {
|
|
||||||
// The request was made and the server responded with a status code
|
|
||||||
// that falls out of the range of 2xx
|
|
||||||
console.error(
|
|
||||||
ctx.bold(' API general '),
|
|
||||||
ctx.bold('response'),
|
|
||||||
error.response.status,
|
|
||||||
error.response.data.error
|
|
||||||
)
|
|
||||||
return Promise.reject({
|
|
||||||
status: error?.response.status,
|
|
||||||
message: error?.response.data.error
|
|
||||||
})
|
|
||||||
} else if (error?.request) {
|
|
||||||
// The request was made but no response was received
|
|
||||||
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
|
|
||||||
// http.ClientRequest in node.js
|
|
||||||
console.error(
|
|
||||||
ctx.bold(' API general '),
|
|
||||||
ctx.bold('request'),
|
|
||||||
error.request
|
|
||||||
)
|
|
||||||
return Promise.reject()
|
|
||||||
} else {
|
|
||||||
console.error(
|
|
||||||
ctx.bold(' API general '),
|
|
||||||
ctx.bold('internal'),
|
|
||||||
error?.message,
|
|
||||||
url
|
|
||||||
)
|
|
||||||
return Promise.reject()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default apiGeneral
|
export default apiGeneral
|
||||||
|
38
src/api/handleError.ts
Normal file
38
src/api/handleError.ts
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import chalk from 'chalk'
|
||||||
|
|
||||||
|
export const ctx = new chalk.Instance({ level: 3 })
|
||||||
|
|
||||||
|
const handleError = (error: any) => {
|
||||||
|
if (error?.response) {
|
||||||
|
// The request was made and the server responded with a status code
|
||||||
|
// that falls out of the range of 2xx
|
||||||
|
console.error(
|
||||||
|
ctx.bold(' API instance '),
|
||||||
|
ctx.bold('response'),
|
||||||
|
error.response.status,
|
||||||
|
error?.response.data?.error || error?.response.message || 'Unknown error'
|
||||||
|
)
|
||||||
|
return Promise.reject({
|
||||||
|
status: error?.response.status,
|
||||||
|
message:
|
||||||
|
error?.response.data?.error ||
|
||||||
|
error?.response.message ||
|
||||||
|
'Unknown error'
|
||||||
|
})
|
||||||
|
} else if (error?.request) {
|
||||||
|
// The request was made but no response was received
|
||||||
|
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
|
||||||
|
// http.ClientRequest in node.js
|
||||||
|
console.error(ctx.bold(' API instance '), ctx.bold('request'), error)
|
||||||
|
return Promise.reject()
|
||||||
|
} else {
|
||||||
|
console.error(
|
||||||
|
ctx.bold(' API instance '),
|
||||||
|
ctx.bold('internal'),
|
||||||
|
error?.message
|
||||||
|
)
|
||||||
|
return Promise.reject()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default handleError
|
@ -1,10 +1,8 @@
|
|||||||
import { RootState } from '@root/store'
|
import { RootState } from '@root/store'
|
||||||
import axios, { AxiosRequestConfig } from 'axios'
|
import axios, { AxiosRequestConfig } from 'axios'
|
||||||
import chalk from 'chalk'
|
|
||||||
import Constants from 'expo-constants'
|
import Constants from 'expo-constants'
|
||||||
import li from 'li'
|
import li from 'li'
|
||||||
|
import handleError, { ctx } from './handleError'
|
||||||
const ctx = new chalk.Instance({ level: 3 })
|
|
||||||
|
|
||||||
export type Params = {
|
export type Params = {
|
||||||
method: 'get' | 'post' | 'put' | 'delete' | 'patch'
|
method: 'get' | 'post' | 'put' | 'delete' | 'patch'
|
||||||
@ -99,36 +97,7 @@ const apiInstance = async <T = unknown>({
|
|||||||
links: { prev, next }
|
links: { prev, next }
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(handleError)
|
||||||
if (error?.response) {
|
|
||||||
// The request was made and the server responded with a status code
|
|
||||||
// that falls out of the range of 2xx
|
|
||||||
console.error(
|
|
||||||
ctx.bold(' API instance '),
|
|
||||||
ctx.bold('response'),
|
|
||||||
error.response.status,
|
|
||||||
error.response.data.error
|
|
||||||
)
|
|
||||||
return Promise.reject({
|
|
||||||
status: error?.response.status,
|
|
||||||
message: error?.response.data.error
|
|
||||||
})
|
|
||||||
} else if (error?.request) {
|
|
||||||
// The request was made but no response was received
|
|
||||||
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
|
|
||||||
// http.ClientRequest in node.js
|
|
||||||
console.error(ctx.bold(' API instance '), ctx.bold('request'), error)
|
|
||||||
return Promise.reject()
|
|
||||||
} else {
|
|
||||||
console.error(
|
|
||||||
ctx.bold(' API instance '),
|
|
||||||
ctx.bold('internal'),
|
|
||||||
error?.message,
|
|
||||||
url
|
|
||||||
)
|
|
||||||
return Promise.reject()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default apiInstance
|
export default apiInstance
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
import { mapEnvironment } from '@utils/checkEnvironment'
|
import { mapEnvironment } from '@utils/checkEnvironment'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import chalk from 'chalk'
|
|
||||||
import Constants from 'expo-constants'
|
import Constants from 'expo-constants'
|
||||||
import * as Sentry from 'sentry-expo'
|
import * as Sentry from 'sentry-expo'
|
||||||
|
import handleError, { ctx } from './handleError'
|
||||||
const ctx = new chalk.Instance({ level: 3 })
|
|
||||||
|
|
||||||
export type Params = {
|
export type Params = {
|
||||||
method: 'get' | 'post' | 'put' | 'delete'
|
method: 'get' | 'post' | 'put' | 'delete'
|
||||||
@ -75,38 +73,7 @@ const apiTooot = async <T = unknown>({
|
|||||||
Sentry.Native.captureException(error)
|
Sentry.Native.captureException(error)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (error?.response) {
|
return handleError(error)
|
||||||
// The request was made and the server responded with a status code
|
|
||||||
// that falls out of the range of 2xx
|
|
||||||
console.error(
|
|
||||||
ctx.bold(' API tooot '),
|
|
||||||
ctx.bold('response'),
|
|
||||||
error.response.status,
|
|
||||||
error.response.data.error
|
|
||||||
)
|
|
||||||
return Promise.reject({
|
|
||||||
status: error?.response.status,
|
|
||||||
message: error?.response.data.error
|
|
||||||
})
|
|
||||||
} else if (error?.request) {
|
|
||||||
// The request was made but no response was received
|
|
||||||
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
|
|
||||||
// http.ClientRequest in node.js
|
|
||||||
console.error(
|
|
||||||
ctx.bold(' API tooot '),
|
|
||||||
ctx.bold('request'),
|
|
||||||
error.request
|
|
||||||
)
|
|
||||||
return Promise.reject()
|
|
||||||
} else {
|
|
||||||
console.error(
|
|
||||||
ctx.bold(' API tooot '),
|
|
||||||
ctx.bold('internal'),
|
|
||||||
error?.message,
|
|
||||||
url
|
|
||||||
)
|
|
||||||
return Promise.reject()
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
45
src/components/AccountButton.tsx
Normal file
45
src/components/AccountButton.tsx
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import { useNavigation } from '@react-navigation/native'
|
||||||
|
import initQuery from '@utils/initQuery'
|
||||||
|
import { InstanceLatest } from '@utils/migrations/instances/migration'
|
||||||
|
import { StyleConstants } from '@utils/styles/constants'
|
||||||
|
import React from 'react'
|
||||||
|
import Button from './Button'
|
||||||
|
import haptics from './haptics'
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
instance: InstanceLatest
|
||||||
|
selected?: boolean
|
||||||
|
additionalActions?: () => void
|
||||||
|
}
|
||||||
|
|
||||||
|
const AccountButton: React.FC<Props> = ({
|
||||||
|
instance,
|
||||||
|
selected = false,
|
||||||
|
additionalActions
|
||||||
|
}) => {
|
||||||
|
const navigation = useNavigation()
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Button
|
||||||
|
type='text'
|
||||||
|
selected={selected}
|
||||||
|
style={{
|
||||||
|
marginBottom: StyleConstants.Spacing.M,
|
||||||
|
marginRight: StyleConstants.Spacing.M
|
||||||
|
}}
|
||||||
|
content={`@${instance.account.acct}@${instance.uri}${
|
||||||
|
selected ? ' ✓' : ''
|
||||||
|
}`}
|
||||||
|
onPress={() => {
|
||||||
|
haptics('Light')
|
||||||
|
initQuery({ instance, prefetch: { enabled: true } })
|
||||||
|
navigation.goBack()
|
||||||
|
if (additionalActions) {
|
||||||
|
additionalActions()
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default AccountButton
|
@ -3,27 +3,30 @@ import { useTheme } from '@utils/styles/ThemeManager'
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
||||||
export interface Props {
|
export interface Props {
|
||||||
content: string
|
content: React.ReactNode | string
|
||||||
inverted?: boolean
|
inverted?: boolean
|
||||||
|
onPress?: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
// Used for Android mostly
|
// Used for Android mostly
|
||||||
const HeaderCenter = React.memo(
|
const HeaderCenter: React.FC<Props> = ({
|
||||||
({ content, inverted = false }: Props) => {
|
content,
|
||||||
const { colors } = useTheme()
|
inverted = false,
|
||||||
|
onPress
|
||||||
|
}) => {
|
||||||
|
const { colors } = useTheme()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CustomText
|
<CustomText
|
||||||
style={{
|
style={{
|
||||||
fontSize: 18,
|
fontSize: 18,
|
||||||
color: inverted ? colors.primaryOverlay : colors.primaryDefault
|
color: inverted ? colors.primaryOverlay : colors.primaryDefault
|
||||||
}}
|
}}
|
||||||
fontWeight='Bold'
|
fontWeight='Bold'
|
||||||
children={content}
|
children={content}
|
||||||
/>
|
{...(onPress && { onPress })}
|
||||||
)
|
/>
|
||||||
},
|
)
|
||||||
(prev, next) => prev.content === next.content
|
}
|
||||||
)
|
|
||||||
|
|
||||||
export default HeaderCenter
|
export default HeaderCenter
|
||||||
|
@ -92,7 +92,6 @@ const TimelineHeaderDefault = ({ queryKey, status, highlighted }: Props) => {
|
|||||||
dropdownMenuMode
|
dropdownMenuMode
|
||||||
actions={actions}
|
actions={actions}
|
||||||
onPress={({ nativeEvent: { index } }) => {
|
onPress={({ nativeEvent: { index } }) => {
|
||||||
console.log('index', index)
|
|
||||||
for (const on of [
|
for (const on of [
|
||||||
shareOnPress,
|
shareOnPress,
|
||||||
statusOnPress,
|
statusOnPress,
|
||||||
|
@ -72,7 +72,6 @@ const openLink = async (url: string, navigation?: any) => {
|
|||||||
|
|
||||||
// If an account can be found
|
// If an account can be found
|
||||||
const matchedAccount = url.match(matcherAccount)
|
const matchedAccount = url.match(matcherAccount)
|
||||||
console.log(matchedAccount)
|
|
||||||
if (matchedAccount) {
|
if (matchedAccount) {
|
||||||
// If the link in current instance
|
// If the link in current instance
|
||||||
const instanceUrl = getInstanceUrl(store.getState())
|
const instanceUrl = getInstanceUrl(store.getState())
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
"action": "User melden"
|
"action": "User melden"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "",
|
||||||
|
"succeed": ""
|
||||||
|
},
|
||||||
"instance": {
|
"instance": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"block": {
|
"block": {
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"HTML": {
|
"HTML": {
|
||||||
|
"accessibilityHint": "",
|
||||||
"expanded": {
|
"expanded": {
|
||||||
"true": "Zusammenklappen {{hint}}",
|
"true": "",
|
||||||
"false": "Ausklappen {{hint}}"
|
"false": ""
|
||||||
},
|
},
|
||||||
"defaultHint": "Artikel"
|
"totalLines": "",
|
||||||
|
"defaultHint": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -81,7 +81,7 @@
|
|||||||
"accessibilityHint": "Zum Profil von {{name}}"
|
"accessibilityHint": "Zum Profil von {{name}}"
|
||||||
},
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "Ausgeblendeter Inhalt"
|
"expandHint": ""
|
||||||
},
|
},
|
||||||
"filtered": "Ausgeblendet",
|
"filtered": "Ausgeblendet",
|
||||||
"fullConversation": "Unterhaltung anzeigen",
|
"fullConversation": "Unterhaltung anzeigen",
|
||||||
|
6
src/i18n/de/screens/accountSelection.json
Normal file
6
src/i18n/de/screens/accountSelection.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"select_account": ""
|
||||||
|
}
|
||||||
|
}
|
@ -145,7 +145,8 @@
|
|||||||
"group": "Gruppe {{index}}",
|
"group": "Gruppe {{index}}",
|
||||||
"label": "Kennzeichnung",
|
"label": "Kennzeichnung",
|
||||||
"content": "Inhalt"
|
"content": "Inhalt"
|
||||||
}
|
},
|
||||||
|
"mediaSelectionFailed": ""
|
||||||
},
|
},
|
||||||
"push": {
|
"push": {
|
||||||
"notAvailable": "Dein Gerät unterstützt keine Push-Benachrichtigung",
|
"notAvailable": "Dein Gerät unterstützt keine Push-Benachrichtigung",
|
||||||
|
@ -2,6 +2,7 @@ export default {
|
|||||||
common: require('./common'),
|
common: require('./common'),
|
||||||
|
|
||||||
screens: require('./screens'),
|
screens: require('./screens'),
|
||||||
|
screenAccountSelection: require('./screens/accountSelection.json'),
|
||||||
screenActions: require('./screens/actions'),
|
screenActions: require('./screens/actions'),
|
||||||
screenAnnouncements: require('./screens/announcements'),
|
screenAnnouncements: require('./screens/announcements'),
|
||||||
screenCompose: require('./screens/compose'),
|
screenCompose: require('./screens/compose'),
|
||||||
|
6
src/i18n/en/screens/accountSelection.json
Normal file
6
src/i18n/en/screens/accountSelection.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"heading": "Share to ...",
|
||||||
|
"content": {
|
||||||
|
"select_account": "Select account"
|
||||||
|
}
|
||||||
|
}
|
@ -14,6 +14,10 @@
|
|||||||
"action": "Segnala utente"
|
"action": "Segnala utente"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "",
|
||||||
|
"succeed": ""
|
||||||
|
},
|
||||||
"instance": {
|
"instance": {
|
||||||
"title": "Azione sull'istanza",
|
"title": "Azione sull'istanza",
|
||||||
"block": {
|
"block": {
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"HTML": {
|
"HTML": {
|
||||||
|
"accessibilityHint": "",
|
||||||
"expanded": {
|
"expanded": {
|
||||||
"true": "Richiudi {{hint}}",
|
"true": "",
|
||||||
"false": "Espandi {{hint}}"
|
"false": ""
|
||||||
},
|
},
|
||||||
"defaultHint": "toot"
|
"totalLines": "",
|
||||||
|
"defaultHint": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -81,7 +81,7 @@
|
|||||||
"accessibilityHint": "Premi per aprire il profilo di {{name}}"
|
"accessibilityHint": "Premi per aprire il profilo di {{name}}"
|
||||||
},
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "Contenuto nascosto"
|
"expandHint": ""
|
||||||
},
|
},
|
||||||
"filtered": "Filtrato",
|
"filtered": "Filtrato",
|
||||||
"fullConversation": "Leggi la conversazione",
|
"fullConversation": "Leggi la conversazione",
|
||||||
|
6
src/i18n/it/screens/accountSelection.json
Normal file
6
src/i18n/it/screens/accountSelection.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"select_account": ""
|
||||||
|
}
|
||||||
|
}
|
@ -145,7 +145,8 @@
|
|||||||
"group": "Gruppo {{index}}",
|
"group": "Gruppo {{index}}",
|
||||||
"label": "Etichetta",
|
"label": "Etichetta",
|
||||||
"content": "Contenuto"
|
"content": "Contenuto"
|
||||||
}
|
},
|
||||||
|
"mediaSelectionFailed": ""
|
||||||
},
|
},
|
||||||
"push": {
|
"push": {
|
||||||
"notAvailable": "Il tuo dispositivo non supporta le notifiche push per tooot",
|
"notAvailable": "Il tuo dispositivo non supporta le notifiche push per tooot",
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
"action": ""
|
"action": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "",
|
||||||
|
"succeed": ""
|
||||||
|
},
|
||||||
"instance": {
|
"instance": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"block": {
|
"block": {
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"HTML": {
|
"HTML": {
|
||||||
|
"accessibilityHint": "",
|
||||||
"expanded": {
|
"expanded": {
|
||||||
"true": "",
|
"true": "",
|
||||||
"false": ""
|
"false": ""
|
||||||
},
|
},
|
||||||
|
"totalLines": "",
|
||||||
"defaultHint": ""
|
"defaultHint": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
6
src/i18n/ja/screens/accountSelection.json
Normal file
6
src/i18n/ja/screens/accountSelection.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"select_account": ""
|
||||||
|
}
|
||||||
|
}
|
@ -78,9 +78,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fontSize": {
|
"fontSize": {
|
||||||
"showcase": "",
|
|
||||||
"demo": "",
|
"demo": "",
|
||||||
"availableSizes": "",
|
|
||||||
"sizes": {
|
"sizes": {
|
||||||
"S": "",
|
"S": "",
|
||||||
"M": "",
|
"M": "",
|
||||||
@ -147,7 +145,8 @@
|
|||||||
"group": "",
|
"group": "",
|
||||||
"label": "",
|
"label": "",
|
||||||
"content": ""
|
"content": ""
|
||||||
}
|
},
|
||||||
|
"mediaSelectionFailed": ""
|
||||||
},
|
},
|
||||||
"push": {
|
"push": {
|
||||||
"notAvailable": "",
|
"notAvailable": "",
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
"action": "사용자 신고"
|
"action": "사용자 신고"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "",
|
||||||
|
"succeed": ""
|
||||||
|
},
|
||||||
"instance": {
|
"instance": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"block": {
|
"block": {
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"HTML": {
|
"HTML": {
|
||||||
|
"accessibilityHint": "",
|
||||||
"expanded": {
|
"expanded": {
|
||||||
"true": "{{hint}} 접기",
|
"true": "",
|
||||||
"false": "{{hint}} 펼치기"
|
"false": ""
|
||||||
},
|
},
|
||||||
"defaultHint": "글"
|
"totalLines": "",
|
||||||
|
"defaultHint": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -81,7 +81,7 @@
|
|||||||
"accessibilityHint": "{{name}}의 페이지로 가려면 탭하세요"
|
"accessibilityHint": "{{name}}의 페이지로 가려면 탭하세요"
|
||||||
},
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "숨겨진 콘텐츠"
|
"expandHint": ""
|
||||||
},
|
},
|
||||||
"filtered": "필터됨",
|
"filtered": "필터됨",
|
||||||
"fullConversation": "대화 보기",
|
"fullConversation": "대화 보기",
|
||||||
|
6
src/i18n/ko/screens/accountSelection.json
Normal file
6
src/i18n/ko/screens/accountSelection.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"select_account": ""
|
||||||
|
}
|
||||||
|
}
|
@ -145,7 +145,8 @@
|
|||||||
"group": "그룹 {{index}}",
|
"group": "그룹 {{index}}",
|
||||||
"label": "라벨",
|
"label": "라벨",
|
||||||
"content": "내용"
|
"content": "내용"
|
||||||
}
|
},
|
||||||
|
"mediaSelectionFailed": ""
|
||||||
},
|
},
|
||||||
"push": {
|
"push": {
|
||||||
"notAvailable": "이 기기는 tooot의 푸시 알림을 지원하지 않아요",
|
"notAvailable": "이 기기는 tooot의 푸시 알림을 지원하지 않아요",
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
"action": "Denunciar usuário"
|
"action": "Denunciar usuário"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "",
|
||||||
|
"succeed": ""
|
||||||
|
},
|
||||||
"instance": {
|
"instance": {
|
||||||
"title": "Ação da Instância",
|
"title": "Ação da Instância",
|
||||||
"block": {
|
"block": {
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"HTML": {
|
"HTML": {
|
||||||
|
"accessibilityHint": "",
|
||||||
"expanded": {
|
"expanded": {
|
||||||
"true": "Fechar {{hint}}",
|
"true": "",
|
||||||
"false": "Expandir {{hint}}"
|
"false": ""
|
||||||
},
|
},
|
||||||
"defaultHint": "artigo"
|
"totalLines": "",
|
||||||
|
"defaultHint": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -81,7 +81,7 @@
|
|||||||
"accessibilityHint": "Toque para ir à página de {{name}}"
|
"accessibilityHint": "Toque para ir à página de {{name}}"
|
||||||
},
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "conteúdo oculto"
|
"expandHint": ""
|
||||||
},
|
},
|
||||||
"filtered": "Filtrado",
|
"filtered": "Filtrado",
|
||||||
"fullConversation": "Ler conversas",
|
"fullConversation": "Ler conversas",
|
||||||
|
6
src/i18n/pt_BR/screens/accountSelection.json
Normal file
6
src/i18n/pt_BR/screens/accountSelection.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"select_account": ""
|
||||||
|
}
|
||||||
|
}
|
@ -145,7 +145,8 @@
|
|||||||
"group": "Grupo {{index}}",
|
"group": "Grupo {{index}}",
|
||||||
"label": "Rótulo",
|
"label": "Rótulo",
|
||||||
"content": "Conteúdo"
|
"content": "Conteúdo"
|
||||||
}
|
},
|
||||||
|
"mediaSelectionFailed": ""
|
||||||
},
|
},
|
||||||
"push": {
|
"push": {
|
||||||
"notAvailable": "Seu telefone não suporta notificação de envio de tooot",
|
"notAvailable": "Seu telefone não suporta notificação de envio de tooot",
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
"action": "Báo cáo"
|
"action": "Báo cáo"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "",
|
||||||
|
"succeed": ""
|
||||||
|
},
|
||||||
"instance": {
|
"instance": {
|
||||||
"title": "Hành động máy chủ",
|
"title": "Hành động máy chủ",
|
||||||
"block": {
|
"block": {
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"HTML": {
|
"HTML": {
|
||||||
|
"accessibilityHint": "",
|
||||||
"expanded": {
|
"expanded": {
|
||||||
"true": "Cuộn {{hint}}",
|
"true": "",
|
||||||
"false": "Mở {{hint}}"
|
"false": ""
|
||||||
},
|
},
|
||||||
"defaultHint": "Tút"
|
"totalLines": "",
|
||||||
|
"defaultHint": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -81,7 +81,7 @@
|
|||||||
"accessibilityHint": "Đến trang của {{name}}"
|
"accessibilityHint": "Đến trang của {{name}}"
|
||||||
},
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "nội dung ẩn"
|
"expandHint": ""
|
||||||
},
|
},
|
||||||
"filtered": "Đã lọc",
|
"filtered": "Đã lọc",
|
||||||
"fullConversation": "Xem thêm",
|
"fullConversation": "Xem thêm",
|
||||||
|
6
src/i18n/vi/screens/accountSelection.json
Normal file
6
src/i18n/vi/screens/accountSelection.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"select_account": ""
|
||||||
|
}
|
||||||
|
}
|
@ -145,7 +145,8 @@
|
|||||||
"group": "Mục {{index}}",
|
"group": "Mục {{index}}",
|
||||||
"label": "Nhãn",
|
"label": "Nhãn",
|
||||||
"content": "Nội dung"
|
"content": "Nội dung"
|
||||||
}
|
},
|
||||||
|
"mediaSelectionFailed": ""
|
||||||
},
|
},
|
||||||
"push": {
|
"push": {
|
||||||
"notAvailable": "Điện thoại của bạn chưa bật thông báo đẩy",
|
"notAvailable": "Điện thoại của bạn chưa bật thông báo đẩy",
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
"action": "举报用户"
|
"action": "举报用户"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "",
|
||||||
|
"succeed": ""
|
||||||
|
},
|
||||||
"instance": {
|
"instance": {
|
||||||
"title": "实例操作",
|
"title": "实例操作",
|
||||||
"block": {
|
"block": {
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"HTML": {
|
"HTML": {
|
||||||
|
"accessibilityHint": "",
|
||||||
"expanded": {
|
"expanded": {
|
||||||
"true": "折叠{{hint}}",
|
"true": "",
|
||||||
"false": "展开{{hint}}"
|
"false": ""
|
||||||
},
|
},
|
||||||
"defaultHint": "全文"
|
"totalLines": "",
|
||||||
|
"defaultHint": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -81,7 +81,7 @@
|
|||||||
"accessibilityHint": "点击进入{{name}}的页面"
|
"accessibilityHint": "点击进入{{name}}的页面"
|
||||||
},
|
},
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "隐藏内容"
|
"expandHint": ""
|
||||||
},
|
},
|
||||||
"filtered": "已过滤",
|
"filtered": "已过滤",
|
||||||
"fullConversation": "阅读全部对话",
|
"fullConversation": "阅读全部对话",
|
||||||
|
6
src/i18n/zh-Hans/screens/accountSelection.json
Normal file
6
src/i18n/zh-Hans/screens/accountSelection.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"select_account": ""
|
||||||
|
}
|
||||||
|
}
|
@ -145,7 +145,8 @@
|
|||||||
"group": "第 {{index}} 组",
|
"group": "第 {{index}} 组",
|
||||||
"label": "标签",
|
"label": "标签",
|
||||||
"content": "内容"
|
"content": "内容"
|
||||||
}
|
},
|
||||||
|
"mediaSelectionFailed": ""
|
||||||
},
|
},
|
||||||
"push": {
|
"push": {
|
||||||
"notAvailable": "您的手机不支持tooot推送通知",
|
"notAvailable": "您的手机不支持tooot推送通知",
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
"action": ""
|
"action": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "",
|
||||||
|
"succeed": ""
|
||||||
|
},
|
||||||
"instance": {
|
"instance": {
|
||||||
"title": "",
|
"title": "",
|
||||||
"block": {
|
"block": {
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
"HTML": {
|
"HTML": {
|
||||||
|
"accessibilityHint": "",
|
||||||
"expanded": {
|
"expanded": {
|
||||||
"true": "收起{{hint}}",
|
"true": "",
|
||||||
"false": "展開{{hint}}"
|
"false": ""
|
||||||
},
|
},
|
||||||
"defaultHint": "全文"
|
"totalLines": "",
|
||||||
|
"defaultHint": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
6
src/i18n/zh-Hant/screens/accountSelection.json
Normal file
6
src/i18n/zh-Hant/screens/accountSelection.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"select_account": ""
|
||||||
|
}
|
||||||
|
}
|
@ -145,7 +145,8 @@
|
|||||||
"group": "",
|
"group": "",
|
||||||
"label": "",
|
"label": "",
|
||||||
"content": ""
|
"content": ""
|
||||||
}
|
},
|
||||||
|
"mediaSelectionFailed": ""
|
||||||
},
|
},
|
||||||
"push": {
|
"push": {
|
||||||
"notAvailable": "",
|
"notAvailable": "",
|
||||||
|
163
src/screens/AccountSelection.tsx
Normal file
163
src/screens/AccountSelection.tsx
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
import AccountButton from '@components/AccountButton'
|
||||||
|
import CustomText from '@components/Text'
|
||||||
|
import navigationRef from '@helpers/navigationRef'
|
||||||
|
import { RootStackScreenProps } from '@utils/navigation/navigators'
|
||||||
|
import { getInstances } from '@utils/slices/instancesSlice'
|
||||||
|
import { StyleConstants } from '@utils/styles/constants'
|
||||||
|
import { useTheme } from '@utils/styles/ThemeManager'
|
||||||
|
import * as VideoThumbnails from 'expo-video-thumbnails'
|
||||||
|
import React, { useEffect, useState } from 'react'
|
||||||
|
import { useTranslation } from 'react-i18next'
|
||||||
|
import { FlatList, Image, ScrollView, View } from 'react-native'
|
||||||
|
import { SafeAreaProvider } from 'react-native-safe-area-context'
|
||||||
|
import { useSelector } from 'react-redux'
|
||||||
|
|
||||||
|
const Share = ({
|
||||||
|
text,
|
||||||
|
media
|
||||||
|
}: {
|
||||||
|
text?: string | undefined
|
||||||
|
media?:
|
||||||
|
| {
|
||||||
|
uri: string
|
||||||
|
mime: string
|
||||||
|
}[]
|
||||||
|
| undefined
|
||||||
|
}) => {
|
||||||
|
const { colors } = useTheme()
|
||||||
|
|
||||||
|
const [images, setImages] = useState<string[]>([])
|
||||||
|
useEffect(() => {
|
||||||
|
const prepareThumbs = async (media: { uri: string; mime: string }[]) => {
|
||||||
|
const thumbs: string[] = []
|
||||||
|
for (const m of media) {
|
||||||
|
if (m.mime.startsWith('image/')) {
|
||||||
|
thumbs.push(m.uri)
|
||||||
|
} else if (m.mime.startsWith('video/')) {
|
||||||
|
const { uri } = await VideoThumbnails.getThumbnailAsync(m.uri)
|
||||||
|
thumbs.push(uri)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setImages(thumbs)
|
||||||
|
}
|
||||||
|
if (media) {
|
||||||
|
prepareThumbs(media)
|
||||||
|
}
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
if (text) {
|
||||||
|
return (
|
||||||
|
<CustomText
|
||||||
|
fontSize='S'
|
||||||
|
style={{
|
||||||
|
color: colors.primaryDefault,
|
||||||
|
padding: StyleConstants.Spacing.M,
|
||||||
|
borderWidth: 1,
|
||||||
|
borderColor: colors.shimmerHighlight,
|
||||||
|
borderRadius: 8
|
||||||
|
}}
|
||||||
|
children={text}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if (media) {
|
||||||
|
return (
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
padding: StyleConstants.Spacing.M,
|
||||||
|
borderWidth: 1,
|
||||||
|
borderColor: colors.shimmerHighlight,
|
||||||
|
borderRadius: 8
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<FlatList
|
||||||
|
horizontal
|
||||||
|
data={images}
|
||||||
|
renderItem={({ item }) => (
|
||||||
|
<Image source={{ uri: item }} style={{ width: 88, height: 88 }} />
|
||||||
|
)}
|
||||||
|
ItemSeparatorComponent={() => (
|
||||||
|
<View style={{ width: StyleConstants.Spacing.S }} />
|
||||||
|
)}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only needed when data incoming into the app when there are multiple accounts
|
||||||
|
const ScreenAccountSelection = ({
|
||||||
|
route: {
|
||||||
|
params: { share }
|
||||||
|
}
|
||||||
|
}: RootStackScreenProps<'Screen-AccountSelection'>) => {
|
||||||
|
const { colors } = useTheme()
|
||||||
|
const { t } = useTranslation('screenAccountSelection')
|
||||||
|
|
||||||
|
const instances = useSelector(getInstances, () => true)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<SafeAreaProvider>
|
||||||
|
<ScrollView
|
||||||
|
style={{ marginBottom: StyleConstants.Spacing.L * 2 }}
|
||||||
|
keyboardShouldPersistTaps='always'
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
marginHorizontal: StyleConstants.Spacing.Global.PagePadding
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{share ? <Share {...share} /> : null}
|
||||||
|
<CustomText
|
||||||
|
fontStyle='M'
|
||||||
|
fontWeight='Bold'
|
||||||
|
style={{
|
||||||
|
textAlign: 'center',
|
||||||
|
marginTop: StyleConstants.Spacing.L,
|
||||||
|
marginBottom: StyleConstants.Spacing.S,
|
||||||
|
color: colors.primaryDefault
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{t('content.select_account')}
|
||||||
|
</CustomText>
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flex: 1,
|
||||||
|
flexDirection: 'row',
|
||||||
|
flexWrap: 'wrap',
|
||||||
|
marginTop: StyleConstants.Spacing.M
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{instances.length
|
||||||
|
? instances
|
||||||
|
.slice()
|
||||||
|
.sort((a, b) =>
|
||||||
|
`${a.uri}${a.account.acct}`.localeCompare(
|
||||||
|
`${b.uri}${b.account.acct}`
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.map((instance, index) => {
|
||||||
|
return (
|
||||||
|
<AccountButton
|
||||||
|
key={index}
|
||||||
|
instance={instance}
|
||||||
|
additionalActions={() => {
|
||||||
|
navigationRef.navigate('Screen-Compose', {
|
||||||
|
type: 'share',
|
||||||
|
...share
|
||||||
|
})
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
})
|
||||||
|
: null}
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</ScrollView>
|
||||||
|
</SafeAreaProvider>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ScreenAccountSelection
|
@ -42,7 +42,6 @@ export const uploadAttachment = async ({
|
|||||||
case 'video':
|
case 'video':
|
||||||
VideoThumbnails.getThumbnailAsync(media.uri)
|
VideoThumbnails.getThumbnailAsync(media.uri)
|
||||||
.then(({ uri, width, height }) => {
|
.then(({ uri, width, height }) => {
|
||||||
console.log('new', uri, width, height)
|
|
||||||
composeDispatch({
|
composeDispatch({
|
||||||
type: 'attachment/upload/start',
|
type: 'attachment/upload/start',
|
||||||
payload: {
|
payload: {
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import analytics from '@components/analytics'
|
import analytics from '@components/analytics'
|
||||||
import { HeaderCenter, HeaderRight } from '@components/Header'
|
import { HeaderCenter, HeaderRight } from '@components/Header'
|
||||||
|
import Icon from '@components/Icon'
|
||||||
|
import CustomText from '@components/Text'
|
||||||
import Timeline from '@components/Timeline'
|
import Timeline from '@components/Timeline'
|
||||||
import TimelineDefault from '@components/Timeline/Default'
|
import TimelineDefault from '@components/Timeline/Default'
|
||||||
import { createNativeStackNavigator } from '@react-navigation/native-stack'
|
import { createNativeStackNavigator } from '@react-navigation/native-stack'
|
||||||
@ -7,64 +9,141 @@ import {
|
|||||||
ScreenTabsScreenProps,
|
ScreenTabsScreenProps,
|
||||||
TabLocalStackParamList
|
TabLocalStackParamList
|
||||||
} from '@utils/navigation/navigators'
|
} from '@utils/navigation/navigators'
|
||||||
|
import { useListsQuery } from '@utils/queryHooks/lists'
|
||||||
import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
|
import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
|
||||||
import React, { useCallback, useMemo } from 'react'
|
import { StyleConstants } from '@utils/styles/constants'
|
||||||
|
import layoutAnimation from '@utils/styles/layoutAnimation'
|
||||||
|
import { useTheme } from '@utils/styles/ThemeManager'
|
||||||
|
import React, { useEffect, useState } from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
import { Platform } from 'react-native'
|
import { Pressable, StyleSheet, Text, View } from 'react-native'
|
||||||
import TabSharedRoot from './Shared/Root'
|
import TabSharedRoot from './Shared/Root'
|
||||||
|
|
||||||
const Stack = createNativeStackNavigator<TabLocalStackParamList>()
|
const Stack = createNativeStackNavigator<TabLocalStackParamList>()
|
||||||
|
|
||||||
const TabLocal = React.memo(
|
const TabLocal = React.memo(
|
||||||
({ navigation }: ScreenTabsScreenProps<'Tab-Local'>) => {
|
({ navigation }: ScreenTabsScreenProps<'Tab-Local'>) => {
|
||||||
const { t, i18n } = useTranslation('screenTabs')
|
const { colors } = useTheme()
|
||||||
|
const { t } = useTranslation('screenTabs')
|
||||||
|
|
||||||
const screenOptionsRoot = useMemo(
|
const { data: lists } = useListsQuery({})
|
||||||
() => ({
|
const [listsShown, setListsShown] = useState(false)
|
||||||
title: t('tabs.local.name'),
|
useEffect(() => {
|
||||||
...(Platform.OS === 'android' && {
|
layoutAnimation()
|
||||||
headerCenter: () => <HeaderCenter content={t('tabs.local.name')} />
|
}, [listsShown])
|
||||||
}),
|
|
||||||
headerRight: () => (
|
|
||||||
<HeaderRight
|
|
||||||
accessibilityLabel={t('common.search.accessibilityLabel')}
|
|
||||||
accessibilityHint={t('common.search.accessibilityHint')}
|
|
||||||
content='Search'
|
|
||||||
onPress={() => {
|
|
||||||
analytics('search_tap', { page: 'Local' })
|
|
||||||
navigation.navigate('Tab-Local', {
|
|
||||||
screen: 'Tab-Shared-Search',
|
|
||||||
params: { text: undefined }
|
|
||||||
})
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
)
|
|
||||||
}),
|
|
||||||
[i18n.language]
|
|
||||||
)
|
|
||||||
|
|
||||||
const queryKey: QueryKeyTimeline = ['Timeline', { page: 'Following' }]
|
const [queryKey, setQueryKey] = useState<QueryKeyTimeline>([
|
||||||
const children = useCallback(
|
'Timeline',
|
||||||
() => (
|
{ page: 'Following' }
|
||||||
<Timeline
|
])
|
||||||
queryKey={queryKey}
|
|
||||||
lookback='Following'
|
|
||||||
customProps={{
|
|
||||||
renderItem: ({ item }) => (
|
|
||||||
<TimelineDefault item={item} queryKey={queryKey} />
|
|
||||||
)
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
[]
|
|
||||||
)
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Stack.Navigator screenOptions={{ headerShadowVisible: false }}>
|
<Stack.Navigator screenOptions={{ headerShadowVisible: false }}>
|
||||||
<Stack.Screen
|
<Stack.Screen
|
||||||
name='Tab-Local-Root'
|
name='Tab-Local-Root'
|
||||||
options={screenOptionsRoot}
|
options={{
|
||||||
children={children}
|
headerTitle: () => (
|
||||||
|
<HeaderCenter
|
||||||
|
onPress={() => {
|
||||||
|
if (lists?.length) {
|
||||||
|
setListsShown(!listsShown)
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
content={
|
||||||
|
<>
|
||||||
|
<Text>{t('tabs.local.name')}</Text>
|
||||||
|
{lists?.length ? (
|
||||||
|
<Icon
|
||||||
|
name='ChevronDown'
|
||||||
|
size={StyleConstants.Font.Size.M}
|
||||||
|
color={colors.primaryDefault}
|
||||||
|
style={{ marginLeft: StyleConstants.Spacing.S }}
|
||||||
|
strokeWidth={3}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
),
|
||||||
|
headerRight: () => (
|
||||||
|
<HeaderRight
|
||||||
|
accessibilityLabel={t('common.search.accessibilityLabel')}
|
||||||
|
accessibilityHint={t('common.search.accessibilityHint')}
|
||||||
|
content='Search'
|
||||||
|
onPress={() => {
|
||||||
|
analytics('search_tap', { page: 'Local' })
|
||||||
|
navigation.navigate('Tab-Local', {
|
||||||
|
screen: 'Tab-Shared-Search',
|
||||||
|
params: { text: undefined }
|
||||||
|
})
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
children={() => (
|
||||||
|
<>
|
||||||
|
<Timeline
|
||||||
|
queryKey={queryKey}
|
||||||
|
lookback='Following'
|
||||||
|
customProps={{
|
||||||
|
renderItem: ({ item }) => (
|
||||||
|
<TimelineDefault item={item} queryKey={queryKey} />
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
{listsShown ? (
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
position: 'absolute',
|
||||||
|
backgroundColor: colors.backgroundDefault,
|
||||||
|
width: '100%',
|
||||||
|
paddingVertical: StyleConstants.Spacing.S
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Pressable
|
||||||
|
style={{
|
||||||
|
padding: StyleConstants.Spacing.S * 1.5,
|
||||||
|
borderColor: colors.border,
|
||||||
|
borderTopWidth: StyleSheet.hairlineWidth,
|
||||||
|
borderBottomWidth: StyleSheet.hairlineWidth
|
||||||
|
}}
|
||||||
|
onPress={() => {
|
||||||
|
setQueryKey(['Timeline', { page: 'Following' }])
|
||||||
|
setListsShown(!listsShown)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<CustomText fontSize='M' style={{ textAlign: 'center' }}>
|
||||||
|
Default
|
||||||
|
</CustomText>
|
||||||
|
</Pressable>
|
||||||
|
{lists?.map(list => (
|
||||||
|
<Pressable
|
||||||
|
style={{
|
||||||
|
padding: StyleConstants.Spacing.S,
|
||||||
|
borderColor: colors.border,
|
||||||
|
borderBottomWidth: StyleSheet.hairlineWidth
|
||||||
|
}}
|
||||||
|
onPress={() => {
|
||||||
|
setQueryKey([
|
||||||
|
'Timeline',
|
||||||
|
{ page: 'List', list: list.id }
|
||||||
|
])
|
||||||
|
setListsShown(!listsShown)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<CustomText
|
||||||
|
key={list.id}
|
||||||
|
fontSize='M'
|
||||||
|
style={{ textAlign: 'center' }}
|
||||||
|
>
|
||||||
|
{list.title}
|
||||||
|
</CustomText>
|
||||||
|
</Pressable>
|
||||||
|
))}
|
||||||
|
</View>
|
||||||
|
) : null}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
/>
|
/>
|
||||||
{TabSharedRoot({ Stack })}
|
{TabSharedRoot({ Stack })}
|
||||||
</Stack.Navigator>
|
</Stack.Navigator>
|
||||||
|
@ -1,11 +1,6 @@
|
|||||||
import analytics from '@components/analytics'
|
import AccountButton from '@components/AccountButton'
|
||||||
import Button from '@components/Button'
|
|
||||||
import haptics from '@components/haptics'
|
|
||||||
import ComponentInstance from '@components/Instance'
|
import ComponentInstance from '@components/Instance'
|
||||||
import CustomText from '@components/Text'
|
import CustomText from '@components/Text'
|
||||||
import { useNavigation } from '@react-navigation/native'
|
|
||||||
import initQuery from '@utils/initQuery'
|
|
||||||
import { InstanceLatest } from '@utils/migrations/instances/migration'
|
|
||||||
import { getInstanceActive, getInstances } from '@utils/slices/instancesSlice'
|
import { getInstanceActive, getInstances } from '@utils/slices/instancesSlice'
|
||||||
import { StyleConstants } from '@utils/styles/constants'
|
import { StyleConstants } from '@utils/styles/constants'
|
||||||
import { useTheme } from '@utils/styles/ThemeManager'
|
import { useTheme } from '@utils/styles/ThemeManager'
|
||||||
@ -15,35 +10,6 @@ import { KeyboardAvoidingView, Platform, StyleSheet, View } from 'react-native'
|
|||||||
import { ScrollView } from 'react-native-gesture-handler'
|
import { ScrollView } from 'react-native-gesture-handler'
|
||||||
import { useSelector } from 'react-redux'
|
import { useSelector } from 'react-redux'
|
||||||
|
|
||||||
interface Props {
|
|
||||||
instance: InstanceLatest
|
|
||||||
selected?: boolean
|
|
||||||
}
|
|
||||||
|
|
||||||
const AccountButton: React.FC<Props> = ({ instance, selected = false }) => {
|
|
||||||
const navigation = useNavigation()
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Button
|
|
||||||
type='text'
|
|
||||||
selected={selected}
|
|
||||||
style={{
|
|
||||||
marginBottom: StyleConstants.Spacing.M,
|
|
||||||
marginRight: StyleConstants.Spacing.M
|
|
||||||
}}
|
|
||||||
content={`@${instance.account.acct}@${instance.uri}${
|
|
||||||
selected ? ' ✓' : ''
|
|
||||||
}`}
|
|
||||||
onPress={() => {
|
|
||||||
haptics('Light')
|
|
||||||
analytics('switch_existing_press')
|
|
||||||
initQuery({ instance, prefetch: { enabled: true } })
|
|
||||||
navigation.goBack()
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const TabMeSwitch: React.FC = () => {
|
const TabMeSwitch: React.FC = () => {
|
||||||
const { t } = useTranslation('screenTabs')
|
const { t } = useTranslation('screenTabs')
|
||||||
const { colors } = useTheme()
|
const { colors } = useTheme()
|
||||||
|
@ -6,7 +6,6 @@ const sentry = () => {
|
|||||||
Sentry.init({
|
Sentry.init({
|
||||||
dsn: 'https://53348b60ff844d52886e90251b3a5f41@o917354.ingest.sentry.io/6410576',
|
dsn: 'https://53348b60ff844d52886e90251b3a5f41@o917354.ingest.sentry.io/6410576',
|
||||||
enableInExpoDevelopment: false,
|
enableInExpoDevelopment: false,
|
||||||
// debug: !isRelease,
|
|
||||||
autoSessionTracking: true
|
autoSessionTracking: true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ import { NavigatorScreenParams } from '@react-navigation/native'
|
|||||||
import { NativeStackScreenProps } from '@react-navigation/native-stack'
|
import { NativeStackScreenProps } from '@react-navigation/native-stack'
|
||||||
import { StackNavigationProp } from '@react-navigation/stack'
|
import { StackNavigationProp } from '@react-navigation/stack'
|
||||||
import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
|
import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
export type RootStackParamList = {
|
export type RootStackParamList = {
|
||||||
'Screen-Tabs': NavigatorScreenParams<ScreenTabsStackParamList>
|
'Screen-Tabs': NavigatorScreenParams<ScreenTabsStackParamList>
|
||||||
@ -57,6 +58,10 @@ export type RootStackParamList = {
|
|||||||
}[]
|
}[]
|
||||||
id: Mastodon.Attachment['id']
|
id: Mastodon.Attachment['id']
|
||||||
}
|
}
|
||||||
|
'Screen-AccountSelection': {
|
||||||
|
component?: () => JSX.Element | undefined
|
||||||
|
share?: { text?: string; media?: { uri: string; mime: string }[] }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
export type RootStackScreenProps<T extends keyof RootStackParamList> =
|
export type RootStackScreenProps<T extends keyof RootStackParamList> =
|
||||||
NativeStackScreenProps<RootStackParamList, T>
|
NativeStackScreenProps<RootStackParamList, T>
|
||||||
|
318
yarn.lock
318
yarn.lock
@ -1104,15 +1104,15 @@
|
|||||||
mv "~2"
|
mv "~2"
|
||||||
safe-json-stringify "~1"
|
safe-json-stringify "~1"
|
||||||
|
|
||||||
"@expo/cli@0.2.6":
|
"@expo/cli@0.2.8":
|
||||||
version "0.2.6"
|
version "0.2.8"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.2.6.tgz#b8048388f1d6148032656dc19725afc0c65a129a"
|
resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.2.8.tgz#a5403d3abca844ee6489041e1af5aa39d842c954"
|
||||||
integrity sha512-WFt4P4oUjmOUyvWFxW5LSXzJqjy9Jx5FCFDFEvfRlcdEkDhCNPOZOybuSjxKIWUoJ57TtPzyeG2J0OzAfhBl8g==
|
integrity sha512-8+LBXRKommR7Nmmp+anGNnTQaHyGQDvofcbujmo6pjGI99Z07F5lFyeZNL4h5ZJAMxgzjDfJeLxsRHzo0gy4pA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.14.0"
|
"@babel/runtime" "^7.14.0"
|
||||||
"@expo/code-signing-certificates" "^0.0.2"
|
"@expo/code-signing-certificates" "^0.0.2"
|
||||||
"@expo/config" "~7.0.0"
|
"@expo/config" "~7.0.1"
|
||||||
"@expo/config-plugins" "~5.0.0"
|
"@expo/config-plugins" "~5.0.1"
|
||||||
"@expo/dev-server" "~0.1.110"
|
"@expo/dev-server" "~0.1.110"
|
||||||
"@expo/devcert" "^1.0.0"
|
"@expo/devcert" "^1.0.0"
|
||||||
"@expo/json-file" "^8.2.35"
|
"@expo/json-file" "^8.2.35"
|
||||||
@ -1120,7 +1120,7 @@
|
|||||||
"@expo/osascript" "^2.0.31"
|
"@expo/osascript" "^2.0.31"
|
||||||
"@expo/package-manager" "~0.0.53"
|
"@expo/package-manager" "~0.0.53"
|
||||||
"@expo/plist" "^0.0.18"
|
"@expo/plist" "^0.0.18"
|
||||||
"@expo/prebuild-config" "~5.0.0"
|
"@expo/prebuild-config" "~5.0.3"
|
||||||
"@expo/rudder-sdk-node" "1.1.1"
|
"@expo/rudder-sdk-node" "1.1.1"
|
||||||
"@expo/spawn-async" "1.5.0"
|
"@expo/spawn-async" "1.5.0"
|
||||||
"@expo/xcpretty" "^4.2.1"
|
"@expo/xcpretty" "^4.2.1"
|
||||||
@ -1199,12 +1199,33 @@
|
|||||||
xcode "^3.0.1"
|
xcode "^3.0.1"
|
||||||
xml2js "0.4.23"
|
xml2js "0.4.23"
|
||||||
|
|
||||||
|
"@expo/config-plugins@~5.0.1":
|
||||||
|
version "5.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-5.0.1.tgz#66bc8d15785bdcd3598e466344f8c0518390179d"
|
||||||
|
integrity sha512-1OfnsOrfeSkB0VZfT01UjQ5Uq6p+yYbq8yNkj0e99K/6NLHpyvIxj+5tZIV0nQXgkOcqBIABL2uA7lwB8CkaBQ==
|
||||||
|
dependencies:
|
||||||
|
"@expo/config-types" "^46.0.0"
|
||||||
|
"@expo/json-file" "8.2.36"
|
||||||
|
"@expo/plist" "0.0.18"
|
||||||
|
"@expo/sdk-runtime-versions" "^1.0.0"
|
||||||
|
"@react-native/normalize-color" "^2.0.0"
|
||||||
|
chalk "^4.1.2"
|
||||||
|
debug "^4.3.1"
|
||||||
|
find-up "~5.0.0"
|
||||||
|
getenv "^1.0.0"
|
||||||
|
glob "7.1.6"
|
||||||
|
resolve-from "^5.0.0"
|
||||||
|
semver "^7.3.5"
|
||||||
|
slash "^3.0.0"
|
||||||
|
xcode "^3.0.1"
|
||||||
|
xml2js "0.4.23"
|
||||||
|
|
||||||
"@expo/config-types@^46.0.0", "@expo/config-types@^46.0.1":
|
"@expo/config-types@^46.0.0", "@expo/config-types@^46.0.1":
|
||||||
version "46.0.1"
|
version "46.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-46.0.1.tgz#ba5d6197222039de13aefdf0171d24b027781cd0"
|
resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-46.0.1.tgz#ba5d6197222039de13aefdf0171d24b027781cd0"
|
||||||
integrity sha512-LQWGDagQ0YXGSJyLomNDZrYXj/cUP+wczs9y2M8MB9UDoSU6dbLRMiSX0FMhhKKdxBK0p92VQxZyqOzGpIYfSw==
|
integrity sha512-LQWGDagQ0YXGSJyLomNDZrYXj/cUP+wczs9y2M8MB9UDoSU6dbLRMiSX0FMhhKKdxBK0p92VQxZyqOzGpIYfSw==
|
||||||
|
|
||||||
"@expo/config@7.0.0", "@expo/config@^7.0.0", "@expo/config@~7.0.0":
|
"@expo/config@7.0.0", "@expo/config@~7.0.0":
|
||||||
version "7.0.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/config/-/config-7.0.0.tgz#0289d4cadff48eaed33683384c41ae9a90bb8b00"
|
resolved "https://registry.yarnpkg.com/@expo/config/-/config-7.0.0.tgz#0289d4cadff48eaed33683384c41ae9a90bb8b00"
|
||||||
integrity sha512-4807iau5gTcCAMUDWxsXfBX4E3embZJREO9c098GiRgAvCBc7PCqdGs9jEAKakCxmPbMGBURL17rKYAsHtZuQw==
|
integrity sha512-4807iau5gTcCAMUDWxsXfBX4E3embZJREO9c098GiRgAvCBc7PCqdGs9jEAKakCxmPbMGBURL17rKYAsHtZuQw==
|
||||||
@ -1221,6 +1242,23 @@
|
|||||||
slugify "^1.3.4"
|
slugify "^1.3.4"
|
||||||
sucrase "^3.20.0"
|
sucrase "^3.20.0"
|
||||||
|
|
||||||
|
"@expo/config@7.0.1", "@expo/config@^7.0.1", "@expo/config@~7.0.1":
|
||||||
|
version "7.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@expo/config/-/config-7.0.1.tgz#d8e2e5410bb0b8e305690bbc76e6bb76f6a6de31"
|
||||||
|
integrity sha512-4lu0wr45XXJ2MXiLAm2+fmOyy/jjqF3NuDm92fO6nuulRzEEvTP4w3vsibJ690rT81ohtvhpruKhkRs0wSjKWA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/code-frame" "~7.10.4"
|
||||||
|
"@expo/config-plugins" "~5.0.1"
|
||||||
|
"@expo/config-types" "^46.0.1"
|
||||||
|
"@expo/json-file" "8.2.36"
|
||||||
|
getenv "^1.0.0"
|
||||||
|
glob "7.1.6"
|
||||||
|
require-from-string "^2.0.2"
|
||||||
|
resolve-from "^5.0.0"
|
||||||
|
semver "7.3.2"
|
||||||
|
slugify "^1.3.4"
|
||||||
|
sucrase "^3.20.0"
|
||||||
|
|
||||||
"@expo/configure-splash-screen@^0.6.0":
|
"@expo/configure-splash-screen@^0.6.0":
|
||||||
version "0.6.0"
|
version "0.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.6.0.tgz#07d97ee512fd859fcc09506ba3762fd6263ebc39"
|
resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.6.0.tgz#07d97ee512fd859fcc09506ba3762fd6263ebc39"
|
||||||
@ -1330,6 +1368,20 @@
|
|||||||
resolve-from "^5.0.0"
|
resolve-from "^5.0.0"
|
||||||
sucrase "^3.20.0"
|
sucrase "^3.20.0"
|
||||||
|
|
||||||
|
"@expo/metro-config@~0.3.19":
|
||||||
|
version "0.3.22"
|
||||||
|
resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.3.22.tgz#fa4a0729ec8ecbc9c9fb79c63ecc66a299505c82"
|
||||||
|
integrity sha512-R81sLbaeUBjN8IXcxiVx7GcpSj8z7szILl1b5yJDb38WdIFwxhrseA5wXaTT1yMhI+59w6n99T2qtFV2yD5qYA==
|
||||||
|
dependencies:
|
||||||
|
"@expo/config" "7.0.1"
|
||||||
|
"@expo/json-file" "8.2.36"
|
||||||
|
chalk "^4.1.0"
|
||||||
|
debug "^4.3.2"
|
||||||
|
find-yarn-workspace-root "~2.0.0"
|
||||||
|
getenv "^1.0.0"
|
||||||
|
resolve-from "^5.0.0"
|
||||||
|
sucrase "^3.20.0"
|
||||||
|
|
||||||
"@expo/osascript@2.0.33", "@expo/osascript@^2.0.31":
|
"@expo/osascript@2.0.33", "@expo/osascript@^2.0.31":
|
||||||
version "2.0.33"
|
version "2.0.33"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/osascript/-/osascript-2.0.33.tgz#e9dcc8da54466c11939074aa71a006024ea884b1"
|
resolved "https://registry.yarnpkg.com/@expo/osascript/-/osascript-2.0.33.tgz#e9dcc8da54466c11939074aa71a006024ea884b1"
|
||||||
@ -1379,6 +1431,22 @@
|
|||||||
semver "7.3.2"
|
semver "7.3.2"
|
||||||
xml2js "0.4.23"
|
xml2js "0.4.23"
|
||||||
|
|
||||||
|
"@expo/prebuild-config@~5.0.3":
|
||||||
|
version "5.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-5.0.3.tgz#f475797a592f074b5a66f02aef27c6c14c54591e"
|
||||||
|
integrity sha512-G4j1H3WFjRaiQ+FgFNULrnIm7RsQyjc4xp6lLTP2ydBv79wO3x8wAdeZvaZh7eOkfu9BESpQzACT1uuJTag5jg==
|
||||||
|
dependencies:
|
||||||
|
"@expo/config" "7.0.1"
|
||||||
|
"@expo/config-plugins" "~5.0.1"
|
||||||
|
"@expo/config-types" "^46.0.0"
|
||||||
|
"@expo/image-utils" "0.3.20"
|
||||||
|
"@expo/json-file" "8.2.36"
|
||||||
|
debug "^4.3.1"
|
||||||
|
fs-extra "^9.0.0"
|
||||||
|
resolve-from "^5.0.0"
|
||||||
|
semver "7.3.2"
|
||||||
|
xml2js "0.4.23"
|
||||||
|
|
||||||
"@expo/react-native-action-sheet@^3.13.0":
|
"@expo/react-native-action-sheet@^3.13.0":
|
||||||
version "3.13.0"
|
version "3.13.0"
|
||||||
resolved "https://registry.yarnpkg.com/@expo/react-native-action-sheet/-/react-native-action-sheet-3.13.0.tgz#b4cb08440c54b5ec0b3e429cac396422da1d9442"
|
resolved "https://registry.yarnpkg.com/@expo/react-native-action-sheet/-/react-native-action-sheet-3.13.0.tgz#b4cb08440c54b5ec0b3e429cac396422da1d9442"
|
||||||
@ -1703,10 +1771,10 @@
|
|||||||
mkdirp "^1.0.4"
|
mkdirp "^1.0.4"
|
||||||
rimraf "^3.0.2"
|
rimraf "^3.0.2"
|
||||||
|
|
||||||
"@react-native-async-storage/async-storage@^1.17.8":
|
"@react-native-async-storage/async-storage@^1.17.9":
|
||||||
version "1.17.8"
|
version "1.17.9"
|
||||||
resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.17.8.tgz#1ccff16dd02a85117b569f36eabaa2e49be40bbd"
|
resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.17.9.tgz#2092d675fb9de05a3e71cdf8cefa9c5c4e4a3728"
|
||||||
integrity sha512-GoM/11oiSQrTcb6OycIPc6yv9HdWO12WbjsZX82v0xkAwefxJ0nPEHPhaeJiUnoOlCxj44+KoEPzlHG0Y8eRhA==
|
integrity sha512-HKhMvjpA5/YzNMkcY3qeWLdTtUrtJe243knHNNYe1c0IplX69hZyiw7DjFwAgxPG9+YvzHDHliqPV+mBNOv+cQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
merge-options "^3.0.4"
|
merge-options "^3.0.4"
|
||||||
|
|
||||||
@ -1979,10 +2047,10 @@
|
|||||||
color "^4.2.3"
|
color "^4.2.3"
|
||||||
warn-once "^0.1.0"
|
warn-once "^0.1.0"
|
||||||
|
|
||||||
"@reduxjs/toolkit@^1.8.3":
|
"@reduxjs/toolkit@^1.8.4":
|
||||||
version "1.8.3"
|
version "1.8.4"
|
||||||
resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.8.3.tgz#9c6a9c497bde43a67618d37a4175a00ae12efeb2"
|
resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.8.4.tgz#8f226acff22adf539d078b64fa2eafc3f8d1d045"
|
||||||
integrity sha512-lU/LDIfORmjBbyDLaqFN2JB9YmAT1BElET9y0ZszwhSBa5Ef3t6o5CrHupw5J1iOXwd+o92QfQZ8OJpwXvsssg==
|
integrity sha512-IpFq1WI7sCYeLQpDCGvlcQY9wn70UpAM3cOLq78HRnVn1746RI+l3y5xcuOeVOxORaxABJh3cfJMxycD2IwH5w==
|
||||||
dependencies:
|
dependencies:
|
||||||
immer "^9.0.7"
|
immer "^9.0.7"
|
||||||
redux "^4.1.2"
|
redux "^4.1.2"
|
||||||
@ -1997,16 +2065,6 @@
|
|||||||
component-type "^1.2.1"
|
component-type "^1.2.1"
|
||||||
join-component "^1.1.0"
|
join-component "^1.1.0"
|
||||||
|
|
||||||
"@sentry/browser@7.6.0":
|
|
||||||
version "7.6.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.6.0.tgz#54bcd52747c40b2656d62d53541037a5724f3296"
|
|
||||||
integrity sha512-1gdvV8RtTnNFyc790t49MAgFuHAP43NEZvdQOMw5KFnDwSGYFqfBtvJ8tUm125UPbi2fghBryO9M1gfIWboKUg==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/core" "7.6.0"
|
|
||||||
"@sentry/types" "7.6.0"
|
|
||||||
"@sentry/utils" "7.6.0"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/browser@7.7.0":
|
"@sentry/browser@7.7.0":
|
||||||
version "7.7.0"
|
version "7.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.7.0.tgz#7810ee98d4969bd0367e29ac0af6c5779db7e6c4"
|
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.7.0.tgz#7810ee98d4969bd0367e29ac0af6c5779db7e6c4"
|
||||||
@ -2017,6 +2075,16 @@
|
|||||||
"@sentry/utils" "7.7.0"
|
"@sentry/utils" "7.7.0"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
|
"@sentry/browser@7.9.0":
|
||||||
|
version "7.9.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.9.0.tgz#eb9aeebfd5fb758e484ebdc6ab420a2a620219bb"
|
||||||
|
integrity sha512-R0/EatdSBPZ+orsD5Mu/Gq8XmEfr/KCzJv05S35GVPDkIgczIJ2AYlHgchnEO0m63jDFyWLzUteQmPZ3pao9PQ==
|
||||||
|
dependencies:
|
||||||
|
"@sentry/core" "7.9.0"
|
||||||
|
"@sentry/types" "7.9.0"
|
||||||
|
"@sentry/utils" "7.9.0"
|
||||||
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/cli@1.74.4":
|
"@sentry/cli@1.74.4":
|
||||||
version "1.74.4"
|
version "1.74.4"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.74.4.tgz#7df82f68045a155e1885bfcbb5d303e5259eb18e"
|
resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.74.4.tgz#7df82f68045a155e1885bfcbb5d303e5259eb18e"
|
||||||
@ -2043,16 +2111,6 @@
|
|||||||
proxy-from-env "^1.1.0"
|
proxy-from-env "^1.1.0"
|
||||||
which "^2.0.2"
|
which "^2.0.2"
|
||||||
|
|
||||||
"@sentry/core@7.6.0":
|
|
||||||
version "7.6.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.6.0.tgz#5e5efd54af7b63957ac4d446fb5a69af33da3e51"
|
|
||||||
integrity sha512-vXIuUZbHVSAXh2xZ3NyXYXqVvVQSbGEpgtQxLutwocvD88JFK6aZqO+WQG69GY1b1fKSeE9faEDDS6WGAi46mQ==
|
|
||||||
dependencies:
|
|
||||||
"@sentry/hub" "7.6.0"
|
|
||||||
"@sentry/types" "7.6.0"
|
|
||||||
"@sentry/utils" "7.6.0"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/core@7.7.0":
|
"@sentry/core@7.7.0":
|
||||||
version "7.7.0"
|
version "7.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.7.0.tgz#1a2d477897552d179380f7c54c7d81a4e98ea29a"
|
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.7.0.tgz#1a2d477897552d179380f7c54c7d81a4e98ea29a"
|
||||||
@ -2063,13 +2121,14 @@
|
|||||||
"@sentry/utils" "7.7.0"
|
"@sentry/utils" "7.7.0"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/hub@7.6.0":
|
"@sentry/core@7.9.0":
|
||||||
version "7.6.0"
|
version "7.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.6.0.tgz#69a0d11e50ee61f3f93665948c4acbe56a9ce676"
|
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.9.0.tgz#fb9308e067a4b5794eb49f8bac303bb9c627b1a9"
|
||||||
integrity sha512-TbieNZInpnR5STXykT1zXoKVAsm8ju1RZyzMqYR8nzURbjlMVVEzFRglNY1Ap5MRkbEuYpAc6zUvgLQe8b6Q3w==
|
integrity sha512-WVGd2hV7Clcpl7/GL8LsRr4Zk9o/7o4rZHfs1Qed5lMRNYcxiMwucC1CYILVpJqVfY+8vIRP9v9Ss9ta2VUikw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/types" "7.6.0"
|
"@sentry/hub" "7.9.0"
|
||||||
"@sentry/utils" "7.6.0"
|
"@sentry/types" "7.9.0"
|
||||||
|
"@sentry/utils" "7.9.0"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/hub@7.7.0":
|
"@sentry/hub@7.7.0":
|
||||||
@ -2081,14 +2140,13 @@
|
|||||||
"@sentry/utils" "7.7.0"
|
"@sentry/utils" "7.7.0"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/integrations@7.6.0":
|
"@sentry/hub@7.9.0":
|
||||||
version "7.6.0"
|
version "7.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.6.0.tgz#7e4026b7a2d830a7724a13908d9ad4b3eede6bb9"
|
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.9.0.tgz#29d4c796006282a20e5f78a1bb156d8f5eacd772"
|
||||||
integrity sha512-7vjjO04Yz0l1MaY8giZIJro2gAWmLEEhnC/5M9ymjTDJ/bhjDJh3rqSjgZtsoPJS2KXmHskXSRQQXlXVPriUKg==
|
integrity sha512-KzPbGCB5mONgsXEzqHy6uOaOuqLnhmFmSpGg+M03J6UJnJaNM7nrNp80MhStmjLMq6whEYVE07DrMAn3+iaQdg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/types" "7.6.0"
|
"@sentry/types" "7.9.0"
|
||||||
"@sentry/utils" "7.6.0"
|
"@sentry/utils" "7.9.0"
|
||||||
localforage "^1.8.1"
|
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/integrations@7.7.0":
|
"@sentry/integrations@7.7.0":
|
||||||
@ -2101,23 +2159,17 @@
|
|||||||
localforage "^1.8.1"
|
localforage "^1.8.1"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/react-native@4.1.3":
|
"@sentry/integrations@7.9.0":
|
||||||
version "4.1.3"
|
version "7.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-4.1.3.tgz#2eb5bc3557dbde0b12751e590484f7db686496c2"
|
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.9.0.tgz#f1db61ec426565ae70d98fa0d1d5a8e9f51761eb"
|
||||||
integrity sha512-78701QuJ6E0C7SKN7B/S3BMWHe/OFg9TJKFjq4oZ35/g27HE1OuMobTgnfxFgaPh4qwV6qpwRO02kRwMaY1HEw==
|
integrity sha512-HQX7Fxj9Kjobp8AVipPPusjpogRJuMYdCYtCJMUHpmGB9BVOZpKcnr5tUR39GNpTxlb0+L9/4ET6Bg+2HfIrRg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/browser" "7.6.0"
|
"@sentry/types" "7.9.0"
|
||||||
"@sentry/cli" "1.74.4"
|
"@sentry/utils" "7.9.0"
|
||||||
"@sentry/core" "7.6.0"
|
localforage "^1.8.1"
|
||||||
"@sentry/hub" "7.6.0"
|
tslib "^1.9.3"
|
||||||
"@sentry/integrations" "7.6.0"
|
|
||||||
"@sentry/react" "7.6.0"
|
|
||||||
"@sentry/tracing" "7.6.0"
|
|
||||||
"@sentry/types" "7.6.0"
|
|
||||||
"@sentry/utils" "7.6.0"
|
|
||||||
"@sentry/wizard" "1.2.17"
|
|
||||||
|
|
||||||
"@sentry/react-native@^4.2.2":
|
"@sentry/react-native@4.2.2":
|
||||||
version "4.2.2"
|
version "4.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-4.2.2.tgz#613ffa2347746d2ed66200c314092411ad7aa43c"
|
resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-4.2.2.tgz#613ffa2347746d2ed66200c314092411ad7aa43c"
|
||||||
integrity sha512-2zSgR73/jNByr4WDciE97n78Tj81Lrhhwj1/yMRWFDd9pF802ZYiRVeIkHArEYGHER41fiQojP7wBKftvnKgew==
|
integrity sha512-2zSgR73/jNByr4WDciE97n78Tj81Lrhhwj1/yMRWFDd9pF802ZYiRVeIkHArEYGHER41fiQojP7wBKftvnKgew==
|
||||||
@ -2133,16 +2185,21 @@
|
|||||||
"@sentry/utils" "7.7.0"
|
"@sentry/utils" "7.7.0"
|
||||||
"@sentry/wizard" "1.2.17"
|
"@sentry/wizard" "1.2.17"
|
||||||
|
|
||||||
"@sentry/react@7.6.0":
|
"@sentry/react-native@^4.2.2":
|
||||||
version "7.6.0"
|
version "4.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.6.0.tgz#349596f64da8eb9370c19dde0febfd2dbaeef682"
|
resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-4.2.3.tgz#3542917639a35dfe1403d7eee8c0eb21f119998f"
|
||||||
integrity sha512-R5xBZUxSjNLpeq1dlW22JudX5x1FhzfazSVEQ9TXJEZM2ufC1XP/JkO7bRJFad1JjIzSWqlez8Wm13EnbV9wRg==
|
integrity sha512-I0IdNlgrTqR0z0nEMzI2xTWcAzraZRhqoBm+6ltLhGLX5/0tADVNiW/431nSta5xknSvc3EGpZZJ/gsv4CS8ZQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/browser" "7.6.0"
|
"@sentry/browser" "7.9.0"
|
||||||
"@sentry/types" "7.6.0"
|
"@sentry/cli" "1.74.4"
|
||||||
"@sentry/utils" "7.6.0"
|
"@sentry/core" "7.9.0"
|
||||||
hoist-non-react-statics "^3.3.2"
|
"@sentry/hub" "7.9.0"
|
||||||
tslib "^1.9.3"
|
"@sentry/integrations" "7.9.0"
|
||||||
|
"@sentry/react" "7.9.0"
|
||||||
|
"@sentry/tracing" "7.9.0"
|
||||||
|
"@sentry/types" "7.9.0"
|
||||||
|
"@sentry/utils" "7.9.0"
|
||||||
|
"@sentry/wizard" "1.2.17"
|
||||||
|
|
||||||
"@sentry/react@7.7.0":
|
"@sentry/react@7.7.0":
|
||||||
version "7.7.0"
|
version "7.7.0"
|
||||||
@ -2155,14 +2212,15 @@
|
|||||||
hoist-non-react-statics "^3.3.2"
|
hoist-non-react-statics "^3.3.2"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/tracing@7.6.0":
|
"@sentry/react@7.9.0":
|
||||||
version "7.6.0"
|
version "7.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.6.0.tgz#2b34992e7a003c40393a4aab4b917db2712a1586"
|
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.9.0.tgz#555a4a6093621ee0c3ce90804d3be28ca342670e"
|
||||||
integrity sha512-ydlIk8FpuXiQm3Y0cLwXMOUYv5UtniP8ylWw3ix0sF5sTpJWSaC/g8P8yrzkYV+pm28kde5qfE3nocGhpwxZcA==
|
integrity sha512-T3jHDH0AYmbyyufvKEOCFnIeLTU/bHUZM+e3eTevcq/eXFHS7JTK/8qsRnK0sYUT7/JolbpG/iq7QDkeGvSxpQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/hub" "7.6.0"
|
"@sentry/browser" "7.9.0"
|
||||||
"@sentry/types" "7.6.0"
|
"@sentry/types" "7.9.0"
|
||||||
"@sentry/utils" "7.6.0"
|
"@sentry/utils" "7.9.0"
|
||||||
|
hoist-non-react-statics "^3.3.2"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/tracing@7.7.0":
|
"@sentry/tracing@7.7.0":
|
||||||
@ -2175,23 +2233,25 @@
|
|||||||
"@sentry/utils" "7.7.0"
|
"@sentry/utils" "7.7.0"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/types@7.6.0":
|
"@sentry/tracing@7.9.0":
|
||||||
version "7.6.0"
|
version "7.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.6.0.tgz#7352bcc5621177ceefb18733d0a6b0cdb0307822"
|
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.9.0.tgz#0cbbf5b61ee76b934d2e4160a0ad3daf0001237b"
|
||||||
integrity sha512-POimbDwr9tmHSKksJTXe5VQpvjkFO4/UWUptigwqf8684rkS7Ie2BT2uyp5GD2EgYFf0BwUOWi98FTYTvUGT+Q==
|
integrity sha512-X4HQ7jjP7qyc4saCtq31kLqQzcBpRNifE9KccgEbNXAkKoMrg5F22oUlfN2EcEWy0vm1C23juseDsOSSMXAM+A==
|
||||||
|
dependencies:
|
||||||
|
"@sentry/hub" "7.9.0"
|
||||||
|
"@sentry/types" "7.9.0"
|
||||||
|
"@sentry/utils" "7.9.0"
|
||||||
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/types@7.7.0":
|
"@sentry/types@7.7.0":
|
||||||
version "7.7.0"
|
version "7.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.7.0.tgz#dd6bd3d119d7efea0e85dbaa4b17de1c22b63c7a"
|
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.7.0.tgz#dd6bd3d119d7efea0e85dbaa4b17de1c22b63c7a"
|
||||||
integrity sha512-4x8O7uerSGLnYC10krHl9t8h7xXHn5FextqKYbTCXCnx2hC8D+9lz8wcbQAFo0d97wiUYqI8opmEgFVGx7c5hQ==
|
integrity sha512-4x8O7uerSGLnYC10krHl9t8h7xXHn5FextqKYbTCXCnx2hC8D+9lz8wcbQAFo0d97wiUYqI8opmEgFVGx7c5hQ==
|
||||||
|
|
||||||
"@sentry/utils@7.6.0":
|
"@sentry/types@7.9.0":
|
||||||
version "7.6.0"
|
version "7.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.6.0.tgz#50b44fd9b06686a358ef2c7c0fd3b80970e1f9ee"
|
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.9.0.tgz#8fa952865fda76f7c7c7fc6c84043979a22043ae"
|
||||||
integrity sha512-p0Byi6hgawp/sBMY88RY8OmkiAR2jxbjnl8gSo+y3YEu+KeXBUxXMBsI7YeW+1lSb6z8DGhUAOBszTeI4wAr2w==
|
integrity sha512-VGnUgELVMpGJCYW1triO+5XSyaPjB2Zu6esUgbb8iJ5bi+OWtxklixXgwhdaTb0FDzmRL/T/pckmrIuBTLySHQ==
|
||||||
dependencies:
|
|
||||||
"@sentry/types" "7.6.0"
|
|
||||||
tslib "^1.9.3"
|
|
||||||
|
|
||||||
"@sentry/utils@7.7.0":
|
"@sentry/utils@7.7.0":
|
||||||
version "7.7.0"
|
version "7.7.0"
|
||||||
@ -2201,6 +2261,14 @@
|
|||||||
"@sentry/types" "7.7.0"
|
"@sentry/types" "7.7.0"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
|
"@sentry/utils@7.9.0":
|
||||||
|
version "7.9.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.9.0.tgz#497c41efe1b32974208ca68570e42c853b874f77"
|
||||||
|
integrity sha512-4f9TZvAVopgG7Lp1TcPSekSX1Ashk68Et4T8Y+60EVX5se19i0hpytbHWWwrXSrb3w0KpGANk0byoZkdaTgkYA==
|
||||||
|
dependencies:
|
||||||
|
"@sentry/types" "7.9.0"
|
||||||
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/wizard@1.2.17":
|
"@sentry/wizard@1.2.17":
|
||||||
version "1.2.17"
|
version "1.2.17"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/wizard/-/wizard-1.2.17.tgz#c3247b47129d002cfa45d7a2048d13dc6513457b"
|
resolved "https://registry.yarnpkg.com/@sentry/wizard/-/wizard-1.2.17.tgz#c3247b47129d002cfa45d7a2048d13dc6513457b"
|
||||||
@ -3926,10 +3994,10 @@ expo-auth-session@^3.7.1:
|
|||||||
invariant "^2.2.4"
|
invariant "^2.2.4"
|
||||||
qs "6.9.1"
|
qs "6.9.1"
|
||||||
|
|
||||||
expo-av@^12.0.3:
|
expo-av@^12.0.4:
|
||||||
version "12.0.3"
|
version "12.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/expo-av/-/expo-av-12.0.3.tgz#f242215c992f03299236f902e0938cfd2b2fa5f4"
|
resolved "https://registry.yarnpkg.com/expo-av/-/expo-av-12.0.4.tgz#00cf2da76c0c718a1d316f188247dee85ce512c2"
|
||||||
integrity sha512-iY3AAJFJHBRtCrCziC9n6+Cb/uls3MzCB1Svs906BE8rxQ94yyOW2Nds7T+9CfCFNUAOlGvWjf/OXgHljzLXqQ==
|
integrity sha512-wq3wx6J1aacZEPZce9TK1+o4YTAOWyb5cJ4CqfsgHcXeUdHyO3qbva/5uecigpEYlCxOlWYFhAz2T0dQ7nWSpQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@expo/config-plugins" "~5.0.0"
|
"@expo/config-plugins" "~5.0.0"
|
||||||
|
|
||||||
@ -4032,10 +4100,10 @@ expo-manifests@~0.3.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
expo-json-utils "~0.3.0"
|
expo-json-utils "~0.3.0"
|
||||||
|
|
||||||
expo-modules-autolinking@0.10.1:
|
expo-modules-autolinking@0.10.2:
|
||||||
version "0.10.1"
|
version "0.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.10.1.tgz#9d7e004cbfee7cb12245cc2686180c2d14ed9095"
|
resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.10.2.tgz#9a6cdc0f187da4663607b719dcf400402cc5b776"
|
||||||
integrity sha512-SxVjAO7XqRrwpJMxgBj2SCC1pGDSRKf1cirCPRywJUPFzN3PgZTfAjDMBZFGJGrmGreumFxZ8KmQeYyR7t3DoA==
|
integrity sha512-dbmAl+IiHX0nEwVc0Q665NIE7y7gsV8CMuR8xFab7McVZ466SU1zPssVm1fFQcOks1P51dDAR8hAr4xTV9PJ+w==
|
||||||
dependencies:
|
dependencies:
|
||||||
chalk "^4.1.0"
|
chalk "^4.1.0"
|
||||||
commander "^7.2.0"
|
commander "^7.2.0"
|
||||||
@ -4107,15 +4175,15 @@ expo-updates-interface@~0.7.0:
|
|||||||
resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.7.0.tgz#f4f03b61dbdd949cac9fb44e250e1162ba177650"
|
resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.7.0.tgz#f4f03b61dbdd949cac9fb44e250e1162ba177650"
|
||||||
integrity sha512-saThnbrYDSjKxfMFFguAvh5o5KGabvAOHItkJRwq2L3c0T/3q26Q0kM83880h/+TTtAVsl1+Vhny9d+ImD3yvQ==
|
integrity sha512-saThnbrYDSjKxfMFFguAvh5o5KGabvAOHItkJRwq2L3c0T/3q26Q0kM83880h/+TTtAVsl1+Vhny9d+ImD3yvQ==
|
||||||
|
|
||||||
expo-updates@^0.14.3:
|
expo-updates@^0.14.4:
|
||||||
version "0.14.3"
|
version "0.14.4"
|
||||||
resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.14.3.tgz#c0e5afe824e8f4a14aefddac97afe152cfa00358"
|
resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.14.4.tgz#5fd6708c8438dabc50c1a68329b3caebc9ec9a65"
|
||||||
integrity sha512-WmtwHv3xiqlHDVseTANjj0L0PbMd5v+rcud0I5E5Vd1ou14ADgfCrr9c3qheDyj3TKqpA/9+JY9Ls3iq8G1SjQ==
|
integrity sha512-+TbhUmsbjkOMHR/fhZEtcIf7xa8d/UbcvicIAr6jD9FfluBoRatB2sXiswBEohQeQov4P4XlfBKyNE5QTpu0Xw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@expo/code-signing-certificates" "0.0.2"
|
"@expo/code-signing-certificates" "0.0.2"
|
||||||
"@expo/config" "~7.0.0"
|
"@expo/config" "~7.0.1"
|
||||||
"@expo/config-plugins" "~5.0.0"
|
"@expo/config-plugins" "~5.0.1"
|
||||||
"@expo/metro-config" "~0.3.18"
|
"@expo/metro-config" "~0.3.19"
|
||||||
arg "4.1.0"
|
arg "4.1.0"
|
||||||
expo-eas-client "~0.3.0"
|
expo-eas-client "~0.3.0"
|
||||||
expo-manifests "~0.3.0"
|
expo-manifests "~0.3.0"
|
||||||
@ -4137,13 +4205,13 @@ expo-web-browser@^11.0.0, expo-web-browser@~11.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
compare-urls "^2.0.0"
|
compare-urls "^2.0.0"
|
||||||
|
|
||||||
expo@^46.0.2:
|
expo@^46.0.6:
|
||||||
version "46.0.2"
|
version "46.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/expo/-/expo-46.0.2.tgz#6ee13b28b8d36dd224402575f523b37d8f153101"
|
resolved "https://registry.yarnpkg.com/expo/-/expo-46.0.6.tgz#fd1bd159ef5d87196ab13502e86080052e3f573b"
|
||||||
integrity sha512-E7MEzsWnxUAVolFGxBGxI1UazQYPvRx9c+2RlRlr6Kpp4BTsIuRZiYgHywJe9jZVw9csc4C4aL3TYcKg+3lehg==
|
integrity sha512-60fM7sqLppVd6jP73uWuqiLW7BbC20WxFRfAz+r4a7bRkrD/jUwvdQlVKIj9KpQQHWaDeuASj3rSGtU9CytPhg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.14.0"
|
"@babel/runtime" "^7.14.0"
|
||||||
"@expo/cli" "0.2.6"
|
"@expo/cli" "0.2.8"
|
||||||
"@expo/vector-icons" "^13.0.0"
|
"@expo/vector-icons" "^13.0.0"
|
||||||
babel-preset-expo "~9.2.0"
|
babel-preset-expo "~9.2.0"
|
||||||
cross-spawn "^6.0.5"
|
cross-spawn "^6.0.5"
|
||||||
@ -4153,7 +4221,7 @@ expo@^46.0.2:
|
|||||||
expo-file-system "~14.1.0"
|
expo-file-system "~14.1.0"
|
||||||
expo-font "~10.2.0"
|
expo-font "~10.2.0"
|
||||||
expo-keep-awake "~10.2.0"
|
expo-keep-awake "~10.2.0"
|
||||||
expo-modules-autolinking "0.10.1"
|
expo-modules-autolinking "0.10.2"
|
||||||
expo-modules-core "0.11.3"
|
expo-modules-core "0.11.3"
|
||||||
fbemitter "^3.0.0"
|
fbemitter "^3.0.0"
|
||||||
getenv "^1.0.0"
|
getenv "^1.0.0"
|
||||||
@ -7117,15 +7185,15 @@ react-native-screens@^3.15.0:
|
|||||||
react-freeze "^1.0.0"
|
react-freeze "^1.0.0"
|
||||||
warn-once "^0.1.0"
|
warn-once "^0.1.0"
|
||||||
|
|
||||||
react-native-share-menu@^5.0.5:
|
react-native-share-menu@^6.0.0:
|
||||||
version "5.0.5"
|
version "6.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-share-menu/-/react-native-share-menu-5.0.5.tgz#0014cbfdff1d5f60ae7dc100ae63b5b41bcd01b7"
|
resolved "https://registry.yarnpkg.com/react-native-share-menu/-/react-native-share-menu-6.0.0.tgz#0398dd4537ca1138b774fcbff9b05a88c8329cf6"
|
||||||
integrity sha512-AUetD75x2PKM1sgLqcEBeeI1LHVM4WgiY+SHTGbbSbrnPzjt9oadt8ZNw/ICNYM91toW4WQu+WktuXEIIarBQg==
|
integrity sha512-KdmRnqjI/B2MigSxGmhbYJ3WMJxKXj+0c47ANcVZ/PTzc2vtz6d1r4KQJgkBImXgNC+vowpuD2UGdPllxadr2A==
|
||||||
|
|
||||||
react-native-svg@^12.4.3:
|
react-native-svg@^12.4.4:
|
||||||
version "12.4.3"
|
version "12.4.4"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-12.4.3.tgz#d383c6f587f6f3f3664413ae0e73134e91d11317"
|
resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-12.4.4.tgz#2ba684eaea9a7402fbbe0ed9737e77284631d00e"
|
||||||
integrity sha512-8OF+vvXsI854YlHBOQkanNcyio+7oQO0nQsS/Noji2VmPoMnLiJiMaxmOD9RHxGkbbo7lzbYWdxVdNibjN/8IA==
|
integrity sha512-LpcNlEVCURexqPAvQ9ne8KrPVfYz0wIDygwud8VMRmXLezysXzyQN/DTsjm1BO9lIfYp55WQsr3u3yW/vk6iiA==
|
||||||
dependencies:
|
dependencies:
|
||||||
css-select "^5.1.0"
|
css-select "^5.1.0"
|
||||||
css-tree "^1.1.3"
|
css-tree "^1.1.3"
|
||||||
@ -7611,17 +7679,17 @@ send@0.18.0, send@^0.18.0:
|
|||||||
range-parser "~1.2.1"
|
range-parser "~1.2.1"
|
||||||
statuses "2.0.1"
|
statuses "2.0.1"
|
||||||
|
|
||||||
sentry-expo@^5.0.1:
|
sentry-expo@^5.0.2:
|
||||||
version "5.0.1"
|
version "5.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/sentry-expo/-/sentry-expo-5.0.1.tgz#4cab38797de67d0010acc459dfe8c1ae1592d6b1"
|
resolved "https://registry.yarnpkg.com/sentry-expo/-/sentry-expo-5.0.2.tgz#2dc1e3b0fb42c130758d1c812979e236a300dd59"
|
||||||
integrity sha512-2Cf0UXdCsjR+eQ4GZhA/IbdB3FUJfMTTXYkkxwRaB8JkcVaRYdvg2mCRoAan1oogow45ZTKzQRC4lL9jlub/ZA==
|
integrity sha512-okDqnFuQ1iQLWAEMW7SbLNcfg9XkKyr1FwP6cuLgVl4sPuZEr5mQtLSp4jXUncWYtIG2gnRkmXmZukkUat/OoQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@expo/config-plugins" "~5.0.0"
|
"@expo/config-plugins" "~5.0.0"
|
||||||
"@expo/config-types" "^46.0.1"
|
"@expo/config-types" "^46.0.1"
|
||||||
"@expo/spawn-async" "^1.6.0"
|
"@expo/spawn-async" "^1.6.0"
|
||||||
"@sentry/browser" "7.7.0"
|
"@sentry/browser" "7.7.0"
|
||||||
"@sentry/integrations" "7.7.0"
|
"@sentry/integrations" "7.7.0"
|
||||||
"@sentry/react-native" "4.1.3"
|
"@sentry/react-native" "4.2.2"
|
||||||
"@sentry/types" "7.7.0"
|
"@sentry/types" "7.7.0"
|
||||||
mkdirp "^1.0.4"
|
mkdirp "^1.0.4"
|
||||||
rimraf "^3.0.2"
|
rimraf "^3.0.2"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user