Compare commits
66
Commits
19728
...
version-bump
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f3437bdfd | ||
|
|
b69fe523f9 | ||
|
|
3e5d758e92 | ||
|
|
7f40f410e7 | ||
|
|
497c95fd26 | ||
|
|
604eaccbbf | ||
|
|
842dbbbd8d | ||
|
|
10f5f9ec7d | ||
|
|
07fb3610d1 | ||
|
|
43951b9dfd | ||
|
|
834bf612ac | ||
|
|
161ba2713f | ||
|
|
245b3fcf57 | ||
|
|
90e5774dd6 | ||
|
|
be59785a1f | ||
|
|
45129b8244 | ||
|
|
0c6bb61ebe | ||
|
|
7ec77db666 | ||
|
|
b907881d59 | ||
|
|
0d7c2684ee | ||
|
|
5802097f5f | ||
|
|
5fc9722992 | ||
|
|
4eaf832b43 | ||
|
|
a9b4d86b00 | ||
|
|
8a24185ad6 | ||
|
|
355e144ef7 | ||
|
|
d8d1e030e4 | ||
|
|
9187ec25c1 | ||
|
|
de29c6f7d9 | ||
|
|
e6ee2714d7 | ||
|
|
25e3a56dba | ||
|
|
7b9f4983cb | ||
|
|
94ab27bcbb | ||
|
|
041ceda95e | ||
|
|
86c1dbd25d | ||
|
|
a094d218d5 | ||
|
|
3951b8a39c | ||
|
|
1757dc5d53 | ||
|
|
f942092a5e | ||
|
|
d4be3a6976 | ||
|
|
6037fe80c4 | ||
|
|
6a1fdc5b08 | ||
|
|
17f6a72590 | ||
|
|
aaf5b72675 | ||
|
|
a1490d414c | ||
|
|
8c26125e52 | ||
|
|
86fefc2e32 | ||
|
|
d8e3934a05 | ||
|
|
65b0d1cd17 | ||
|
|
b65ac2ab14 | ||
|
|
c00eb0d539 | ||
|
|
42e407fbcf | ||
|
|
e9c2d24cc3 | ||
|
|
d9aa885eb2 | ||
|
|
bd192b0f7d | ||
|
|
e8008d0aa9 | ||
|
|
2ec6a3ed06 | ||
|
|
8fc6f4776b | ||
|
|
cd54aa9b92 | ||
|
|
8aa586fe6e | ||
|
|
1e55827c4b | ||
|
|
03f813c957 | ||
|
|
6d6766dce1 | ||
|
|
ce3d32dc0a | ||
|
|
56ff84f475 | ||
|
|
cdb39452d7 |
@@ -36,3 +36,4 @@ TEST_STATEOFUS=1
|
||||
FAST_CREATE_COMMUNITY_ENABLED=1
|
||||
TEST_NETWORKS_ENABLED=1
|
||||
SHOW_NOT_IMPLEMENTED_FEATURES=0
|
||||
ENABLE_ALERT_BANNER=0
|
||||
|
||||
@@ -37,3 +37,4 @@ TEST_NETWORKS_ENABLED=1
|
||||
SHOW_NOT_IMPLEMENTED_FEATURES=1
|
||||
DELETE_MESSAGE_FOR_ME_UNDO_TIME_LIMIT=10000
|
||||
DELETE_MESSAGE_UNDO_TIME_LIMIT=10000
|
||||
ENABLE_ALERT_BANNER=0
|
||||
|
||||
@@ -37,3 +37,4 @@ LOCAL_PAIRING_ENABLED=1
|
||||
FAST_CREATE_COMMUNITY_ENABLED=1
|
||||
TEST_NETWORKS_ENABLED=1
|
||||
SHOW_NOT_IMPLEMENTED_FEATURES=1
|
||||
ENABLE_ALERT_BANNER=1
|
||||
|
||||
@@ -23,3 +23,4 @@ DATABASE_MANAGEMENT_ENABLED=1
|
||||
DELETE_MESSAGE_ENABLED=1
|
||||
FAST_CREATE_COMMUNITY_ENABLED=0
|
||||
TEST_NETWORKS_ENABLED=0
|
||||
ENABLE_ALERT_BANNER=1
|
||||
|
||||
@@ -145,6 +145,14 @@ android {
|
||||
jvmTarget = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
// https://developer.android.com/studio/projects/install-ndk#vanilla_cmake
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
// This version must match cmakeVersions inside nix/pkgs/android-sdk/compose.nix
|
||||
version "3.22.1"
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_17
|
||||
targetCompatibility JavaVersion.VERSION_17
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ abstract_target 'Status' do
|
||||
use_react_native!(
|
||||
:path => config[:reactNativePath],
|
||||
:fabric_enabled => flags[:fabric_enabled],
|
||||
:hermes_enabled => false,
|
||||
:hermes_enabled => true,
|
||||
# An absolute path to your application root.
|
||||
:app_path => "#{Pod::Config.instance.installation_root}/.."
|
||||
)
|
||||
|
||||
+129
-69
@@ -14,11 +14,15 @@ PODS:
|
||||
- ReactCommon/turbomodule/core (= 0.73.5)
|
||||
- fmt (6.2.1)
|
||||
- glog (0.3.5)
|
||||
- hermes-engine (0.73.5):
|
||||
- hermes-engine/Pre-built (= 0.73.5)
|
||||
- hermes-engine/Pre-built (0.73.5)
|
||||
- HMSegmentedControl (1.5.6)
|
||||
- Keycard (3.0.6):
|
||||
- CryptoSwift
|
||||
- secp256k1
|
||||
- SSZipArchive
|
||||
- libevent (2.1.12)
|
||||
- libwebp (1.2.4):
|
||||
- libwebp/demux (= 1.2.4)
|
||||
- libwebp/mux (= 1.2.4)
|
||||
@@ -44,6 +48,12 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- RCT-Folly/Futures (2022.05.16.00):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- libevent
|
||||
- RCTRequired (0.73.5)
|
||||
- RCTTypeSafety (0.73.5):
|
||||
- FBLazyVector (= 0.73.5)
|
||||
@@ -67,11 +77,11 @@ PODS:
|
||||
- DoubleConversion
|
||||
- FBReactNativeSpec
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
- React-Core
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-NativeModulesApple
|
||||
@@ -80,10 +90,11 @@ PODS:
|
||||
- ReactCommon/turbomodule/core
|
||||
- React-Core (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default (= 0.73.5)
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -93,10 +104,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/CoreModulesHeaders (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -106,9 +118,10 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/Default (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -118,11 +131,12 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/DevSupport (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default (= 0.73.5)
|
||||
- React-Core/RCTWebSocket (= 0.73.5)
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-jsinspector (= 0.73.5)
|
||||
@@ -133,10 +147,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/RCTActionSheetHeaders (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -146,10 +161,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/RCTAnimationHeaders (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -159,10 +175,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/RCTBlobHeaders (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -172,10 +189,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/RCTImageHeaders (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -185,10 +203,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/RCTLinkingHeaders (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -198,10 +217,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/RCTNetworkHeaders (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -211,10 +231,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/RCTSettingsHeaders (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -224,10 +245,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/RCTTextHeaders (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -237,10 +259,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/RCTVibrationHeaders (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -250,10 +273,11 @@ PODS:
|
||||
- Yoga
|
||||
- React-Core/RCTWebSocket (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core/Default (= 0.73.5)
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-perflogger
|
||||
@@ -277,6 +301,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-callinvoker (= 0.73.5)
|
||||
- React-debug (= 0.73.5)
|
||||
@@ -290,6 +315,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -311,7 +337,6 @@ PODS:
|
||||
- React-Fabric/textlayoutmanager (= 0.73.5)
|
||||
- React-Fabric/uimanager (= 0.73.5)
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -323,6 +348,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -330,7 +356,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -342,6 +367,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -349,7 +375,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -361,6 +386,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -368,7 +394,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -380,6 +405,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -387,7 +413,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -399,6 +424,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -417,7 +443,6 @@ PODS:
|
||||
- React-Fabric/components/unimplementedview (= 0.73.5)
|
||||
- React-Fabric/components/view (= 0.73.5)
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -429,6 +454,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -436,7 +462,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -448,6 +473,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -455,7 +481,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -467,6 +492,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -474,7 +500,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -486,6 +511,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -493,7 +519,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -505,6 +530,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -512,7 +538,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -524,6 +549,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -531,7 +557,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -543,6 +568,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -550,7 +576,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -562,6 +587,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -569,7 +595,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -581,6 +606,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -588,7 +614,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -600,6 +625,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -607,7 +633,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -619,6 +644,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -626,7 +652,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -639,6 +664,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -646,7 +672,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -658,6 +683,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -665,7 +691,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -677,6 +702,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -684,7 +710,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -696,6 +721,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -703,7 +729,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -715,6 +740,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -722,7 +748,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -734,6 +759,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -741,7 +767,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -753,6 +778,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -760,7 +786,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -772,6 +797,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -780,7 +806,6 @@ PODS:
|
||||
- React-debug
|
||||
- React-Fabric/uimanager
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -792,6 +817,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
@@ -799,7 +825,6 @@ PODS:
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-graphics
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
@@ -811,13 +836,13 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- RCTRequired (= 0.73.5)
|
||||
- RCTTypeSafety (= 0.73.5)
|
||||
- React-Fabric
|
||||
- React-graphics
|
||||
- React-ImageManager
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-jsiexecutor (= 0.73.5)
|
||||
- React-logger
|
||||
@@ -830,6 +855,18 @@ PODS:
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- React-Core/Default (= 0.73.5)
|
||||
- React-utils
|
||||
- React-hermes (0.73.5):
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- RCT-Folly/Futures (= 2022.05.16.00)
|
||||
- React-cxxreact (= 0.73.5)
|
||||
- React-jsi
|
||||
- React-jsiexecutor (= 0.73.5)
|
||||
- React-jsinspector (= 0.73.5)
|
||||
- React-perflogger (= 0.73.5)
|
||||
- React-ImageManager (0.73.5):
|
||||
- glog
|
||||
- RCT-Folly/Fabric
|
||||
@@ -839,11 +876,6 @@ PODS:
|
||||
- React-graphics
|
||||
- React-rendererdebug
|
||||
- React-utils
|
||||
- React-jsc (0.73.5):
|
||||
- React-jsc/Fabric (= 0.73.5)
|
||||
- React-jsi (= 0.73.5)
|
||||
- React-jsc/Fabric (0.73.5):
|
||||
- React-jsi (= 0.73.5)
|
||||
- React-jserrorhandler (0.73.5):
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- React-debug
|
||||
@@ -854,11 +886,13 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-jsiexecutor (0.73.5):
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-cxxreact (= 0.73.5)
|
||||
- React-jsi (= 0.73.5)
|
||||
@@ -883,10 +917,16 @@ PODS:
|
||||
- glog
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core
|
||||
- react-native-compat (2.12.2):
|
||||
- glog
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Core
|
||||
- react-native-config (1.5.0):
|
||||
- react-native-config/App (= 1.5.0)
|
||||
- react-native-config/App (1.5.0):
|
||||
- React-Core
|
||||
- react-native-get-random-values (1.11.0):
|
||||
- React-Core
|
||||
- react-native-hole-view (3.0.0-alpha4):
|
||||
- React-Core
|
||||
- react-native-image-resizer (1.2.3):
|
||||
@@ -913,10 +953,10 @@ PODS:
|
||||
- React-nativeconfig (0.73.5)
|
||||
- React-NativeModulesApple (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- React-callinvoker
|
||||
- React-Core
|
||||
- React-cxxreact
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-runtimeexecutor
|
||||
- ReactCommon/turbomodule/bridging
|
||||
@@ -938,7 +978,7 @@ PODS:
|
||||
- RCTTypeSafety
|
||||
- React-Core
|
||||
- React-CoreModules
|
||||
- React-jsc
|
||||
- React-hermes
|
||||
- React-nativeconfig
|
||||
- React-NativeModulesApple
|
||||
- React-RCTFabric
|
||||
@@ -947,6 +987,7 @@ PODS:
|
||||
- React-runtimescheduler
|
||||
- ReactCommon
|
||||
- React-RCTBlob (0.73.5):
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-Codegen
|
||||
- React-Core/RCTBlobHeaders
|
||||
@@ -957,6 +998,7 @@ PODS:
|
||||
- ReactCommon
|
||||
- React-RCTFabric (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly/Fabric (= 2022.05.16.00)
|
||||
- React-Core
|
||||
- React-debug
|
||||
@@ -964,7 +1006,6 @@ PODS:
|
||||
- React-FabricImage
|
||||
- React-graphics
|
||||
- React-ImageManager
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-nativeconfig
|
||||
- React-RCTImage
|
||||
@@ -1025,11 +1066,11 @@ PODS:
|
||||
- React-jsi (= 0.73.5)
|
||||
- React-runtimescheduler (0.73.5):
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-callinvoker
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-jsc
|
||||
- React-jsi
|
||||
- React-rendererdebug
|
||||
- React-runtimeexecutor
|
||||
@@ -1045,6 +1086,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-callinvoker (= 0.73.5)
|
||||
- React-cxxreact (= 0.73.5)
|
||||
@@ -1057,6 +1099,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-callinvoker (= 0.73.5)
|
||||
- React-cxxreact (= 0.73.5)
|
||||
@@ -1067,6 +1110,7 @@ PODS:
|
||||
- DoubleConversion
|
||||
- fmt (~> 6.2.1)
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly (= 2022.05.16.00)
|
||||
- React-callinvoker (= 0.73.5)
|
||||
- React-cxxreact (= 0.73.5)
|
||||
@@ -1151,7 +1195,9 @@ DEPENDENCIES:
|
||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
||||
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
|
||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
|
||||
- Keycard (from `https://github.com/status-im/Keycard.swift.git`)
|
||||
- libevent (~> 2.1.12)
|
||||
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
|
||||
@@ -1167,8 +1213,8 @@ DEPENDENCIES:
|
||||
- React-Fabric (from `../node_modules/react-native/ReactCommon`)
|
||||
- React-FabricImage (from `../node_modules/react-native/ReactCommon`)
|
||||
- React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`)
|
||||
- React-hermes (from `../node_modules/react-native/ReactCommon/hermes`)
|
||||
- React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`)
|
||||
- React-jsc (from `../node_modules/react-native/ReactCommon/jsc`)
|
||||
- React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`)
|
||||
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
|
||||
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
|
||||
@@ -1180,7 +1226,9 @@ DEPENDENCIES:
|
||||
- react-native-blob-util (from `../node_modules/react-native-blob-util`)
|
||||
- "react-native-blur (from `../node_modules/@react-native-community/blur`)"
|
||||
- "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)"
|
||||
- "react-native-compat (from `../node_modules/@walletconnect/react-native-compat`)"
|
||||
- react-native-config (from `../node_modules/react-native-config`)
|
||||
- react-native-get-random-values (from `../node_modules/react-native-get-random-values`)
|
||||
- react-native-hole-view (from `../node_modules/react-native-hole-view`)
|
||||
- react-native-image-resizer (from `../node_modules/react-native-image-resizer`)
|
||||
- react-native-lottie-splash-screen (from `../node_modules/react-native-lottie-splash-screen`)
|
||||
@@ -1238,6 +1286,7 @@ SPEC REPOS:
|
||||
- CryptoSwift
|
||||
- fmt
|
||||
- HMSegmentedControl
|
||||
- libevent
|
||||
- libwebp
|
||||
- SDWebImage
|
||||
- SDWebImageWebPCoder
|
||||
@@ -1258,6 +1307,9 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native/React/FBReactNativeSpec"
|
||||
glog:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
|
||||
hermes-engine:
|
||||
:podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
|
||||
:tag: hermes-2024-02-20-RNv0.73.5-18f99ace4213052c5e7cdbcd39ee9766cd5df7e4
|
||||
Keycard:
|
||||
:git: https://github.com/status-im/Keycard.swift.git
|
||||
RCT-Folly:
|
||||
@@ -1286,10 +1338,10 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
React-graphics:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/renderer/graphics"
|
||||
React-hermes:
|
||||
:path: "../node_modules/react-native/ReactCommon/hermes"
|
||||
React-ImageManager:
|
||||
:path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios"
|
||||
React-jsc:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsc"
|
||||
React-jserrorhandler:
|
||||
:path: "../node_modules/react-native/ReactCommon/jserrorhandler"
|
||||
React-jsi:
|
||||
@@ -1312,8 +1364,12 @@ EXTERNAL SOURCES:
|
||||
:path: "../node_modules/@react-native-community/blur"
|
||||
react-native-cameraroll:
|
||||
:path: "../node_modules/@react-native-camera-roll/camera-roll"
|
||||
react-native-compat:
|
||||
:path: "../node_modules/@walletconnect/react-native-compat"
|
||||
react-native-config:
|
||||
:path: "../node_modules/react-native-config"
|
||||
react-native-get-random-values:
|
||||
:path: "../node_modules/react-native-get-random-values"
|
||||
react-native-hole-view:
|
||||
:path: "../node_modules/react-native-hole-view"
|
||||
react-native-image-resizer:
|
||||
@@ -1434,27 +1490,29 @@ SPEC CHECKSUMS:
|
||||
FBReactNativeSpec: 146c741a3f40361f6bc13a4ba284678cbedb5881
|
||||
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
|
||||
glog: 530710e7949eb12c82670bd09e946becf50a3c2a
|
||||
hermes-engine: 1d1835b2cc54c381909d94d1b3c8e0a2f1a94a0e
|
||||
HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352
|
||||
Keycard: ac6df4d91525c3c82635ac24d4ddd9a80aca5fc8
|
||||
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
|
||||
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
|
||||
RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0
|
||||
RCTRequired: 2544c0f1081a5fa12e108bb8cb40e5f4581ccd87
|
||||
RCTTypeSafety: 50efabe2b115c11ed03fbf3fd79e2f163ddb5d7c
|
||||
React: 84221d5e0ce297bc57c4b6af539a62d812d89f10
|
||||
React-callinvoker: 5d17577ecc7f784535ebedf3aad4bcbf8f4b5117
|
||||
React-Codegen: 86ddd366e10277244cb665e680c9631c459876d1
|
||||
React-Core: 89feaf0468bcfdfc09aace4a3dda48ffc20628f4
|
||||
React-Codegen: 857e7984fc277aadde2a7a427288b6918ece7b2b
|
||||
React-Core: 8e782e7e24c7843871a0d9c3c8d7c5b3ebb73832
|
||||
React-CoreModules: 7875ee247e3e6e0e683b52cd1cdda1b71618bd55
|
||||
React-cxxreact: 0f83bc025517476a7e009afd240e62b7cb99f110
|
||||
React-cxxreact: 788cd771c6e94d44f8d472fdfae89b67226067ea
|
||||
React-debug: 55c7f2b8463bfe85567c9f4ede904085601130c9
|
||||
React-Fabric: ca74011a194b1783dc3270a504c240835d3cb983
|
||||
React-FabricImage: 384372a69647c6e30ce64b56ebe33cc30341dfce
|
||||
React-Fabric: 8cb43853496bb8032420edf62e7281c53109e682
|
||||
React-FabricImage: fbdc0ef7ed58a87c77600017c19a751932de3e47
|
||||
React-graphics: dc8307b615f14e13f1081ac23ea66697808bcd29
|
||||
React-hermes: d9acaa4ebf2118d9bd8a541af8c620c467b356b6
|
||||
React-ImageManager: 2a97ddc9b1f459121697d629cfbe69712997d76f
|
||||
React-jsc: 899086c7f0ab7b6ab85873d55882c2aea8473cbf
|
||||
React-jserrorhandler: b97b16674258ccaeff5a70047a097a140e76d12d
|
||||
React-jsi: 60bc1fdca5f69162ab9d0c4623ea77538308a4c3
|
||||
React-jsiexecutor: 5ae96903178c1fdb9f18b0367b3bb73e8f6641e1
|
||||
React-jsi: 1d59d0a148c76641ac577729e0268bafa494152c
|
||||
React-jsiexecutor: 262b66928ad948491d03fd328bb5b822cce94647
|
||||
React-jsinspector: 32db5e364bcae8fca8cdf8891830636275add0c5
|
||||
React-logger: 0331362115f0f5b392bd7ed14636d1a3ea612479
|
||||
React-Mapbuffer: 7c35cd53a22d0be04d3f26f7881c7fb7dd230216
|
||||
@@ -1463,7 +1521,9 @@ SPEC CHECKSUMS:
|
||||
react-native-blob-util: 600972b1782380a5a7d5db61a3817ea32349dae9
|
||||
react-native-blur: 799045500f56146afc46245148080e7b7623cb75
|
||||
react-native-cameraroll: af8eec1e585d053ff485d98ec837f9a8a11b5745
|
||||
react-native-compat: 84e00e8dcff9251278c0d48f2bce81f4502e3925
|
||||
react-native-config: 5330c8258265c1e5fdb8c009d2cabd6badd96727
|
||||
react-native-get-random-values: 21325b2244dfa6b58878f51f9aa42821e7ba3d06
|
||||
react-native-hole-view: 6935448993bac79f2b5a4ad7e9741094cf810679
|
||||
react-native-image-resizer: 2f1577efa3bc762597681f530c8e8d05ce0ceeb3
|
||||
react-native-lottie-splash-screen: 4e1b1fd9d6633f9cd2106d6877eb5ba0147f3e2b
|
||||
@@ -1476,13 +1536,13 @@ SPEC CHECKSUMS:
|
||||
react-native-transparent-video: e484ad11ace8e5f62516e2c5e15efd3cb4df24b0
|
||||
react-native-webview: 88293a0f23eca8465c0433c023ec632930e644d0
|
||||
React-nativeconfig: 1166714a4f7ea57a0df5c2cb44fbc70f98d580f9
|
||||
React-NativeModulesApple: 461b7a216dffdcfcae46afeba2e0859a78eef71e
|
||||
React-NativeModulesApple: 726664e9829eb5eed8170241000e46ead269a05f
|
||||
React-perflogger: 0dd9f1725d55f8264b81efadd373fe1d9cca7dc2
|
||||
React-RCTActionSheet: 05656d2102b0d0a2676d58bad4d80106af5367b2
|
||||
React-RCTAnimation: 6c66beae98730fb7615df28caf651e295f2401e5
|
||||
React-RCTAppDelegate: 0a5359f86586fc8fa2604dd86fab5899dbea57a9
|
||||
React-RCTBlob: b377b7580098c6332d14cb09985dcff3eea29c26
|
||||
React-RCTFabric: b45c27ec85755dbc95e8a7abccb9142a375ee22d
|
||||
React-RCTAppDelegate: 891b80c596fffcb3f90431739495d606a9a0d610
|
||||
React-RCTBlob: 8ecee445ec5fa9ed8a8621a136183c1045165100
|
||||
React-RCTFabric: f291e06bc63fef26cdd105537bae5c6a8d3bdca8
|
||||
React-RCTImage: 585b16465146cb839da02f3179ce7cb19d332642
|
||||
React-RCTLinking: 09ba11f7df62946e7ddca1b51aa3bf47b230e008
|
||||
React-RCTNetwork: e070f8d2fca60f1e9571936ce54d165e77129e76
|
||||
@@ -1492,9 +1552,9 @@ SPEC CHECKSUMS:
|
||||
React-rendererdebug: ee05480666415f7a76e6cf0a7a50363423f44809
|
||||
React-rncore: 010565651e9cf2e4fac9517a348446789dd55e01
|
||||
React-runtimeexecutor: 56f562a608056fb0c1711d900a992e26f375d817
|
||||
React-runtimescheduler: 7b558337d22a47a270b5c99d8016b5ab743b3035
|
||||
React-runtimescheduler: 814b644a5f456c7df1fba7bcd9914707152527c6
|
||||
React-utils: 987a4526a2fc0acdfaf87888adfe0bf9d0452066
|
||||
ReactCommon: dcc87812d79ce368cc41b7cf49fb624cf3c22b6b
|
||||
ReactCommon: 2947b0bffd82ea0e58ca7928881152d4c6dae9af
|
||||
ReactNativeAudioToolkit: de9610f323e855ac6574be8c99621f3d57c5df06
|
||||
ReactNativeCameraKit: d95d3e19c514526a234d9f93c6db7e7f10eef9ea
|
||||
ReactNativeNavigation: 46305e1026fa4cdcf0cfb3822932fc58d090668d
|
||||
@@ -1520,6 +1580,6 @@ SPEC CHECKSUMS:
|
||||
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
||||
Yoga: a716eea57d0d3430219c0a5a233e1e93ee931eb7
|
||||
|
||||
PODFILE CHECKSUM: bb02c595a4aa4430da978b55da5440811cbd9d91
|
||||
PODFILE CHECKSUM: 5dd4a5279260d370bcdf016158c825ceb404ee06
|
||||
|
||||
COCOAPODS: 1.13.0
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
00E356F31AD99517003FC87E /* StatusImTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* StatusImTests.m */; };
|
||||
0BF51D8C7FBD6A668E6E1FC0 /* libPods-Status-StatusIm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 45C29909A975E0654116557F /* libPods-Status-StatusIm.a */; };
|
||||
131972279C6DBF736235F9F9 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9DF8AC0F6547107DE1A25D /* libPods-Status-StatusIm-StatusImTests.a */; };
|
||||
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
|
||||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
25DC9C9DC25846BD8D084888 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */; };
|
||||
@@ -35,7 +37,6 @@
|
||||
3AAD2AD324A3A60E0075D594 /* Inter-SemiBold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 693A62DB37BC4CD5A30E5C96 /* Inter-SemiBold.otf */; };
|
||||
3AAD2AD424A3A60E0075D594 /* Inter-SemiBoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = A4F2BBE8D4DD4140A6CCAC39 /* Inter-SemiBoldItalic.otf */; };
|
||||
3ABC7AF8245FF85900612C45 /* InterStatus-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 9C76AF5A418D4D65A4CAD1D9 /* InterStatus-Regular.otf */; };
|
||||
4A976A097386605EB7E85E28 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 804FB5E6B0FBBDB034E6CD09 /* libPods-Status-StatusIm-StatusImTests.a */; };
|
||||
57C854A7993C47A3B1AECD32 /* Inter-MediumItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = C6B1215047604CD59A4C74D6 /* Inter-MediumItalic.otf */; };
|
||||
65F6941925780A4F00A45E76 /* Bridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65F6941825780A4F00A45E76 /* Bridge.swift */; };
|
||||
65F6941A25780A4F00A45E76 /* Bridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65F6941825780A4F00A45E76 /* Bridge.swift */; };
|
||||
@@ -49,7 +50,6 @@
|
||||
B24FC7FF1DE7195F00D694FF /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B24FC7FE1DE7195F00D694FF /* MessageUI.framework */; };
|
||||
B2F2D1BC1D9D531B00B7B453 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */; };
|
||||
BA68A2377A20496EA737000D /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E586E1B0E544F64AA9F5BD1 /* libz.tbd */; };
|
||||
C0BA109CA441C3DB93714F1D /* libPods-Status-StatusIm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EA288D7C6590DC9ED1F8657F /* libPods-Status-StatusIm.a */; };
|
||||
C14C5F8D29C0A149005C58A7 /* launch-icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F8C29C0A149005C58A7 /* launch-icon@3x.png */; };
|
||||
C14C5F9129C0AD9C005C58A7 /* launch-icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F9029C0AD9C005C58A7 /* launch-icon@2x.png */; };
|
||||
C14C5F9329C0ADB5005C58A7 /* launch-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F9229C0ADB5005C58A7 /* launch-icon.png */; };
|
||||
@@ -57,10 +57,10 @@
|
||||
C1715FFB29C0BCE50088FA8B /* launch-icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F8C29C0A149005C58A7 /* launch-icon@3x.png */; };
|
||||
C1715FFC29C0BCE80088FA8B /* launch-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = C14C5F9229C0ADB5005C58A7 /* launch-icon.png */; };
|
||||
CE4E31B31D8695250033ED64 /* Statusgo.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE4E31B21D8695250033ED64 /* Statusgo.xcframework */; };
|
||||
D0B4A2EA5E72EDB67CE6DA66 /* libPods-Status-StatusImPR.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B63C43A120FA22BB78FCC059 /* libPods-Status-StatusImPR.a */; };
|
||||
D1786306E0184916B11F4C37 /* Inter-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = B2A38FC3D3954DE7B2B171F8 /* Inter-Medium.otf */; };
|
||||
D84616FB563A48EBB1678699 /* Inter-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */; };
|
||||
D99C50E5E18942A39C8DDF61 /* Inter-BoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = B321D25F4493470980039457 /* Inter-BoldItalic.otf */; };
|
||||
DE2F1721F9D5702C7CEC5594 /* libPods-Status-StatusImPR.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B17DF204648B8189F8ABD0A7 /* libPods-Status-StatusImPR.a */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@@ -114,12 +114,15 @@
|
||||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = StatusIm/Info.plist; sourceTree = "<group>"; };
|
||||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = StatusIm/main.m; sourceTree = "<group>"; };
|
||||
1426DF592BA248FC81D955CB /* Inter-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Regular.otf"; path = "../resources/fonts/Inter-Regular.otf"; sourceTree = "<group>"; };
|
||||
1B74FBFCB9B8E34B63250A52 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm-StatusImTests.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
232FE8EAB57384181B0DB836 /* Pods-Status-StatusIm.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm.release.xcconfig"; sourceTree = "<group>"; };
|
||||
2D9DF8AC0F6547107DE1A25D /* libPods-Status-StatusIm-StatusImTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusIm-StatusImTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
3A2626CE245C3F2200D5F94B /* Dummy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Dummy.swift; sourceTree = "<group>"; };
|
||||
3A6406FB24A3ADF90046ED37 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
3A8F8EA924A4D31600BF206D /* GameKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameKit.framework; path = System/Library/Frameworks/GameKit.framework; sourceTree = SDKROOT; };
|
||||
3AAD2ADC24A3A60E0075D594 /* Status PR.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Status PR.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
3AB1C3AD245C043900098F67 /* StatusIm-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "StatusIm-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
3DE83268BA3216610DFF6337 /* Pods-Status-StatusImPR.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusImPR.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
45C29909A975E0654116557F /* libPods-Status-StatusIm.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusIm.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
4C16DE0B1F89508700AA10DB /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||
4E586E1B0E544F64AA9F5BD1 /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
||||
65F693BD2578002500A45E76 /* CoreNFC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreNFC.framework; path = System/Library/Frameworks/CoreNFC.framework; sourceTree = SDKROOT; };
|
||||
@@ -129,31 +132,28 @@
|
||||
693A62DB37BC4CD5A30E5C96 /* Inter-SemiBold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-SemiBold.otf"; path = "../resources/fonts/Inter-SemiBold.otf"; sourceTree = "<group>"; };
|
||||
715D8131290BE850006F5C88 /* UbuntuMono-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "UbuntuMono-Regular.ttf"; path = "../resources/fonts/UbuntuMono-Regular.ttf"; sourceTree = "<group>"; };
|
||||
74B758FB20D7C00B003343C3 /* launch-image-universal.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "launch-image-universal.storyboard"; sourceTree = "<group>"; };
|
||||
78655BCD07318E9885F5214B /* Pods-Status-StatusIm.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm.release.xcconfig"; sourceTree = "<group>"; };
|
||||
804FB5E6B0FBBDB034E6CD09 /* libPods-Status-StatusIm-StatusImTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusIm-StatusImTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
857B0CA5528DF4E460CECF05 /* Pods-Status-StatusIm.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
870C29BCADFAAEC7F7C0ADD0 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm-StatusImTests.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
7A393286DD0E844D050D0B89 /* Pods-Status-StatusImPR.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusImPR.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR.release.xcconfig"; sourceTree = "<group>"; };
|
||||
7BF7B2DB23EE09E5229629DA /* Pods-Status-StatusImPR.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusImPR.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
|
||||
922C4CA61F4D5F8B0033C753 /* StatusIm.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = StatusIm.entitlements; path = StatusIm/StatusIm.entitlements; sourceTree = "<group>"; };
|
||||
94F1B9FD13C8504F50E31C94 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm-StatusImTests.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
9C76AF5A418D4D65A4CAD1D9 /* InterStatus-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "InterStatus-Regular.otf"; path = "../resources/fonts/InterStatus-Regular.otf"; sourceTree = "<group>"; };
|
||||
9EC0135C1E06FB1900155B5C /* RCTWKWebView.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWKWebView.xcodeproj; path = "../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView.xcodeproj"; sourceTree = "<group>"; };
|
||||
A0B5AD061DF0F6CC98603A99 /* Pods-Status-StatusIm.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
A4F2BBE8D4DD4140A6CCAC39 /* Inter-SemiBoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-SemiBoldItalic.otf"; path = "../resources/fonts/Inter-SemiBoldItalic.otf"; sourceTree = "<group>"; };
|
||||
B07176ACDAA1422E8F0A3D6B /* Inter-Italic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Italic.otf"; path = "../resources/fonts/Inter-Italic.otf"; sourceTree = "<group>"; };
|
||||
B17DF204648B8189F8ABD0A7 /* libPods-Status-StatusImPR.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusImPR.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
B24FC7FC1DE7195700D694FF /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; };
|
||||
B24FC7FE1DE7195F00D694FF /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; };
|
||||
B2A38FC3D3954DE7B2B171F8 /* Inter-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Medium.otf"; path = "../resources/fonts/Inter-Medium.otf"; sourceTree = "<group>"; };
|
||||
B2F2D1BB1D9D531B00B7B453 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = StatusIm/Images.xcassets; sourceTree = "<group>"; };
|
||||
B321D25F4493470980039457 /* Inter-BoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-BoldItalic.otf"; path = "../resources/fonts/Inter-BoldItalic.otf"; sourceTree = "<group>"; };
|
||||
B63C43A120FA22BB78FCC059 /* libPods-Status-StatusImPR.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusImPR.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
C14C5F8C29C0A149005C58A7 /* launch-icon@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "launch-icon@3x.png"; path = "StatusIm/launch-icon@3x.png"; sourceTree = "<group>"; };
|
||||
C14C5F9029C0AD9C005C58A7 /* launch-icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "launch-icon@2x.png"; path = "StatusIm/launch-icon@2x.png"; sourceTree = "<group>"; };
|
||||
C14C5F9229C0ADB5005C58A7 /* launch-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "launch-icon.png"; path = "StatusIm/launch-icon.png"; sourceTree = "<group>"; };
|
||||
C6B1215047604CD59A4C74D6 /* Inter-MediumItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-MediumItalic.otf"; path = "../resources/fonts/Inter-MediumItalic.otf"; sourceTree = "<group>"; };
|
||||
CD4A2C27D6D5473184DC1F7E /* Inter-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Bold.otf"; path = "../resources/fonts/Inter-Bold.otf"; sourceTree = "<group>"; };
|
||||
CE4E31B21D8695250033ED64 /* Statusgo.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Statusgo.xcframework; path = "../modules/react-native-status/ios/RCTStatus/Statusgo.xcframework"; sourceTree = "<group>"; };
|
||||
D272F46F39D037EC0EAB65C8 /* Pods-Status-StatusImPR.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusImPR.release.xcconfig"; path = "Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR.release.xcconfig"; sourceTree = "<group>"; };
|
||||
EA288D7C6590DC9ED1F8657F /* libPods-Status-StatusIm.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Status-StatusIm.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D40C4023C7D5B793AEF98426 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Status-StatusIm-StatusImTests.debug.xcconfig"; path = "Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -161,7 +161,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4A976A097386605EB7E85E28 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */,
|
||||
131972279C6DBF736235F9F9 /* libPods-Status-StatusIm-StatusImTests.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -174,7 +174,7 @@
|
||||
CE4E31B31D8695250033ED64 /* Statusgo.xcframework in Frameworks */,
|
||||
25DC9C9DC25846BD8D084888 /* libc++.tbd in Frameworks */,
|
||||
BA68A2377A20496EA737000D /* libz.tbd in Frameworks */,
|
||||
C0BA109CA441C3DB93714F1D /* libPods-Status-StatusIm.a in Frameworks */,
|
||||
0BF51D8C7FBD6A668E6E1FC0 /* libPods-Status-StatusIm.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -188,7 +188,7 @@
|
||||
3AAD2AC224A3A60E0075D594 /* Statusgo.xcframework in Frameworks */,
|
||||
3AAD2AC524A3A60E0075D594 /* libc++.tbd in Frameworks */,
|
||||
3AAD2AC624A3A60E0075D594 /* libz.tbd in Frameworks */,
|
||||
D0B4A2EA5E72EDB67CE6DA66 /* libPods-Status-StatusImPR.a in Frameworks */,
|
||||
DE2F1721F9D5702C7CEC5594 /* libPods-Status-StatusImPR.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -314,9 +314,9 @@
|
||||
CE4E31B21D8695250033ED64 /* Statusgo.xcframework */,
|
||||
8B9A886A2CB448B1ABA0EB62 /* libc++.tbd */,
|
||||
4E586E1B0E544F64AA9F5BD1 /* libz.tbd */,
|
||||
EA288D7C6590DC9ED1F8657F /* libPods-Status-StatusIm.a */,
|
||||
804FB5E6B0FBBDB034E6CD09 /* libPods-Status-StatusIm-StatusImTests.a */,
|
||||
B63C43A120FA22BB78FCC059 /* libPods-Status-StatusImPR.a */,
|
||||
45C29909A975E0654116557F /* libPods-Status-StatusIm.a */,
|
||||
2D9DF8AC0F6547107DE1A25D /* libPods-Status-StatusIm-StatusImTests.a */,
|
||||
B17DF204648B8189F8ABD0A7 /* libPods-Status-StatusImPR.a */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
@@ -324,12 +324,12 @@
|
||||
D0D5C8D06825D33BA2D2121E /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
857B0CA5528DF4E460CECF05 /* Pods-Status-StatusIm.debug.xcconfig */,
|
||||
78655BCD07318E9885F5214B /* Pods-Status-StatusIm.release.xcconfig */,
|
||||
870C29BCADFAAEC7F7C0ADD0 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */,
|
||||
94F1B9FD13C8504F50E31C94 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */,
|
||||
3DE83268BA3216610DFF6337 /* Pods-Status-StatusImPR.debug.xcconfig */,
|
||||
D272F46F39D037EC0EAB65C8 /* Pods-Status-StatusImPR.release.xcconfig */,
|
||||
A0B5AD061DF0F6CC98603A99 /* Pods-Status-StatusIm.debug.xcconfig */,
|
||||
232FE8EAB57384181B0DB836 /* Pods-Status-StatusIm.release.xcconfig */,
|
||||
D40C4023C7D5B793AEF98426 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */,
|
||||
1B74FBFCB9B8E34B63250A52 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */,
|
||||
7BF7B2DB23EE09E5229629DA /* Pods-Status-StatusImPR.debug.xcconfig */,
|
||||
7A393286DD0E844D050D0B89 /* Pods-Status-StatusImPR.release.xcconfig */,
|
||||
);
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
@@ -341,11 +341,12 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "StatusImTests" */;
|
||||
buildPhases = (
|
||||
53D1210C251AB35BB66F64D1 /* [CP] Check Pods Manifest.lock */,
|
||||
5937040F3338CDF93E777A93 /* [CP] Check Pods Manifest.lock */,
|
||||
00E356EA1AD99517003FC87E /* Sources */,
|
||||
00E356EB1AD99517003FC87E /* Frameworks */,
|
||||
00E356EC1AD99517003FC87E /* Resources */,
|
||||
2E8578589647F2D1AB7D69B0 /* [CP] Copy Pods Resources */,
|
||||
7AD665439C08CFEF5EF84F6A /* [CP] Embed Pods Frameworks */,
|
||||
02C1A8CA208E38DA07BAC311 /* [CP] Copy Pods Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -361,14 +362,15 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "StatusIm" */;
|
||||
buildPhases = (
|
||||
0792D7C164832E59371E617A /* [CP] Check Pods Manifest.lock */,
|
||||
1DFD6BF757E89B72F40FCEE9 /* [CP] Check Pods Manifest.lock */,
|
||||
13B07F871A680F5B00A75B9A /* Sources */,
|
||||
13B07F8C1A680F5B00A75B9A /* Frameworks */,
|
||||
13B07F8E1A680F5B00A75B9A /* Resources */,
|
||||
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
|
||||
20B6B6891D92C42700CC5C6A /* Embed Frameworks */,
|
||||
E3914A731DF919ED00EBB515 /* Run Script */,
|
||||
70A851EF00039276F55A4FB3 /* [CP] Copy Pods Resources */,
|
||||
50F2A2E15670F86233743A5C /* [CP] Embed Pods Frameworks */,
|
||||
1B623A051F855FC5B09A0480 /* [CP] Copy Pods Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -383,14 +385,15 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3AAD2AD924A3A60E0075D594 /* Build configuration list for PBXNativeTarget "StatusImPR" */;
|
||||
buildPhases = (
|
||||
16ECB1DEB0091DFC0F3DED3C /* [CP] Check Pods Manifest.lock */,
|
||||
EB421F3ED78A38D285D771D2 /* [CP] Check Pods Manifest.lock */,
|
||||
3AAD2ABB24A3A60E0075D594 /* Sources */,
|
||||
3AAD2ABF24A3A60E0075D594 /* Frameworks */,
|
||||
3AAD2AC924A3A60E0075D594 /* Resources */,
|
||||
3AAD2AD524A3A60E0075D594 /* Bundle React Native code and images */,
|
||||
3AAD2AD624A3A60E0075D594 /* Embed Frameworks */,
|
||||
3AAD2AD724A3A60E0075D594 /* Run Script */,
|
||||
C15E3DDA7B1E1CB5EDF76A1E /* [CP] Copy Pods Resources */,
|
||||
F4561A2D3C9E6C4B66F4C4F5 /* [CP] Embed Pods Frameworks */,
|
||||
6FA1467F7B916ED92FA688E0 /* [CP] Copy Pods Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -544,51 +547,7 @@
|
||||
shellPath = "/usr/bin/env sh";
|
||||
shellScript = "set -o errexit\nexport NODE_BINARY=\"${NODE_BINARY:-node}\"\nexport NODE_ARGS=\"${NODE_ARGS:- --max-old-space-size=16384 }\"\n\n\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n";
|
||||
};
|
||||
0792D7C164832E59371E617A /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-Status-StatusIm-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
16ECB1DEB0091DFC0F3DED3C /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-Status-StatusImPR-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
2E8578589647F2D1AB7D69B0 /* [CP] Copy Pods Resources */ = {
|
||||
02C1A8CA208E38DA07BAC311 /* [CP] Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
@@ -612,6 +571,52 @@
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
1B623A051F855FC5B09A0480 /* [CP] Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-resources.sh",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/RNPermissions/RNPermissionsPrivacyInfo.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle",
|
||||
);
|
||||
name = "[CP] Copy Pods Resources";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNPermissionsPrivacyInfo.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
1DFD6BF757E89B72F40FCEE9 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-Status-StatusIm-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
3AAD2AD524A3A60E0075D594 /* Bundle React Native code and images */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -640,7 +645,25 @@
|
||||
shellPath = "/usr/bin/env sh";
|
||||
shellScript = "\"${PROJECT_DIR}/scripts/set_xcode_version.sh\" > ../logs/set_xcode_version.log 2>&1\n";
|
||||
};
|
||||
53D1210C251AB35BB66F64D1 /* [CP] Check Pods Manifest.lock */ = {
|
||||
50F2A2E15670F86233743A5C /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-frameworks.sh",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
5937040F3338CDF93E777A93 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
@@ -662,31 +685,7 @@
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
70A851EF00039276F55A4FB3 /* [CP] Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-resources.sh",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/RNPermissions/RNPermissionsPrivacyInfo.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle",
|
||||
);
|
||||
name = "[CP] Copy Pods Resources";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNPermissionsPrivacyInfo.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
C15E3DDA7B1E1CB5EDF76A1E /* [CP] Copy Pods Resources */ = {
|
||||
6FA1467F7B916ED92FA688E0 /* [CP] Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
@@ -710,6 +709,24 @@
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
7AD665439C08CFEF5EF84F6A /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-frameworks.sh",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
E3914A731DF919ED00EBB515 /* Run Script */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 8;
|
||||
@@ -724,6 +741,46 @@
|
||||
shellPath = "/usr/bin/env sh";
|
||||
shellScript = "\"${PROJECT_DIR}/scripts/set_xcode_version.sh\" > ../logs/set_xcode_version.log 2>&1\n";
|
||||
};
|
||||
EB421F3ED78A38D285D771D2 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-Status-StatusImPR-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
F4561A2D3C9E6C4B66F4C4F5 /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-frameworks.sh",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
@@ -771,7 +828,7 @@
|
||||
/* Begin XCBuildConfiguration section */
|
||||
00E356F61AD99517003FC87E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 870C29BCADFAAEC7F7C0ADD0 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */;
|
||||
baseConfigurationReference = D40C4023C7D5B793AEF98426 /* Pods-Status-StatusIm-StatusImTests.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
BUNDLE_ID_SUFFIX = .debug;
|
||||
@@ -808,7 +865,7 @@
|
||||
};
|
||||
00E356F71AD99517003FC87E /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 94F1B9FD13C8504F50E31C94 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */;
|
||||
baseConfigurationReference = 1B74FBFCB9B8E34B63250A52 /* Pods-Status-StatusIm-StatusImTests.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
BUNDLE_ID_SUFFIX = "";
|
||||
@@ -841,7 +898,7 @@
|
||||
};
|
||||
13B07F941A680F5B00A75B9A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 857B0CA5528DF4E460CECF05 /* Pods-Status-StatusIm.debug.xcconfig */;
|
||||
baseConfigurationReference = A0B5AD061DF0F6CC98603A99 /* Pods-Status-StatusIm.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon$(BUNDLE_ID_SUFFIX)";
|
||||
BUNDLE_ID_SUFFIX = .debug;
|
||||
@@ -923,7 +980,7 @@
|
||||
};
|
||||
13B07F951A680F5B00A75B9A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 78655BCD07318E9885F5214B /* Pods-Status-StatusIm.release.xcconfig */;
|
||||
baseConfigurationReference = 232FE8EAB57384181B0DB836 /* Pods-Status-StatusIm.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon$(BUNDLE_ID_SUFFIX)";
|
||||
BUNDLE_ID_SUFFIX = "";
|
||||
@@ -998,7 +1055,7 @@
|
||||
};
|
||||
3AAD2ADA24A3A60E0075D594 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 3DE83268BA3216610DFF6337 /* Pods-Status-StatusImPR.debug.xcconfig */;
|
||||
baseConfigurationReference = 7BF7B2DB23EE09E5229629DA /* Pods-Status-StatusImPR.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon$(BUNDLE_ID_SUFFIX)";
|
||||
BUNDLE_ID_SUFFIX = .debug;
|
||||
@@ -1078,7 +1135,7 @@
|
||||
};
|
||||
3AAD2ADB24A3A60E0075D594 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D272F46F39D037EC0EAB65C8 /* Pods-Status-StatusImPR.release.xcconfig */;
|
||||
baseConfigurationReference = 7A393286DD0E844D050D0B89 /* Pods-Status-StatusImPR.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIconPR$(BUNDLE_ID_SUFFIX)";
|
||||
BUNDLE_ID_SUFFIX = "";
|
||||
@@ -1228,18 +1285,22 @@
|
||||
);
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
OTHER_CFLAGS = "$(inherited)";
|
||||
OTHER_CFLAGS = (
|
||||
"$(inherited)",
|
||||
" ",
|
||||
);
|
||||
OTHER_CPLUSPLUSFLAGS = (
|
||||
"$(OTHER_CFLAGS)",
|
||||
"-DFOLLY_NO_CONFIG",
|
||||
"-DFOLLY_MOBILE=1",
|
||||
"-DFOLLY_USE_LIBCPP=1",
|
||||
"-DFOLLY_CFG_NO_COROUTINES=1",
|
||||
" ",
|
||||
);
|
||||
OTHER_LDFLAGS = "$(inherited)";
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||
SDKROOT = iphoneos;
|
||||
USE_HERMES = false;
|
||||
USE_HERMES = true;
|
||||
VALID_ARCHS = arm64;
|
||||
"VALID_ARCHS[sdk=iphonesimulator*]" = x86_64;
|
||||
};
|
||||
@@ -1315,18 +1376,22 @@
|
||||
);
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
ONLY_ACTIVE_ARCH = NO;
|
||||
OTHER_CFLAGS = "$(inherited)";
|
||||
OTHER_CFLAGS = (
|
||||
"$(inherited)",
|
||||
" ",
|
||||
);
|
||||
OTHER_CPLUSPLUSFLAGS = (
|
||||
"$(OTHER_CFLAGS)",
|
||||
"-DFOLLY_NO_CONFIG",
|
||||
"-DFOLLY_MOBILE=1",
|
||||
"-DFOLLY_USE_LIBCPP=1",
|
||||
"-DFOLLY_CFG_NO_COROUTINES=1",
|
||||
" ",
|
||||
);
|
||||
OTHER_LDFLAGS = "$(inherited)";
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||
SDKROOT = iphoneos;
|
||||
USE_HERMES = false;
|
||||
USE_HERMES = true;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
VALID_ARCHS = arm64;
|
||||
};
|
||||
|
||||
+2
-2
@@ -47,7 +47,8 @@ class AccountManager(private val reactContext: ReactApplicationContext) : ReactC
|
||||
|
||||
private fun updateConfig(jsonConfigString: String, absRootDirPath: String, keystoreDirPath: String): String {
|
||||
val jsonConfig = JSONObject(jsonConfigString)
|
||||
val dataDirPath = jsonConfig.getString("DataDir")
|
||||
// when doing local pair syncing, backend will provide default data dir
|
||||
val dataDirPath = jsonConfig.optString("DataDir","")
|
||||
val logEnabled = jsonConfig.getBoolean("LogEnabled")
|
||||
val gethLogFile = if (logEnabled) logManager.prepareLogsFile(reactContext) else null
|
||||
val gethLogDirPath = gethLogFile?.parent
|
||||
@@ -140,7 +141,6 @@ class AccountManager(private val reactContext: ReactApplicationContext) : ReactC
|
||||
updatedJsonConfigString
|
||||
} catch (e: JSONException) {
|
||||
Log.e(TAG, "updateConfig failed: ${e.message}")
|
||||
System.exit(1)
|
||||
""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,6 +66,9 @@ RCT_EXPORT_METHOD(restoreAccountAndLogin:(NSString *)request) {
|
||||
NSData *configData = [config dataUsingEncoding:NSUTF8StringEncoding];
|
||||
NSDictionary *configJSON = [NSJSONSerialization JSONObjectWithData:configData options:NSJSONReadingMutableContainers error:nil];
|
||||
NSString *relativeDataDir = [configJSON objectForKey:@"DataDir"];
|
||||
if (relativeDataDir == nil) {
|
||||
relativeDataDir = @"";
|
||||
}
|
||||
NSString *absDataDir = [rootUrl.path stringByAppendingString:relativeDataDir];
|
||||
NSURL *absDataDirUrl = [NSURL fileURLWithPath:absDataDir];
|
||||
NSString *keystoreDir = [@"/keystore/" stringByAppendingString:keyUID];
|
||||
|
||||
+56
-67
@@ -8371,16 +8371,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "commons-codec/commons-codec/1.16.1",
|
||||
"path": "commons-codec/commons-codec/1.17.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"commons-codec-1.16.1.pom": {
|
||||
"sha1": "fdca64157d8fd070e24bd7d4ae9b8851d9ed9c0e",
|
||||
"sha256": "sha256-uCbd2S+dfMZDcaAvoIMMFU1nyYNw6lSi0ZbnLrWQrSg="
|
||||
"commons-codec-1.17.0.pom": {
|
||||
"sha1": "00df1652d86779f44021a4c52a928d0792217eec",
|
||||
"sha256": "sha256-wBxM2l5Aj0HtHYPkoKFwz1OAG2M4q6SfD5BHhrwSFPw="
|
||||
},
|
||||
"commons-codec-1.16.1.jar": {
|
||||
"sha1": "47bd4d333fba53406f6c6c51884ddbca435c8862",
|
||||
"sha256": "sha256-7Ie/tV8iy9GyHiGQ7toosrMS7SpDHuSfvcwBgS0EpeQ="
|
||||
"commons-codec-1.17.0.jar": {
|
||||
"sha1": "0dbe8eef6e14460e73da07f7b11bf994d6626355",
|
||||
"sha256": "sha256-9wDegKwnDQNE/ep0aCAdi5yAXlxkgzHDYZ8u4GfM/Fk="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11511,16 +11511,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/errorprone/error_prone_annotations/2.26.1",
|
||||
"path": "com/google/errorprone/error_prone_annotations/2.27.1",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"error_prone_annotations-2.26.1.pom": {
|
||||
"sha1": "2e23702f7c5f6c85252ed22bf7e96b474fe48086",
|
||||
"sha256": "sha256-rqfpkeLf3LR/X71QhYdTX3gCvLni/C1Ou1C+QbaE2p8="
|
||||
"error_prone_annotations-2.27.1.pom": {
|
||||
"sha1": "432107569fdae073842841c566ea1eea3b2f0a96",
|
||||
"sha256": "sha256-TCN6vSm6OvOcp0TLSkHyRbX/oEXQNskkSvKrPKvKhTc="
|
||||
},
|
||||
"error_prone_annotations-2.26.1.jar": {
|
||||
"sha1": "c1fde57694bdc14e8618899aaa6e857d9465d7de",
|
||||
"sha256": "sha256-3iXy2aIVZSm9dl9R2O/fwN+nMB4E77nMdbfxDPXQ4Ps="
|
||||
"error_prone_annotations-2.27.1.jar": {
|
||||
"sha1": "a87dac4f79a6e5b1e55c629f16c754c53cbd50ec",
|
||||
"sha256": "sha256-pIlbXbAkNhTZDOKixvgwYkkJwB4xWH2Ow+z1Hl5+dQY="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11647,12 +11647,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/errorprone/error_prone_parent/2.26.1",
|
||||
"path": "com/google/errorprone/error_prone_parent/2.27.1",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"error_prone_parent-2.26.1.pom": {
|
||||
"sha1": "b881c4c0f53eef367689790e18dc033d8a75bd52",
|
||||
"sha256": "sha256-SmrQDTGwpa3Nmk9gUGXVtEX65KBMv4J+XRrBB34vgU0="
|
||||
"error_prone_parent-2.27.1.pom": {
|
||||
"sha1": "b00504c9994e0c16dc77d661b19421f1ffd179b4",
|
||||
"sha256": "sha256-APlKPmg8fOr5lQFP/EB/INNycrFQ0mEbNVdLjOcYIjY="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -15923,17 +15923,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/apache/commons/commons-parent/66",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"commons-parent-66.pom": {
|
||||
"sha1": "24cf85c9d30c5ca5a2f48d806e93d8328b622a8c",
|
||||
"sha256": "sha256-SP1tyEblax9AhmDRY+dTAPnjhLtjvkgqgIKiHXKo25w="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/apache/commons/commons-parent/67",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
@@ -16691,20 +16680,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/checkerframework/checker-qual/3.42.0",
|
||||
"path": "org/checkerframework/checker-qual/3.43.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"checker-qual-3.42.0.pom": {
|
||||
"sha1": "49d71d964f0ac5505caa5f996c8497c9462e9eeb",
|
||||
"sha256": "sha256-v1/KqycvVMvPG753w72WPIIcmrrSBYcIvwvtPIdUlMo="
|
||||
"checker-qual-3.43.0.pom": {
|
||||
"sha1": "48ad8955d64547b84ef581361c29c030e56430cb",
|
||||
"sha256": "sha256-kxO/U7Pv2KrKJm7qi5bjB5drZcCxZRDMbwIxn7rr7UM="
|
||||
},
|
||||
"checker-qual-3.42.0.jar": {
|
||||
"sha1": "638ec33f363a94d41a4f03c3e7d3dcfba64e402d",
|
||||
"sha256": "sha256-zK7dM68LeJTZ8vO2RPTRnkOSjjKQLmGsTRB3eDD1qsc="
|
||||
"checker-qual-3.43.0.jar": {
|
||||
"sha1": "9425eee39e56b116d2b998b7c2cebcbd11a3c98b",
|
||||
"sha256": "sha256-P7wumPBYVMPfFt+auqlVuRsVs+ysM2IyCO1kJGQO8PY="
|
||||
},
|
||||
"checker-qual-3.42.0.module": {
|
||||
"sha1": "022eca66f8300ceaa525ef4b3c81f8e88f1d1495",
|
||||
"sha256": "sha256-4PpiK33mPq4RBH726RtMKtDx8OE8uQP/UggKR/V6V0Y="
|
||||
"checker-qual-3.43.0.module": {
|
||||
"sha1": "3020cf05cf20a5f6e2137e59291be76cd1252b83",
|
||||
"sha256": "sha256-+BYzJyRauGJVMpSMcqkwVIzZfzTWw/6GD6auxaNNebQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -19238,16 +19227,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/jetbrains/kotlin/kotlin-reflect/2.0.0-RC1",
|
||||
"path": "org/jetbrains/kotlin/kotlin-reflect/2.0.0-RC2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"kotlin-reflect-2.0.0-RC1.pom": {
|
||||
"sha1": "b08c97cfaffcdf60a6db35b13def6cde1aed6d31",
|
||||
"sha256": "sha256-9NoPwtEYJp0xCTkijwRiV3ri4UFEdh0PojqTWH/nvpI="
|
||||
"kotlin-reflect-2.0.0-RC2.pom": {
|
||||
"sha1": "f59f0775b6c4874de09c44d692037fd8f3132bfd",
|
||||
"sha256": "sha256-1aOhZnjByMuCwt0x6SO2i+pd0ka/rEv8T+nO3nUo6gM="
|
||||
},
|
||||
"kotlin-reflect-2.0.0-RC1.jar": {
|
||||
"sha1": "3d4ec6ec94e86fd10957c78471f98373e899dd2e",
|
||||
"sha256": "sha256-BsavyQLOwArroQNLg97ck3PaB6kJBpyLZDwq+mAvW5w="
|
||||
"kotlin-reflect-2.0.0-RC2.jar": {
|
||||
"sha1": "a416a6e9f3c00ba5f0c58091bbe20128117720ff",
|
||||
"sha256": "sha256-VSmq3nuZWEmDRvXHvnD+3VIrYmg0FlJmaIJ9j3mNbaE="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -20780,28 +20769,28 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/jetbrains/kotlin/kotlin-stdlib/2.0.0-RC1",
|
||||
"path": "org/jetbrains/kotlin/kotlin-stdlib/2.0.0-RC2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"kotlin-stdlib-2.0.0-RC1.pom": {
|
||||
"sha1": "acf44b7e30e2500a0e1fed7bfc0c9bc6cc8fe65e",
|
||||
"sha256": "sha256-nVnonn+ye/SexoelpxZXCz8srOtUH95WNwKKAPXf86I="
|
||||
"kotlin-stdlib-2.0.0-RC2.pom": {
|
||||
"sha1": "a0173de9669d2b669a0a9331abc10eed854c7578",
|
||||
"sha256": "sha256-P5+BoFtN2UXxa5nt5GUj/36Ts2zN2qRIKsbvj519M2g="
|
||||
},
|
||||
"kotlin-stdlib-2.0.0-RC1-all.jar": {
|
||||
"sha1": "496ce100c4aa6dabf67dc1c0443076f42197a535",
|
||||
"sha256": "sha256-aiXa9C5VAsj0YGF053MUD2Olq3z1Vj9CD849pASBoIo="
|
||||
"kotlin-stdlib-2.0.0-RC2-all.jar": {
|
||||
"sha1": "e6142a28b5fa6722cd811dd86278ad056784fa40",
|
||||
"sha256": "sha256-MOBSIrwGf/+4lqMna18ePylFC/HZRh0noZzg78eTtc0="
|
||||
},
|
||||
"kotlin-stdlib-2.0.0-RC1-common.jar": {
|
||||
"kotlin-stdlib-2.0.0-RC2-common.jar": {
|
||||
"sha1": "281e03983850e590dcc0d2474758f2fa8dd0e96a",
|
||||
"sha256": "sha256-EsHDu0lApPmVlUD/tc8uLl6brNtoywDEvSidFjm9HSc="
|
||||
},
|
||||
"kotlin-stdlib-2.0.0-RC1.jar": {
|
||||
"sha1": "ad47aa314788daa709fe419d843fccc28a6c6edf",
|
||||
"sha256": "sha256-u7LJuBPmGW+a+p+a3Ys5XuOEqxdjoIgOCE0pQiFPHDA="
|
||||
"kotlin-stdlib-2.0.0-RC2.jar": {
|
||||
"sha1": "504eb64ad16be7612c962dd198a511a809800d80",
|
||||
"sha256": "sha256-nFMX9JplxBB9EJM5WG+LfW95ehOyI0zMR5CGQZDpQVo="
|
||||
},
|
||||
"kotlin-stdlib-2.0.0-RC1.module": {
|
||||
"sha1": "d59c1362007ed529e61cabb999c5fba72ce232d2",
|
||||
"sha256": "sha256-NZ7bRyR/SM+y/HVTWPsjAXt0sN1GUsynslWbvCKMu30="
|
||||
"kotlin-stdlib-2.0.0-RC2.module": {
|
||||
"sha1": "ec60b751c2b289581aed1cf553d477048a890cc4",
|
||||
"sha256": "sha256-18U/l65G+3O8wy1oZbKJ+MSv8fv3yvfaXIllxukU+wg="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -21081,16 +21070,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/junit/junit-bom/5.10.2",
|
||||
"path": "org/junit/junit-bom/5.11.0-M1",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"junit-bom-5.10.2.pom": {
|
||||
"sha1": "b25ed98a5bd08cdda60e569cf22822a760e76019",
|
||||
"sha256": "sha256-Fp3ZBKSw9lIM/+ZYzGIpK/6fPBSpifqSEgckzeQ6mWg="
|
||||
"junit-bom-5.11.0-M1.pom": {
|
||||
"sha1": "afec72e7b7df3cd97c3fe53164c3f5dfc6a0ff94",
|
||||
"sha256": "sha256-tQl19cuoYgSr2j3Nbwl6+Rn+IuIe9pR43WuRn2x0DYU="
|
||||
},
|
||||
"junit-bom-5.10.2.module": {
|
||||
"sha1": "ce536748a853ae6ac09e7815fce0678a96cff778",
|
||||
"sha256": "sha256-3iOxFLPkEZqP5usXvtWjhSgWaYus5nBxV51tkn67CAo="
|
||||
"junit-bom-5.11.0-M1.module": {
|
||||
"sha1": "8824de265f75444b83779557736d03b4c8fac3f7",
|
||||
"sha256": "sha256-j2MviWXptvQGnj1YueomuaW8dqmOibQyM3d6zm2tsjc="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -523,7 +523,7 @@ https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.6/commons-cod
|
||||
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.9/commons-codec-1.9.pom
|
||||
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.10/commons-codec-1.10.pom
|
||||
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.11/commons-codec-1.11.pom
|
||||
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.16.1/commons-codec-1.16.1.pom
|
||||
https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.17.0/commons-codec-1.17.0.pom
|
||||
https://repo.maven.apache.org/maven2/commons-io/commons-io/2.4/commons-io-2.4.pom
|
||||
https://repo.maven.apache.org/maven2/commons-io/commons-io/2.16.1/commons-io-2.16.1.pom
|
||||
https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
|
||||
@@ -711,7 +711,7 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotatio
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.9.0/error_prone_annotations-2.9.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.10.0/error_prone_annotations-2.10.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.11.0/error_prone_annotations-2.11.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.26.1/error_prone_annotations-2.26.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.27.1/error_prone_annotations-2.27.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.2.0/error_prone_parent-2.2.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.3.1/error_prone_parent-2.3.1.pom
|
||||
@@ -723,7 +723,7 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.9.0/error_prone_parent-2.9.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.10.0/error_prone_parent-2.10.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.11.0/error_prone_parent-2.11.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.26.1/error_prone_parent-2.26.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.27.1/error_prone_parent-2.27.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/flatbuffers/flatbuffers-java/1.12.0/flatbuffers-java-1.12.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/google/1/google-1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.pom
|
||||
@@ -1034,7 +1034,6 @@ https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/39/common
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/42/commons-parent-42.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/48/commons-parent-48.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/52/commons-parent-52.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/66/commons-parent-66.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/67/commons-parent-67.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/69/commons-parent-69.pom
|
||||
https://repo.maven.apache.org/maven2/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.pom
|
||||
@@ -1091,7 +1090,7 @@ https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.8.1/che
|
||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/2.11.1/checker-qual-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.5.0/checker-qual-3.5.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/checkerframework/checker-qual/3.43.0/checker-qual-3.43.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-xml/3.0.9/groovy-xml-3.0.9.pom
|
||||
https://repo.maven.apache.org/maven2/org/codehaus/groovy/groovy-xml/3.0.10/groovy-xml-3.0.10.pom
|
||||
@@ -1248,7 +1247,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.20/kotlin-reflect-1.6.20.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.22/kotlin-reflect-1.7.22.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.8.20-RC2/kotlin-reflect-1.8.20-RC2.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/2.0.0-RC1/kotlin-reflect-2.0.0-RC1.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/2.0.0-RC2/kotlin-reflect-2.0.0-RC2.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.20/kotlin-scripting-common-1.6.20.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.22/kotlin-scripting-common-1.7.22.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.8.0/kotlin-scripting-common-1.8.0.pom
|
||||
@@ -1350,7 +1349,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.8.20-R
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.0/kotlin-stdlib-1.9.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.0.0-RC1/kotlin-stdlib-2.0.0-RC1.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.0.0-RC2/kotlin-stdlib-2.0.0-RC2.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.22/kotlin-tooling-core-1.7.22.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/1.8.0/kotlin-tooling-core-1.8.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.0/kotlin-tooling-core-1.9.0.pom
|
||||
@@ -1369,7 +1368,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trov
|
||||
https://repo.maven.apache.org/maven2/org/json/json/20180813/json-20180813.pom
|
||||
https://repo.maven.apache.org/maven2/org/json/json/20240303/json-20240303.pom
|
||||
https://repo.maven.apache.org/maven2/org/jsoup/jsoup/1.13.1/jsoup-1.13.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.10.2/junit-bom-5.10.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.11.0-M1/junit-bom-5.11.0-M1.pom
|
||||
https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.7.7/stax-ex-1.7.7.pom
|
||||
https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8.1/stax-ex-1.8.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.pom
|
||||
|
||||
@@ -16,6 +16,7 @@ react-native-dialogs
|
||||
react-native-fast-image
|
||||
react-native-fs
|
||||
react-native-gesture-handler
|
||||
react-native-get-random-values
|
||||
react-native-hole-view
|
||||
react-native-image-crop-picker
|
||||
react-native-image-resizer
|
||||
@@ -35,3 +36,4 @@ react-native-status-keycard
|
||||
react-native-svg
|
||||
react-native-transparent-video
|
||||
react-native-webview
|
||||
walletconnect_react-native-compat
|
||||
|
||||
@@ -7,6 +7,8 @@ let
|
||||
manifestLock = "ios/Pods/Manifest.lock";
|
||||
in mkShell {
|
||||
buildInputs = [ cocoapods ];
|
||||
# https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-apps.md#enable-new-architecture-for-ios
|
||||
RCT_NEW_ARCH_ENABLED = 1;
|
||||
shellHook = ''
|
||||
pushd "$STATUS_MOBILE_HOME" > /dev/null
|
||||
{
|
||||
|
||||
+2
-3
@@ -56,9 +56,8 @@ in {
|
||||
ruby = super.ruby_3_1;
|
||||
yarn = super.yarn.override { nodejs = super.nodejs-18_x; };
|
||||
openjdk = super.openjdk11_headless;
|
||||
xcodeWrapper = super.xcodeenv.composeXcodeWrapper {
|
||||
version = "15.0";
|
||||
allowHigher = true;
|
||||
xcodeWrapper = callPackage ./pkgs/xcodeenv/compose-xcodewrapper.nix { } {
|
||||
versions = ["15.1"];
|
||||
};
|
||||
go = super.go_1_20;
|
||||
clang = super.clang_15;
|
||||
|
||||
@@ -16,6 +16,7 @@ androidenv.composeAndroidPackages {
|
||||
platformToolsVersion = "33.0.3";
|
||||
buildToolsVersions = [ "34.0.0" ];
|
||||
platformVersions = [ "34" ];
|
||||
# This version must match cmake version inside android/app/build.gradle
|
||||
cmakeVersions = [ "3.22.1" ];
|
||||
ndkVersion = "25.2.9519653";
|
||||
includeNDK = true;
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
{ stdenv, lib, writeShellScriptBin }:
|
||||
{ versions ? [ "15.1" ]
|
||||
, xcodeBaseDir ? "/Applications/Xcode.app" }:
|
||||
|
||||
assert stdenv.isDarwin;
|
||||
|
||||
let
|
||||
xcodebuildPath = "${xcodeBaseDir}/Contents/Developer/usr/bin/xcodebuild";
|
||||
|
||||
xcodebuildWrapper = writeShellScriptBin "xcodebuild" ''
|
||||
currentVer="$(${xcodebuildPath} -version | awk 'NR==1{print $2}')"
|
||||
wrapperVers=(${lib.concatStringsSep " " versions})
|
||||
|
||||
for ver in "''${wrapperVers[@]}"; do
|
||||
if [[ "$currentVer" == "$ver" ]]; then
|
||||
# here exec replaces the shell without creating a new process
|
||||
# https://www.gnu.org/software/bash/manual/bash.html#index-exec
|
||||
exec "${xcodebuildPath}" "$@"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "The installed Xcode version ($currentVer) does not match any of the allowed versions: ${lib.concatStringsSep ", " versions}"
|
||||
echo "Please update your local Xcode installation to match one of the allowed versions"
|
||||
exit 1
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "xcode-wrapper-plus";
|
||||
version = lib.concatStringsSep "," versions;
|
||||
# Fails in sandbox. Use `--option sandbox relaxed` or `--option sandbox false`.
|
||||
__noChroot = true;
|
||||
buildCommand = ''
|
||||
mkdir -p $out/bin
|
||||
cd $out/bin
|
||||
ln -s "${xcodebuildWrapper}/bin/xcode-select"
|
||||
ln -s /usr/bin/security
|
||||
ln -s /usr/bin/codesign
|
||||
ln -s /usr/bin/xcrun
|
||||
ln -s /usr/bin/plutil
|
||||
ln -s /usr/bin/clang
|
||||
ln -s /usr/bin/lipo
|
||||
ln -s /usr/bin/file
|
||||
ln -s /usr/bin/rev
|
||||
ln -s "${xcodebuildWrapper}/bin/xcodebuild"
|
||||
ln -s "${xcodeBaseDir}/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator"
|
||||
|
||||
cd ..
|
||||
ln -s "${xcodeBaseDir}/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs"
|
||||
'';
|
||||
}
|
||||
@@ -11,6 +11,12 @@ buildGoPackage {
|
||||
|
||||
phases = ["unpackPhase" "configurePhase" "buildPhase"];
|
||||
|
||||
# https://pkg.go.dev/net#hdr-Name_Resolution
|
||||
# https://github.com/status-im/status-mobile/issues/19736
|
||||
# https://github.com/status-im/status-mobile/issues/19581
|
||||
# TODO: try removing when go is upgraded to 1.22
|
||||
GODEBUG = "netdns=cgo+2";
|
||||
|
||||
preBuild = ''
|
||||
pushd go/src/$goPackagePath
|
||||
go run cmd/library/*.go > $NIX_BUILD_TOP/main.go
|
||||
|
||||
@@ -38,10 +38,15 @@ in buildGoPackage {
|
||||
# Ensure XCode is present for iOS, instead of failing at the end of the build.
|
||||
preConfigure = optionalString isIOS enforceXCodeAvailable;
|
||||
|
||||
# https://pkg.go.dev/net#hdr-Name_Resolution
|
||||
# https://github.com/status-im/status-mobile/issues/19736
|
||||
# https://github.com/status-im/status-mobile/issues/19581
|
||||
# TODO: try removing when go is upgraded to 1.22
|
||||
GODEBUG = "netdns=cgo+2";
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
echo -e "\nBuilding $pname for: ${concatStringsSep "," targets}"
|
||||
|
||||
gomobile bind \
|
||||
${concatStringsSep " " goBuildFlags} \
|
||||
-ldflags="$ldflags" \
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
"preinstall": "scripts/check-nix-shell.sh && make status-go-library"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ethersproject/shims": "^5.7.0",
|
||||
"@json-rpc-tools/utils": "^1.7.6",
|
||||
"@react-native-async-storage/async-storage": "1.19.3",
|
||||
"@react-native-camera-roll/camera-roll": "7.5.2",
|
||||
"@react-native-clipboard/clipboard": "1.13.2",
|
||||
@@ -18,11 +20,15 @@
|
||||
"@react-native-community/netinfo": "^4.4.0",
|
||||
"@react-native-community/push-notification-ios": "^1.4.1",
|
||||
"@react-native-community/slider": "^3.0.0",
|
||||
"@walletconnect/react-native-compat": "^2.12.2",
|
||||
"@walletconnect/web3wallet": "^1.11.2",
|
||||
"base-64": "^1.0.0",
|
||||
"bignumber.js": "git+https://github.com/status-im/bignumber.js.git#refs/tags/v4.0.2-status",
|
||||
"chance": "^1.1.0",
|
||||
"emojilib": "^2.4.0",
|
||||
"eth-phishing-detect": "^1.2.0",
|
||||
"ethers": "5.7.2",
|
||||
"fast-text-encoding": "^1.0.6",
|
||||
"form-data": "^4.0.0",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"i18n-js": "^3.3.0",
|
||||
@@ -41,6 +47,7 @@
|
||||
"react-native-fast-image": "^8.5.11",
|
||||
"react-native-fs": "^2.14.1",
|
||||
"react-native-gesture-handler": "2.14.1",
|
||||
"react-native-get-random-values": "^1.11.0",
|
||||
"react-native-gifted-charts": "^1.3.2",
|
||||
"react-native-hole-view": "^3.0.0-alpha4",
|
||||
"react-native-image-crop-picker": "0.40.0",
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
--- /tmp/tmp-status-mobile-ca53bf738/tmp.QcO69SAqs7/CameraRollModule.java 2024-04-19 14:02:42.746932000 +0200
|
||||
+++ ./node_modules/@react-native-camera-roll/camera-roll/android/src/main/java/com/reactnativecommunity/cameraroll/CameraRollModule.java 2024-04-19 14:03:51.776866113 +0200
|
||||
@@ -677,7 +677,7 @@
|
||||
|
||||
WritableArray subTypes = Arguments.createArray();
|
||||
node.putArray("subTypes", subTypes);
|
||||
-
|
||||
+
|
||||
if (includeSourceType) {
|
||||
node.putString("sourceType", "UserLibrary");
|
||||
} else {
|
||||
@@ -685,7 +685,7 @@
|
||||
}
|
||||
|
||||
WritableArray group_name = Arguments.createArray();
|
||||
-
|
||||
+
|
||||
if (includeAlbums) {
|
||||
group_name.pushString(media.getString(groupNameIndex));
|
||||
}
|
||||
@@ -1089,6 +1089,16 @@
|
||||
promise.reject("CameraRoll:getPhotoThumbnail", "getPhotoThumbnail is not supported on Android");
|
||||
}
|
||||
|
||||
+ @ReactMethod
|
||||
+ public void getPhotosCountiOS(String arg, Promise promise) {
|
||||
+ promise.reject("CameraRoll:getPhotosCountiOS", "getPhotosCountiOS is not supported on Android");
|
||||
+ }
|
||||
+
|
||||
+ @ReactMethod
|
||||
+ public void getFavoritesiOS(String arg, Promise promise) {
|
||||
+ promise.reject("CameraRoll:getFavoritesiOS", "getFavoritesiOS is not supported on Android");
|
||||
+ }
|
||||
+
|
||||
public void addListener(String eventName) {}
|
||||
public void removeListeners(double count) {}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
--- /tmp/tmp-status-mobile-ca53bf738/tmp.Ay8Xen8Mmn/NativeCameraRollModuleSpec.java 2024-04-19 12:10:05.789750000 +0200
|
||||
+++ ./node_modules/@react-native-camera-roll/camera-roll/android/src/paper/java/com/reactnativecommunity/cameraroll/NativeCameraRollModuleSpec.java 2024-04-19 12:12:27.231493426 +0200
|
||||
@@ -50,4 +50,13 @@
|
||||
@ReactMethod
|
||||
@DoNotStrip
|
||||
public abstract void getPhotoThumbnail(String internalID, ReadableMap options, Promise promise);
|
||||
+
|
||||
+ @ReactMethod
|
||||
+ @DoNotStrip
|
||||
+ public abstract void getPhotosCountiOS(String arg, Promise promise);
|
||||
+
|
||||
+ @ReactMethod
|
||||
+ @DoNotStrip
|
||||
+ public abstract void getFavoritesiOS(String arg, Promise promise);
|
||||
+
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 35 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 61 KiB |
+2
-1
@@ -148,7 +148,8 @@
|
||||
status-im.config/ALCHEMY_ARBITRUM_SEPOLIA_TOKEN #shadow/env "ALCHEMY_ARBITRUM_SEPOLIA_TOKEN"
|
||||
status-im.config/ALCHEMY_OPTIMISM_MAINNET_TOKEN #shadow/env "ALCHEMY_OPTIMISM_MAINNET_TOKEN"
|
||||
status-im.config/ALCHEMY_OPTIMISM_GOERLI_TOKEN #shadow/env "ALCHEMY_OPTIMISM_GOERLI_TOKEN"
|
||||
status-im.config/ALCHEMY_OPTIMISM_SEPOLIA_TOKEN #shadow/env "ALCHEMY_OPTIMISM_SEPOLIA_TOKEN"}
|
||||
status-im.config/ALCHEMY_OPTIMISM_SEPOLIA_TOKEN #shadow/env "ALCHEMY_OPTIMISM_SEPOLIA_TOKEN"
|
||||
status-im.config/WALLET_CONNECT_PROJECT_ID #shadow/env "WALLET_CONNECT_PROJECT_ID"}
|
||||
:compiler-options
|
||||
{;; needed because we override require and it
|
||||
;; messes with source-map which reports callstack
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
(ns legacy.status-im.currency.core
|
||||
(:require
|
||||
[legacy.status-im.multiaccounts.update.core :as multiaccounts.update]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn get-currency
|
||||
[db]
|
||||
(get-in db [:profile/profile :currency] :usd))
|
||||
|
||||
(rf/defn set-currency
|
||||
{:events [:wallet-legacy.settings.ui/currency-selected]}
|
||||
[{:keys [db] :as cofx} currency]
|
||||
(rf/merge cofx
|
||||
(multiaccounts.update/multiaccount-update
|
||||
:currency
|
||||
currency
|
||||
;; on changing currency, we should fetch tokens prices again
|
||||
{:on-success #(rf/dispatch [:wallet/get-wallet-token])})))
|
||||
@@ -1,21 +0,0 @@
|
||||
(ns legacy.status-im.currency.core-test
|
||||
(:require
|
||||
[cljs.test :refer-macros [deftest is]]
|
||||
[legacy.status-im.currency.core :as models]))
|
||||
|
||||
(deftest get-currency
|
||||
(is (= :usd (models/get-currency {:profile/profile {:currency :usd}})))
|
||||
(is (= :usd (models/get-currency {:profile/profile {:not-empty "would throw an error if was empty"}})))
|
||||
(is (= :aud (models/get-currency {:profile/profile {:currency :aud}}))))
|
||||
|
||||
(deftest set-currency
|
||||
(let [cofx (models/set-currency {:db {:profile/profile {:not-empty
|
||||
"would throw an error if was empty"}}}
|
||||
:usd)]
|
||||
(is (= :usd (get-in cofx [:db :profile/profile :currency]))))
|
||||
(is
|
||||
(= :jpy
|
||||
(get-in (models/set-currency {:db {:profile/profile {:not-empty
|
||||
"would throw an error if was empty"}}}
|
||||
:jpy)
|
||||
[:db :profile/profile :currency]))))
|
||||
@@ -5,7 +5,6 @@
|
||||
legacy.status-im.browser.core
|
||||
legacy.status-im.browser.permissions
|
||||
legacy.status-im.chat.models.loading
|
||||
legacy.status-im.currency.core
|
||||
legacy.status-im.data-store.chats
|
||||
legacy.status-im.data-store.switcher-cards
|
||||
legacy.status-im.data-store.visibility-status-updates
|
||||
@@ -185,7 +184,8 @@
|
||||
(= :chat view-id)
|
||||
{:effects.async-storage/set {:chat-id (get-in cofx [:db :current-chat-id])
|
||||
:key-uid (get-in cofx [:db :profile/profile :key-uid])}
|
||||
:db (assoc db :screens/was-focused-once? true)}
|
||||
:db (assoc db :screens/was-focused-once? true)
|
||||
:dispatch [:alert-banners/unhide]}
|
||||
|
||||
(not (get db :screens/was-focused-once?))
|
||||
{:db (assoc db :screens/was-focused-once? true)})))
|
||||
|
||||
@@ -1,86 +1,7 @@
|
||||
(ns legacy.status-im.node.core
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[legacy.status-im.utils.deprecated-types :as types]
|
||||
[react-native.platform :as platform]
|
||||
[status-im.config :as config]
|
||||
[utils.ethereum.chain :as chain]))
|
||||
|
||||
(defn- add-log-level
|
||||
[config log-level]
|
||||
(if (empty? log-level)
|
||||
(assoc config
|
||||
:MaxPeers 20
|
||||
:MaxPendingPeers 20
|
||||
:LogLevel "ERROR"
|
||||
:LogEnabled false)
|
||||
(assoc config
|
||||
:MaxPeers 20
|
||||
:MaxPendingPeers 20
|
||||
:LogLevel log-level
|
||||
:LogEnabled true)))
|
||||
|
||||
(defn get-network-genesis-hash-prefix
|
||||
"returns the hex representation of the first 8 bytes of
|
||||
a network's genesis hash"
|
||||
[network]
|
||||
(case network
|
||||
1 "d4e56740f876aef8"
|
||||
3 "41941023680923e0"
|
||||
4 "6341fd3daf94b748"
|
||||
nil))
|
||||
|
||||
(defn get-les-topic
|
||||
"returns discovery v5 topic derived from genesis of the provided network"
|
||||
[network]
|
||||
(let [les-discovery-identifier "LES2@"
|
||||
hash-prefix (get-network-genesis-hash-prefix network)]
|
||||
(when hash-prefix
|
||||
(str les-discovery-identifier hash-prefix))))
|
||||
|
||||
(defn get-topics
|
||||
[network]
|
||||
(let [les-topic (get-les-topic network)]
|
||||
(cond-> {"whisper" {:Min 2 :Max 2}}
|
||||
les-topic (assoc les-topic {:Min 2 :Max 2}))))
|
||||
|
||||
(defn- get-base-node-config
|
||||
[config]
|
||||
(cond-> (assoc config
|
||||
:Name
|
||||
"StatusIM")
|
||||
config/dev-build?
|
||||
(assoc :ListenAddr ":0"
|
||||
:DataDir (str (:DataDir config) "_dev"))))
|
||||
|
||||
(def wakuv2-default-config
|
||||
{:DiscoveryLimit 20
|
||||
:EnableDiscV5 true
|
||||
:Host "0.0.0.0"
|
||||
:AutoUpdate true
|
||||
;; Temporary fix until https://github.com/status-im/status-go/issues/3024 is resolved
|
||||
:Nameserver "8.8.8.8"
|
||||
:PeerExchange true
|
||||
:Port 0
|
||||
:UDPPort 0
|
||||
:LightClient false})
|
||||
|
||||
(def login-node-config
|
||||
{:WalletConfig (cond-> {:Enabled true}
|
||||
(not= config/opensea-api-key "")
|
||||
(assoc :OpenseaAPIKey config/opensea-api-key))
|
||||
:WakuV2Config wakuv2-default-config})
|
||||
|
||||
(defn- get-login-node-config
|
||||
[config]
|
||||
(merge config login-node-config))
|
||||
|
||||
(defn- pick-nodes
|
||||
"Picks `limit` different nodes randomly from the list of nodes
|
||||
if there is more than `limit` nodes in the list, otherwise return the list
|
||||
of nodes"
|
||||
[limit nodes]
|
||||
(take limit (shuffle nodes)))
|
||||
[status-im.config :as config]))
|
||||
|
||||
(defn fleets
|
||||
[{:keys [custom-fleets]}]
|
||||
@@ -94,86 +15,3 @@
|
||||
(keyword (get-in db
|
||||
[:profile/profile :fleet]
|
||||
config/fleet)))
|
||||
|
||||
(defn get-current-fleet
|
||||
[db]
|
||||
(get (fleets db)
|
||||
(current-fleet-key db)))
|
||||
|
||||
(defn- wakuv2-enabled?
|
||||
[fleet]
|
||||
(let [ks (keys fleet)]
|
||||
(some #(string/includes? (str %) "waku") ks)))
|
||||
|
||||
(defn get-multiaccount-node-config
|
||||
[{:keys [profile/profile :networks/current-network]
|
||||
:as db}]
|
||||
(let [wakuv2-config (get profile :wakuv2-config {})
|
||||
fleet-key (current-fleet-key db)
|
||||
current-fleet (get-current-fleet db)
|
||||
wakuv2-enabled (wakuv2-enabled? current-fleet)
|
||||
waku-nodes (get config/waku-nodes-config fleet-key)
|
||||
rendezvous-nodes (pick-nodes 3 (vals (:rendezvous current-fleet)))
|
||||
{:keys [installation-id log-level
|
||||
waku-bloom-filter-mode]}
|
||||
profile]
|
||||
(cond-> {:NetworkId (chain/chain-keyword->chain-id :mainnet)
|
||||
:DataDir "/ethereum/mainnet_rpc"
|
||||
:UpstreamConfig {:Enabled true
|
||||
:URL config/mainnet-rpc-url}}
|
||||
:always
|
||||
(get-base-node-config)
|
||||
|
||||
:always
|
||||
(get-login-node-config)
|
||||
|
||||
current-fleet
|
||||
(assoc :NoDiscovery wakuv2-enabled
|
||||
:Rendezvous (if wakuv2-enabled false (boolean (seq rendezvous-nodes)))
|
||||
:ClusterConfig {:Enabled true
|
||||
:Fleet (name fleet-key)
|
||||
:DiscV5BootstrapNodes
|
||||
(if wakuv2-enabled
|
||||
waku-nodes
|
||||
[])
|
||||
:TrustedMailServers
|
||||
(if wakuv2-enabled [] (pick-nodes 6 (vals (:mail current-fleet))))
|
||||
:StaticNodes
|
||||
(if wakuv2-enabled
|
||||
[]
|
||||
(into (pick-nodes 2
|
||||
(vals (:whisper current-fleet)))
|
||||
(vals (:static current-fleet))))
|
||||
:RendezvousNodes (if wakuv2-enabled [] rendezvous-nodes)
|
||||
:WakuNodes (or waku-nodes [])})
|
||||
|
||||
:always
|
||||
(assoc :LocalNotificationsConfig {:Enabled true}
|
||||
:KeycardPairingDataFile "/ethereum/mainnet_rpc/keycard/pairings.json"
|
||||
:BrowsersConfig {:Enabled true}
|
||||
:PermissionsConfig {:Enabled true}
|
||||
:MailserversConfig {:Enabled true}
|
||||
:EnableNTPSync true
|
||||
:WakuConfig
|
||||
{:Enabled (not wakuv2-enabled)
|
||||
:BloomFilterMode waku-bloom-filter-mode
|
||||
:LightClient true
|
||||
:MinimumPoW 0.000001}
|
||||
:WakuV2Config (merge (assoc wakuv2-config :Enabled wakuv2-enabled)
|
||||
wakuv2-default-config)
|
||||
:ShhextConfig
|
||||
{:BackupDisabledDataDir (if platform/android? "/../no_backup" "/")
|
||||
:InstallationID installation-id
|
||||
:MaxMessageDeliveryAttempts config/max-message-delivery-attempts
|
||||
:MailServerConfirmations config/mailserver-confirmations-enabled?
|
||||
:VerifyTransactionURL config/verify-transaction-url
|
||||
:VerifyENSURL config/verify-ens-url
|
||||
:VerifyENSContractAddress config/verify-ens-contract-address
|
||||
:VerifyTransactionChainID config/verify-transaction-chain-id
|
||||
:DataSyncEnabled true
|
||||
:PFSEnabled true}
|
||||
:RequireTopics (get-topics current-network)
|
||||
:StatusAccountsConfig {:Enabled true})
|
||||
|
||||
:always
|
||||
(add-log-level log-level))))
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
[re-frame.core :as re-frame.core]
|
||||
[react-native.core :as rn]
|
||||
[status-im.contexts.profile.utils :as profile.utils]
|
||||
[utils.ens.core :as utils.ens]))
|
||||
[utils.ens.core :as utils.ens]
|
||||
[utils.image-server :as image-server]))
|
||||
|
||||
;;TODO REWORK THIS NAMESPACE
|
||||
|
||||
@@ -156,9 +157,11 @@
|
||||
(styles/default-chat-icon-text size)
|
||||
(styles/emoji-chat-icon-text size))}
|
||||
override-styles)
|
||||
photo-path (if (:fn photo-path)
|
||||
img-config (:config photo-path)
|
||||
photo-path (if img-config
|
||||
;; temp support new media server avatar for old component
|
||||
{:uri ((:fn photo-path)
|
||||
{:uri (image-server/get-image-uri
|
||||
img-config
|
||||
{:size size
|
||||
:full-name name
|
||||
:font-size (get-in styles [:default-chat-icon-text :font-size])
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
{:title (i18n/label :t/settings)
|
||||
:accessibility-label "settings"
|
||||
:theme :accent
|
||||
:on-press #(hide-sheet-and-dispatch [:navigate-to :sync-settings])
|
||||
:on-press #(hide-sheet-and-dispatch [:navigate-to :legacy-sync-settings])
|
||||
:icon :main-icons/settings}]
|
||||
(when mobile
|
||||
[:<>
|
||||
|
||||
@@ -223,25 +223,28 @@
|
||||
|
||||
(defn show-image-picker
|
||||
([images-fn]
|
||||
(show-image-picker images-fn nil))
|
||||
(show-image-picker images-fn nil nil))
|
||||
([images-fn
|
||||
{:keys [media-type]
|
||||
:or {media-type "any"}
|
||||
:as props}]
|
||||
:as props}
|
||||
finally-callback]
|
||||
(-> ^js image-picker
|
||||
(.openPicker (clj->js (merge {:mediaType media-type}
|
||||
props)))
|
||||
(.then images-fn)
|
||||
(.catch show-access-error))))
|
||||
(.catch show-access-error)
|
||||
(.finally finally-callback))))
|
||||
|
||||
(defn show-image-picker-camera
|
||||
([images-fn]
|
||||
(show-image-picker-camera images-fn nil))
|
||||
([images-fn props]
|
||||
(show-image-picker-camera images-fn nil nil))
|
||||
([images-fn props finally-callback]
|
||||
(-> ^js image-picker
|
||||
(.openCamera (clj->js props))
|
||||
(.then images-fn)
|
||||
(.catch show-access-error))))
|
||||
(.catch show-access-error)
|
||||
(.finally finally-callback))))
|
||||
|
||||
;; Clipboard
|
||||
|
||||
|
||||
@@ -5,11 +5,9 @@
|
||||
[legacy.status-im.ui.components.icons.icons :as icons]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.components.webview :refer [webview]]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.constants :refer
|
||||
[principles-link privacy-policy-link terms-of-service-link]]
|
||||
[utils.i18n :as i18n])
|
||||
[quo.core :as quo]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(views/defview about-app
|
||||
@@ -17,44 +15,38 @@
|
||||
(views/letsubs [app-version [:get-app-short-version]
|
||||
commit-hash [:get-commit-hash]
|
||||
node-version [:get-app-node-version]]
|
||||
[react/scroll-view
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/privacy-policy)
|
||||
:accessibility-label :privacy-policy
|
||||
:on-press
|
||||
#(re-frame/dispatch [:navigate-to :privacy-policy])
|
||||
:chevron true}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/terms-of-service)
|
||||
:accessibility-label :terms-of-service
|
||||
:on-press #(re-frame/dispatch [:navigate-to :terms-of-service])
|
||||
:chevron true}]
|
||||
[copyable-text/copyable-text-view
|
||||
{:copied-text app-version}
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :app-version
|
||||
:title (i18n/label :t/version)
|
||||
:accessory :text
|
||||
:accessory-text app-version}]]
|
||||
[copyable-text/copyable-text-view
|
||||
{:copied-text commit-hash}
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :commit-hash
|
||||
:title (i18n/label :t/app-commit)
|
||||
:accessory :text
|
||||
:accessory-text commit-hash}]]
|
||||
[copyable-text/copyable-text-view
|
||||
{:copied-text node-version}
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :node-version
|
||||
:title (i18n/label :t/node-version)
|
||||
:accessory :text
|
||||
:accessory-text node-version}]]]))
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :title
|
||||
:title (i18n/label :t/about-app)
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[react/scroll-view
|
||||
[copyable-text/copyable-text-view
|
||||
{:copied-text app-version}
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :app-version
|
||||
:title (i18n/label :t/version)
|
||||
:accessory :text
|
||||
:accessory-text app-version}]]
|
||||
[copyable-text/copyable-text-view
|
||||
{:copied-text commit-hash}
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :commit-hash
|
||||
:title (i18n/label :t/app-commit)
|
||||
:accessory :text
|
||||
:accessory-text commit-hash}]]
|
||||
[copyable-text/copyable-text-view
|
||||
{:copied-text node-version}
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :node-version
|
||||
:title (i18n/label :t/node-version)
|
||||
:accessory :text
|
||||
:accessory-text node-version}]]]]))
|
||||
|
||||
(views/defview learn-more-sheet
|
||||
[]
|
||||
@@ -73,21 +65,3 @@
|
||||
|
||||
(def learn-more
|
||||
{:content learn-more-sheet})
|
||||
|
||||
(views/defview privacy-policy
|
||||
[]
|
||||
[webview
|
||||
{:source {:uri privacy-policy-link}
|
||||
:java-script-enabled true}])
|
||||
|
||||
(views/defview tos
|
||||
[]
|
||||
[webview
|
||||
{:source {:uri terms-of-service-link}
|
||||
:java-script-enabled true}])
|
||||
|
||||
(views/defview principles
|
||||
[]
|
||||
[webview
|
||||
{:source {:uri principles-link}
|
||||
:java-script-enabled true}])
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
(ns legacy.status-im.ui.screens.advanced-settings.views
|
||||
(:require
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.core :as components]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.list.views :as list]
|
||||
[quo.core :as quo]
|
||||
[re-frame.core :as re-frame]
|
||||
[utils.i18n :as i18n])
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(defn hide-sheet-and-dispatch
|
||||
@@ -14,10 +16,9 @@
|
||||
|
||||
(defn- normal-mode-settings-data
|
||||
[{:keys [current-log-level
|
||||
telemetry-enabled?
|
||||
light-client-enabled?
|
||||
transactions-management-enabled?
|
||||
current-fleet
|
||||
webview-debug
|
||||
test-networks-enabled?
|
||||
is-goerli-enabled?
|
||||
peer-syncing-enabled?]}]
|
||||
@@ -27,7 +28,7 @@
|
||||
:title (i18n/label :t/log-level)
|
||||
:accessibility-label :log-level-settings-button
|
||||
:on-press
|
||||
#(re-frame/dispatch [:open-modal :log-level-settings])
|
||||
#(re-frame/dispatch [:open-modal :legacy-:og-level-settings])
|
||||
:accessory :text
|
||||
:accessory-text current-log-level
|
||||
:chevron true}
|
||||
@@ -59,6 +60,14 @@
|
||||
:on-press
|
||||
#(re-frame/dispatch [:open-modal :peers-stats])
|
||||
:chevron true}
|
||||
{:size :small
|
||||
:title "Telemetry"
|
||||
:accessibility-label :telemetry-enabled
|
||||
:container-margin-bottom 8
|
||||
:on-press
|
||||
#(re-frame/dispatch [:profile.settings/toggle-telemetry])
|
||||
:accessory :switch
|
||||
:active telemetry-enabled?}
|
||||
{:size :small
|
||||
:title (i18n/label :t/light-client-enabled)
|
||||
:accessibility-label :light-client-enabled
|
||||
@@ -68,25 +77,6 @@
|
||||
[:wakuv2.ui/toggle-light-client (not light-client-enabled?)])
|
||||
:accessory :switch
|
||||
:active light-client-enabled?}
|
||||
{:size :small
|
||||
:title (i18n/label :t/transactions-management-enabled)
|
||||
:accessibility-label :transactions-management-enabled
|
||||
:container-margin-bottom 8
|
||||
:on-press
|
||||
#(re-frame/dispatch
|
||||
[:multiaccounts.ui/switch-transactions-management-enabled
|
||||
(not transactions-management-enabled?)])
|
||||
:accessory :switch
|
||||
:active transactions-management-enabled?}
|
||||
{:size :small
|
||||
:title "Webview debug"
|
||||
:accessibility-label :webview-debug-switch
|
||||
:container-margin-bottom 8
|
||||
:on-press
|
||||
#(re-frame/dispatch
|
||||
[:profile.settings/change-webview-debug (not webview-debug)])
|
||||
:accessory :switch
|
||||
:active webview-debug}
|
||||
{:size :small
|
||||
:title "Testnet mode"
|
||||
:accessibility-label :test-networks-enabled
|
||||
@@ -110,13 +100,7 @@
|
||||
:on-press
|
||||
#(re-frame/dispatch [:profile.settings/toggle-peer-syncing])
|
||||
:accessory :switch
|
||||
:active peer-syncing-enabled?}
|
||||
{:size :small
|
||||
:title (i18n/label :t/set-currency)
|
||||
:accessibility-label :wallet-change-currency
|
||||
:on-press #(hide-sheet-and-dispatch
|
||||
[:open-modal :currency-settings])
|
||||
:chevron true}]))
|
||||
:active peer-syncing-enabled?}]))
|
||||
|
||||
(defn- flat-list-data
|
||||
[options]
|
||||
@@ -125,29 +109,34 @@
|
||||
(defn- render-item
|
||||
[props]
|
||||
(if (= (:type props) :section-header)
|
||||
[quo/list-header (:title props)]
|
||||
[components/list-header (:title props)]
|
||||
[list.item/list-item props]))
|
||||
|
||||
(views/defview advanced-settings
|
||||
[]
|
||||
(views/letsubs [test-networks-enabled? [:profile/test-networks-enabled?]
|
||||
is-goerli-enabled? [:profile/is-goerli-enabled?]
|
||||
light-client-enabled? [:profile/light-client-enabled?]
|
||||
webview-debug [:profile/webview-debug]
|
||||
transactions-management-enabled? [:wallet-legacy/transactions-management-enabled?]
|
||||
current-log-level [:log-level/current-log-level]
|
||||
current-fleet [:fleets/current-fleet]
|
||||
peer-syncing-enabled? [:profile/peer-syncing-enabled?]]
|
||||
[list/flat-list
|
||||
{:data (flat-list-data
|
||||
{:current-log-level current-log-level
|
||||
:transactions-management-enabled? transactions-management-enabled?
|
||||
:light-client-enabled? light-client-enabled?
|
||||
:current-fleet current-fleet
|
||||
:dev-mode? false
|
||||
:webview-debug webview-debug
|
||||
:test-networks-enabled? test-networks-enabled?
|
||||
:is-goerli-enabled? is-goerli-enabled?
|
||||
:peer-syncing-enabled? peer-syncing-enabled?})
|
||||
:key-fn (fn [_ i] (str i))
|
||||
:render-fn render-item}]))
|
||||
(views/letsubs [test-networks-enabled? [:profile/test-networks-enabled?]
|
||||
is-goerli-enabled? [:profile/is-goerli-enabled?]
|
||||
light-client-enabled? [:profile/light-client-enabled?]
|
||||
telemetry-enabled? [:profile/telemetry-enabled?]
|
||||
current-log-level [:log-level/current-log-level]
|
||||
current-fleet [:fleets/current-fleet]
|
||||
peer-syncing-enabled? [:profile/peer-syncing-enabled?]]
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :title
|
||||
:title (i18n/label :t/advanced)
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[list/flat-list
|
||||
{:data (flat-list-data
|
||||
{:current-log-level current-log-level
|
||||
:telemetry-enabled? telemetry-enabled?
|
||||
:light-client-enabled? light-client-enabled?
|
||||
:current-fleet current-fleet
|
||||
:dev-mode? false
|
||||
:test-networks-enabled? test-networks-enabled?
|
||||
:is-goerli-enabled? is-goerli-enabled?
|
||||
:peer-syncing-enabled? peer-syncing-enabled?})
|
||||
:key-fn (fn [_ i] (str i))
|
||||
:render-fn render-item}]]))
|
||||
|
||||
@@ -3,10 +3,12 @@
|
||||
(:require
|
||||
[legacy.status-im.react-native.resources :as resources]
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.core :as components]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[quo.core :as quo]
|
||||
[re-frame.core :as re-frame]
|
||||
[utils.i18n :as i18n]))
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn button
|
||||
[label icon theme selected?]
|
||||
@@ -24,7 +26,13 @@
|
||||
[]
|
||||
(views/letsubs [{:keys [appearance]} [:profile/profile]]
|
||||
[:<>
|
||||
[quo/list-header (i18n/label :t/preference)]
|
||||
[quo/page-nav
|
||||
{:type :title
|
||||
:title (i18n/label :t/appearance)
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[components/list-header (i18n/label :t/preference)]
|
||||
[react/view
|
||||
{:flex-direction :row
|
||||
:padding-horizontal 8
|
||||
|
||||
@@ -1,23 +1,27 @@
|
||||
(ns legacy.status-im.ui.screens.bug-report
|
||||
(:require
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.topbar :as topbar]
|
||||
[legacy.status-im.ui.components.core :as component]
|
||||
[quo.core :as quo]
|
||||
[re-frame.core :as re-frame]
|
||||
[react-native.core :as react-native]
|
||||
[utils.i18n :as i18n]))
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn bug-report
|
||||
[]
|
||||
(let [{:keys [description steps]} @(re-frame/subscribe [:bug-report/details])]
|
||||
[react-native/view {:style {:flex 1}}
|
||||
[topbar/topbar
|
||||
{:title (i18n/label :t/bug-report)
|
||||
:modal? true}]
|
||||
[quo/page-nav
|
||||
{:type :title
|
||||
:title (i18n/label :t/bug-report)
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[react-native/view
|
||||
{:style {:flex 1
|
||||
:padding-top 8
|
||||
:padding-horizontal 16}}
|
||||
[quo/text-input
|
||||
[component/text-input
|
||||
{:label (i18n/label :t/bug-report-description)
|
||||
:default-value description
|
||||
:placeholder (i18n/label :t/bug-report-description-placeholder)
|
||||
@@ -26,7 +30,7 @@
|
||||
:error @(re-frame/subscribe [:bug-report/description-error])
|
||||
:accessibility-label :bug-report-description
|
||||
:on-change-text #(re-frame/dispatch [:logging/report-details :description %])}]
|
||||
[quo/text-input
|
||||
[component/text-input
|
||||
{:label (i18n/label :t/bug-report-steps)
|
||||
:default-value steps
|
||||
:placeholder (i18n/label :t/bug-report-steps-placeholder)
|
||||
@@ -34,7 +38,7 @@
|
||||
:multiline true
|
||||
:accessibility-label :bug-report-steps
|
||||
:on-change-text #(re-frame/dispatch [:logging/report-details :steps %])}]
|
||||
[quo/button
|
||||
[component/button
|
||||
{:type :primary
|
||||
:accessibility-label :bug-report-submit
|
||||
:theme :accent
|
||||
@@ -43,8 +47,8 @@
|
||||
[react-native/view
|
||||
{:style {:margin-vertical 16
|
||||
:align-items :center}}
|
||||
[quo/text (i18n/label :t/or)]]
|
||||
[quo/button
|
||||
[component/text (i18n/label :t/or)]]
|
||||
[component/button
|
||||
{:type :primary
|
||||
:accessibility-label :bug-report-submit-gh-issue
|
||||
:theme :accent
|
||||
|
||||
@@ -60,7 +60,10 @@
|
||||
(conj
|
||||
acc
|
||||
[rn/view
|
||||
{:style {:background-color colors/primary-50-opa-10 :border-radius 6 :padding-horizontal 3}}
|
||||
{:style {:background-color colors/primary-50-opa-10
|
||||
:border-radius 6
|
||||
:padding-horizontal 3
|
||||
:margin-top -3}}
|
||||
[rn/text
|
||||
{:style (merge {:color (if (system-text? content-type) quo.colors/black colors/primary-50)}
|
||||
(if (system-text? content-type) typography/font-regular typography/font-medium))
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.contacts-list.views
|
||||
(:require
|
||||
[legacy.status-im.ui.components.chat-icon.screen :as chat-icon.screen]
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.invite.views :as invite]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.list.views :as list.views]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.contexts.profile.utils :as profile.utils]
|
||||
[utils.i18n :as i18n])
|
||||
(:require-macros [legacy.status-im.utils.views :refer [defview letsubs]]))
|
||||
|
||||
(defn contacts-list-item
|
||||
[{:keys [public-key] :as contact}]
|
||||
(let [{:keys [primary-name secondary-name customization-color]} contact]
|
||||
[list.item/list-item
|
||||
{:title primary-name
|
||||
:subtitle secondary-name
|
||||
:icon [chat-icon.screen/profile-photo-plus-dot-view
|
||||
{:public-key public-key
|
||||
:full-name primary-name
|
||||
:customization-color (or customization-color :primary)
|
||||
:photo-path (profile.utils/photo contact)}]
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:chat.ui/show-profile public-key])}]))
|
||||
|
||||
(defn add-new-contact
|
||||
[]
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/add
|
||||
:theme :accent
|
||||
:title (i18n/label :t/add-new-contact)
|
||||
:accessibility-label :add-new-contact-button
|
||||
:on-press #(re-frame/dispatch [:open-modal :new-contact])}])
|
||||
|
||||
(defview contacts-list
|
||||
[]
|
||||
(letsubs [blocked-contacts-count [:contacts/blocked-count]
|
||||
sorted-contacts [:contacts/sorted-contacts]]
|
||||
[react/scroll-view {:flex 1}
|
||||
[add-new-contact]
|
||||
(when (pos? blocked-contacts-count)
|
||||
[react/view {:margin-vertical 16}
|
||||
[list.item/list-item
|
||||
{:title (i18n/label :t/blocked-users)
|
||||
:icon :main-icons/cancel
|
||||
:theme :negative
|
||||
:accessibility-label :blocked-users-list-button
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:accessory-text blocked-contacts-count
|
||||
:on-press #(re-frame/dispatch [:navigate-to :blocked-users-list])}]])
|
||||
(if (seq sorted-contacts)
|
||||
[list.views/flat-list
|
||||
{:data sorted-contacts
|
||||
:key-fn :address
|
||||
:render-fn contacts-list-item}]
|
||||
[react/view
|
||||
{:align-items :center
|
||||
:flex 1
|
||||
:justify-content :center}
|
||||
[react/text {:style {:color colors/gray :margin-vertical 24}}
|
||||
(i18n/label :t/you-dont-have-contacts)]
|
||||
[invite/button]])]))
|
||||
|
||||
(defview blocked-users-list
|
||||
[]
|
||||
(letsubs [blocked-contacts [:contacts/blocked]]
|
||||
[list.views/flat-list
|
||||
{:data blocked-contacts
|
||||
:key-fn :address
|
||||
:render-fn contacts-list-item
|
||||
:default-separator? true
|
||||
:enableEmptySections true
|
||||
:keyboard-should-persist-taps :always}]))
|
||||
@@ -1,14 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.currency-settings.styles
|
||||
(:require
|
||||
[legacy.status-im.utils.styles :as styles]))
|
||||
|
||||
(styles/def currency-item
|
||||
{:flex-direction :row
|
||||
:justify-content :space-between
|
||||
:align-items :center
|
||||
:padding-horizontal 16
|
||||
:ios {:height 64}
|
||||
:android {:height 56}})
|
||||
|
||||
(def currency-name-text
|
||||
{:typography :title})
|
||||
@@ -1,54 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.currency-settings.views
|
||||
(:require-macros [legacy.status-im.utils.views :as views])
|
||||
(:require
|
||||
[legacy.status-im.ui.components.icons.icons :as icons]
|
||||
[legacy.status-im.ui.components.list.views :as list]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.components.search-input.view :as search-input]
|
||||
[legacy.status-im.ui.screens.currency-settings.styles :as styles]
|
||||
[re-frame.core :as re-frame]
|
||||
[reagent.core :as reagent]))
|
||||
|
||||
(defonce search-active? (reagent/atom false))
|
||||
|
||||
(defn render-currency
|
||||
[{:keys [id code display-name]} _ _ current-currency-id]
|
||||
(let [selected? (= id current-currency-id)]
|
||||
[react/touchable-highlight
|
||||
{:on-press #(re-frame/dispatch [:wallet-legacy.settings.ui/currency-selected id])
|
||||
:accessibility-label :currency-item}
|
||||
[react/view styles/currency-item
|
||||
[react/text {:style styles/currency-name-text}
|
||||
(str display-name " (" code ")")]
|
||||
(when selected?
|
||||
[icons/icon :main-icons/check {:color :active}])]]))
|
||||
|
||||
(views/defview currency-settings
|
||||
[]
|
||||
(views/letsubs [currency-id [:wallet-legacy/settings-currency]
|
||||
{:keys [currencies search-filter]} [:wallet-legacy/search-filtered-currencies]]
|
||||
{:component-will-unmount #(do
|
||||
(re-frame/dispatch [:search/currency-filter-changed nil])
|
||||
(reset! search-active? false))}
|
||||
[:<>
|
||||
[react/view {:flex 1}
|
||||
[react/view
|
||||
{:padding-horizontal 16
|
||||
:padding-vertical 10}
|
||||
[search-input/search-input-old
|
||||
{:search-active? search-active?
|
||||
:search-filter search-filter
|
||||
:on-cancel #(re-frame/dispatch [:search/currency-filter-changed nil])
|
||||
:on-focus (fn [search-filter]
|
||||
(when-not search-filter
|
||||
(re-frame/dispatch [:search/currency-filter-changed ""])))
|
||||
:on-change (fn [text]
|
||||
(re-frame/dispatch [:search/currency-filter-changed text]))}]]
|
||||
[list/flat-list
|
||||
{:data (->> currencies
|
||||
vals
|
||||
(sort #(compare (:code %1) (:code %2))))
|
||||
:key-fn :code
|
||||
:render-data currency-id
|
||||
:render-fn render-currency
|
||||
:keyboard-should-persist-taps :always}]]]))
|
||||
@@ -1,770 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.ens.views
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[legacy.status-im.ens.core :as ens]
|
||||
[legacy.status-im.ethereum.tokens :as tokens]
|
||||
[legacy.status-im.react-native.resources :as resources]
|
||||
[legacy.status-im.ui.components.chat-icon.screen :as chat-icon]
|
||||
[legacy.status-im.ui.components.checkbox.view :as checkbox]
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.common.common :as components.common]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.icons.icons :as icons]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.components.toolbar :as toolbar]
|
||||
[legacy.status-im.ui.components.topbar :as topbar]
|
||||
[legacy.status-im.ui.screens.chat.utils :as chat.utils]
|
||||
[legacy.status-im.ui.screens.profile.components.views :as profile.components]
|
||||
[legacy.status-im.utils.utils :as utils]
|
||||
[re-frame.core :as re-frame]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.config :as config]
|
||||
[utils.address :as address]
|
||||
[utils.debounce :as debounce]
|
||||
[utils.ens.core :as utils.ens]
|
||||
[utils.ens.stateofus :as stateofus]
|
||||
[utils.i18n :as i18n])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(defn- link
|
||||
[{:keys [on-press]} label]
|
||||
[react/touchable-opacity
|
||||
{:on-press on-press
|
||||
:style {:justify-content :center}}
|
||||
[react/text {:style {:color colors/blue}}
|
||||
label]])
|
||||
|
||||
(defn- section
|
||||
[{:keys [title content]}]
|
||||
[react/view
|
||||
{:style {:margin-horizontal 16
|
||||
:align-items :flex-start}}
|
||||
[react/text {:style {:color colors/gray :font-size 15}}
|
||||
title]
|
||||
[react/view
|
||||
{:margin-top 8
|
||||
:padding-horizontal 16
|
||||
:padding-vertical 12
|
||||
:border-width 1
|
||||
:border-radius 12
|
||||
:border-color colors/gray-lighter}
|
||||
[quo/text {:monospace true}
|
||||
content]]])
|
||||
|
||||
(defn- domain-label
|
||||
[custom-domain?]
|
||||
(if custom-domain?
|
||||
(i18n/label :t/ens-custom-domain)
|
||||
(str "." stateofus/domain)))
|
||||
|
||||
(defn- domain-switch-label
|
||||
[custom-domain?]
|
||||
(if custom-domain?
|
||||
(i18n/label :t/ens-want-domain)
|
||||
(i18n/label :t/ens-want-custom-domain)))
|
||||
|
||||
(defn- big-blue-icon
|
||||
[state]
|
||||
[react/view
|
||||
{:style {:margin-top 68
|
||||
:margin-bottom 24
|
||||
:width 60
|
||||
:height 60
|
||||
:border-radius 30
|
||||
:background-color colors/blue
|
||||
:align-items :center
|
||||
:justify-content :center}}
|
||||
[icons/icon
|
||||
(case state
|
||||
(:available :connected :connected-with-different-key :owned)
|
||||
:main-icons/check
|
||||
(:taken :error)
|
||||
:main-icons/cancel
|
||||
:main-icons/username)
|
||||
{:color colors/white-persist}]])
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; SEARCH SCREEN
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defn- icon-wrapper
|
||||
[color icon]
|
||||
[react/view
|
||||
{:style {:margin-right 16
|
||||
:margin-top 11
|
||||
:width 32
|
||||
:height 32
|
||||
:border-radius 25
|
||||
:align-items :center
|
||||
:justify-content :center
|
||||
:background-color color}}
|
||||
icon])
|
||||
|
||||
(defn- input-icon
|
||||
[state]
|
||||
(case state
|
||||
:searching
|
||||
[icon-wrapper colors/gray
|
||||
[react/activity-indicator {:color colors/white-persist}]]
|
||||
|
||||
(:available :connected :connected-with-different-key :owned)
|
||||
[react/touchable-highlight
|
||||
{:on-press #(debounce/throttle-and-dispatch [::ens/input-submitted] 3000)}
|
||||
[icon-wrapper colors/blue
|
||||
[icons/icon :main-icons/arrow-right {:color colors/white-persist}]]]
|
||||
|
||||
[icon-wrapper colors/gray
|
||||
[icons/icon :main-icons/arrow-right {:color colors/white-persist}]]))
|
||||
|
||||
(defn help-message-text-element
|
||||
([label]
|
||||
[react/text
|
||||
{:style {:flex 1
|
||||
:margin-top 16
|
||||
:margin-horizontal 16
|
||||
:font-size 14
|
||||
:text-align :center}}
|
||||
(i18n/label label)])
|
||||
([label second-label]
|
||||
[react/nested-text
|
||||
{:style {:flex 1
|
||||
:margin-top 16
|
||||
:margin-horizontal 16
|
||||
:font-size 14
|
||||
:text-align :center}}
|
||||
(i18n/label label) " "
|
||||
[{:style {:font-weight "700"}}
|
||||
(i18n/label second-label)]]))
|
||||
|
||||
(defn help-message
|
||||
[state custom-domain?]
|
||||
(case state
|
||||
:already-added
|
||||
[help-message-text-element :t/ens-username-already-added]
|
||||
:available
|
||||
[help-message-text-element :t/ens-username-available]
|
||||
:owned
|
||||
[help-message-text-element
|
||||
:t/ens-username-owned
|
||||
:t/ens-username-owned-continue]
|
||||
:connected
|
||||
[help-message-text-element
|
||||
:t/ens-username-connected
|
||||
:t/ens-username-connected-continue]
|
||||
:connected-with-different-key
|
||||
[help-message-text-element
|
||||
:t/ens-username-owned
|
||||
:t/ens-username-connected-with-different-key]
|
||||
:invalid-ens
|
||||
[help-message-text-element
|
||||
:t/ens-username-owned
|
||||
:t/ens-username-registration-invalid]
|
||||
(if custom-domain?
|
||||
(case state
|
||||
:too-short
|
||||
[help-message-text-element :t/ens-custom-username-hints]
|
||||
:invalid
|
||||
[help-message-text-element :t/ens-custom-username-hints]
|
||||
:taken
|
||||
[help-message-text-element :t/ens-custom-username-taken]
|
||||
[react/text ""])
|
||||
(case state
|
||||
:too-short
|
||||
[help-message-text-element :t/ens-username-hints]
|
||||
:invalid
|
||||
[help-message-text-element :t/ens-username-invalid]
|
||||
:taken
|
||||
[help-message-text-element :t/ens-username-taken]
|
||||
[react/text ""]))))
|
||||
|
||||
(defn- username-input
|
||||
[_ _ _]
|
||||
(let [input-ref (atom nil)]
|
||||
(fn [_ state placeholder]
|
||||
[react/view {:flex-direction :row :justify-content :center}
|
||||
;;NOTE required so that the keyboards shows up when navigating back from checkout screen
|
||||
;; TODO: navigation-events were deprecated
|
||||
;; [:> navigation/navigation-events
|
||||
;; {:on-did-focus
|
||||
;; (fn []
|
||||
;; (.focus ^js @input-ref))}]
|
||||
;;NOTE setting the key as placeholder forces the component to remount
|
||||
;;when the placeholder changes, this prevents the placeholder from
|
||||
;;disappearing when switching between stateofus and custom domain
|
||||
^{:key placeholder}
|
||||
[react/text-input
|
||||
{:ref #(reset! input-ref %)
|
||||
:on-change-text #(do
|
||||
(re-frame/dispatch [:set-in [:ens/registration :state] :searching])
|
||||
(debounce/debounce-and-dispatch [::ens/set-username-candidate %]
|
||||
600))
|
||||
:on-submit-editing #(re-frame/dispatch [::ens/input-submitted])
|
||||
:auto-capitalize :none
|
||||
:auto-complete-type "off"
|
||||
:auto-focus true
|
||||
:auto-correct false
|
||||
:default-value ""
|
||||
:text-align :center
|
||||
:placeholder placeholder
|
||||
:placeholder-text-color colors/text-gray
|
||||
:style {:flex 1
|
||||
:font-size 22
|
||||
:padding-left 48}}]
|
||||
[input-icon state]])))
|
||||
|
||||
(views/defview search
|
||||
[]
|
||||
(views/letsubs [{:keys [state custom-domain? username]}
|
||||
[:ens/search-screen]]
|
||||
[react/keyboard-avoiding-view {:flex 1}
|
||||
[react/scroll-view
|
||||
{:style {:flex 1}
|
||||
;;NOTE required so that switching custom-domain works on first tap and persists keyboard
|
||||
;;instead of dismissing keyboard and requiring two taps
|
||||
:keyboard-should-persist-taps :always}
|
||||
[react/view {:style {:flex 1}}
|
||||
[react/view
|
||||
{:style {:flex 1
|
||||
:align-items :center
|
||||
:justify-content :center}}
|
||||
[big-blue-icon state]
|
||||
[username-input username state
|
||||
(if custom-domain?
|
||||
"vitalik94.domain.eth"
|
||||
"vitalik94")]
|
||||
[react/view
|
||||
{:style {:height 36
|
||||
:align-items :center
|
||||
:justify-content :space-between
|
||||
:padding-horizontal 12
|
||||
:margin-top 24
|
||||
:margin-horizontal 16
|
||||
:border-color colors/gray-lighter
|
||||
:border-radius 20
|
||||
:border-width 1
|
||||
:flex-direction :row}}
|
||||
[react/text
|
||||
{:style {:font-size 13
|
||||
:typography :main-medium}}
|
||||
(domain-label custom-domain?)]
|
||||
[react/view {:flex 1 :min-width 24}]
|
||||
[react/touchable-highlight {:on-press #(re-frame/dispatch [::ens/switch-domain-type])}
|
||||
[react/text
|
||||
{:style {:color colors/blue
|
||||
:font-size 12
|
||||
:typography :main-medium}
|
||||
:number-of-lines 2}
|
||||
(domain-switch-label custom-domain?)]]]]
|
||||
[help-message state custom-domain?]]]]))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; CHECKOUT SCREEN
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defn- agreement
|
||||
[checked contract]
|
||||
[react/view
|
||||
{:flex-direction :row
|
||||
:margin-left 26 ;; 10 for checkbox + 16
|
||||
:margin-right 16
|
||||
:margin-top 14
|
||||
:align-items :flex-start
|
||||
:justify-content :center}
|
||||
[checkbox/checkbox
|
||||
{:checked? @checked
|
||||
:style {:padding 0}
|
||||
:on-value-change #(reset! checked %)}]
|
||||
[react/nested-text {:style {:margin-left 10}}
|
||||
(i18n/label :t/ens-agree-to)
|
||||
[{:style {:color colors/blue}
|
||||
:on-press #(re-frame/dispatch [:navigate-to :ens-terms {:contract contract}])}
|
||||
(i18n/label :t/ens-terms-registration)]
|
||||
"\n"
|
||||
(i18n/label :t/ens-understand)]])
|
||||
|
||||
(defn render-account
|
||||
[address]
|
||||
(let [account @(re-frame/subscribe [:account-by-address address])]
|
||||
[list.item/list-item
|
||||
{:icon [chat-icon/custom-icon-view-list (:name account) (:color account)]
|
||||
:title (:name account)
|
||||
:subtitle (utils/get-shortened-checksum-address (:address account))
|
||||
:chevron true
|
||||
:on-press #(js/alert "funcitonality no longer supported")}]))
|
||||
|
||||
(defn- registration
|
||||
[checked contract address public-key]
|
||||
[react/view {:style {:flex 1 :margin-top 24}}
|
||||
[react/text {:style {:color colors/gray :font-size 15 :margin-horizontal 16}}
|
||||
(i18n/label :t/wallet)]
|
||||
[render-account address]
|
||||
[react/view {:style {:margin-top 14}}
|
||||
[section
|
||||
{:title (i18n/label :t/key)
|
||||
:content public-key}]]
|
||||
[agreement checked contract]])
|
||||
|
||||
(defn checkout
|
||||
[]
|
||||
(let [checked? (reagent/atom false)]
|
||||
(fn []
|
||||
(let [{:keys [username address custom-domain? public-key
|
||||
chain amount-label sufficient-funds?]}
|
||||
@(re-frame/subscribe [:ens/checkout-screen])]
|
||||
[react/keyboard-avoiding-view {:flex 1}
|
||||
[react/scroll-view {:style {:flex 1}}
|
||||
[react/view
|
||||
{:style {:flex 1
|
||||
:align-items :center
|
||||
:justify-content :center}}
|
||||
[big-blue-icon nil]
|
||||
[react/text
|
||||
{:text-align :center
|
||||
:style {:flex 1
|
||||
:font-size 22
|
||||
:padding-horizontal 48}}
|
||||
username]
|
||||
[react/view
|
||||
{:style {:height 36
|
||||
:align-items :center
|
||||
:justify-content :space-between
|
||||
:padding-horizontal 12
|
||||
:margin-top 24
|
||||
:margin-horizontal 16
|
||||
:border-color colors/gray-lighter
|
||||
:border-radius 20
|
||||
:border-width 1
|
||||
:flex-direction :row}}
|
||||
[react/text
|
||||
{:style {:font-size 13
|
||||
:typography :main-medium}}
|
||||
(domain-label custom-domain?)]
|
||||
[react/view {:flex 1 :min-width 24}]]]
|
||||
[registration
|
||||
checked?
|
||||
(when (or (not= chain :goerli) config/test-stateofus?)
|
||||
(stateofus/get-cached-registrar chain))
|
||||
address
|
||||
public-key]]
|
||||
[toolbar/toolbar
|
||||
{:show-border? true
|
||||
:size :large
|
||||
:left [react/view {:flex-direction :row :align-items :center}
|
||||
[react/image
|
||||
{:source tokens/snt-icon-source
|
||||
:style {:width 36 :height 36}}]
|
||||
[react/view {:flex-direction :column :margin 8}
|
||||
[react/text {:style {:font-size 15}}
|
||||
amount-label]
|
||||
[react/text {:style {:color colors/gray :font-size 15}}
|
||||
(i18n/label :t/ens-deposit)]]]
|
||||
:right [react/view {:padding-horizontal 8}
|
||||
[quo/button
|
||||
{:disabled (or (not @checked?) (not sufficient-funds?))
|
||||
:on-press #(debounce/throttle-and-dispatch [::ens/register-name-pressed
|
||||
address]
|
||||
2000)}
|
||||
(if sufficient-funds?
|
||||
(i18n/label :t/ens-register)
|
||||
(i18n/label :t/not-enough-snt))]]}]]))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; CONFIRMATION SCREEN
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defn- finalized-icon
|
||||
[state]
|
||||
(case state
|
||||
:registration-failed
|
||||
[react/view
|
||||
{:style {:width 40
|
||||
:height 40
|
||||
:border-radius 30
|
||||
:background-color colors/red-light
|
||||
:align-items :center
|
||||
:justify-content :center}}
|
||||
[icons/icon :main-icons/warning {:color colors/red}]]
|
||||
[react/view
|
||||
{:style {:width 40
|
||||
:height 40
|
||||
:border-radius 30
|
||||
:background-color colors/gray-lighter
|
||||
:align-items :center
|
||||
:justify-content :center}}
|
||||
[icons/icon :main-icons/check {:color colors/blue}]]))
|
||||
|
||||
(defn- final-state-label
|
||||
[state username]
|
||||
(case state
|
||||
:available
|
||||
(i18n/label :t/ens-username-registration-confirmation
|
||||
{:username (stateofus/username-with-domain username)})
|
||||
:connected-with-different-key
|
||||
(i18n/label :t/ens-username-connection-confirmation
|
||||
{:username (stateofus/username-with-domain username)})
|
||||
:connected
|
||||
(i18n/label :t/ens-saved-title)
|
||||
;;NOTE: this state can't be reached atm
|
||||
:registration-failed
|
||||
(i18n/label :t/ens-registration-failed-title)
|
||||
nil))
|
||||
|
||||
(defn- final-state-details
|
||||
[state username]
|
||||
(case state
|
||||
:available
|
||||
[react/text {:style {:color colors/gray :font-size 15 :text-align :center}}
|
||||
(i18n/label :t/ens-username-you-can-follow-progress)]
|
||||
:connected-with-different-key
|
||||
[react/text {:style {:color colors/gray :font-size 15 :text-align :center}}
|
||||
(i18n/label :t/ens-username-you-can-follow-progress)]
|
||||
:connected
|
||||
[react/nested-text
|
||||
{:style {:font-size 15 :text-align :center}}
|
||||
(stateofus/username-with-domain username)
|
||||
[{:style {:color colors/gray}}
|
||||
(i18n/label :t/ens-saved)]]
|
||||
;;NOTE: this state can't be reached atm
|
||||
:registration-failed
|
||||
[react/text {:style {:color colors/gray :font-size 14}}
|
||||
(i18n/label :t/ens-registration-failed)]
|
||||
nil))
|
||||
|
||||
(views/defview confirmation
|
||||
[]
|
||||
(views/letsubs [{:keys [state username]} [:ens/confirmation-screen]]
|
||||
[react/keyboard-avoiding-view {:flex 1}
|
||||
[react/view
|
||||
{:style {:flex 1
|
||||
:align-items :center
|
||||
:justify-content :center}}
|
||||
[finalized-icon state]
|
||||
[react/text
|
||||
{:style {:typography :header
|
||||
:margin-top 32
|
||||
:margin-horizontal 32
|
||||
:text-align :center}}
|
||||
(final-state-label state username)]
|
||||
[react/view
|
||||
{:align-items :center
|
||||
:margin-horizontal 32
|
||||
:margin-top 12
|
||||
:margin-bottom 20
|
||||
:justify-content :center}
|
||||
[final-state-details state username]]
|
||||
(if (= state :registration-failed)
|
||||
[react/view
|
||||
[quo/button {:on-press #(re-frame/dispatch [::ens/retry-pressed])}
|
||||
(i18n/label :t/retry)]
|
||||
[quo/button {:on-press #(re-frame/dispatch [::ens/cancel-pressed])}
|
||||
(i18n/label :t/cancel)]]
|
||||
[quo/button {:on-press #(re-frame/dispatch [::ens/got-it-pressed])}
|
||||
(i18n/label :t/ens-got-it)])]]))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; TERMS SCREEN
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defn- term-point
|
||||
[content]
|
||||
[react/view {:style {:flex 1 :margin-top 24 :margin-horizontal 16 :flex-direction :row}}
|
||||
[react/view {:style {:width 16 :margin-top 8}}
|
||||
[react/view {:style {:background-color colors/gray :width 4 :height 4 :border-radius 25}}]]
|
||||
[react/text {:style {:flex 1 :font-size 15}}
|
||||
content]])
|
||||
|
||||
(defn- etherscan-url
|
||||
[address]
|
||||
(str "https://etherscan.io/address/" address))
|
||||
|
||||
(views/defview terms
|
||||
[]
|
||||
(views/letsubs [{:keys [contract]} [:get-screen-params :ens-terms]]
|
||||
[react/scroll-view {:style {:flex 1}}
|
||||
[react/view
|
||||
{:style {:height 136
|
||||
:background-color colors/gray-lighter
|
||||
:justify-content :center
|
||||
:align-items :center}}
|
||||
[react/text {:style {:text-align :center :typography :header :letter-spacing -0.275}}
|
||||
(i18n/label :t/ens-terms-header)]]
|
||||
[react/view
|
||||
[term-point
|
||||
(i18n/label :t/ens-terms-point-1)]
|
||||
[term-point
|
||||
(i18n/label :t/ens-terms-point-2)]
|
||||
[term-point
|
||||
(i18n/label :t/ens-terms-point-3)]
|
||||
[term-point
|
||||
(i18n/label :t/ens-terms-point-4)]
|
||||
[term-point
|
||||
(i18n/label :t/ens-terms-point-5)]
|
||||
[term-point
|
||||
(i18n/label :t/ens-terms-point-6)]
|
||||
[term-point
|
||||
(i18n/label :t/ens-terms-point-7)]]
|
||||
[react/view
|
||||
[react/text {:style {:font-size 15 :margin-top 24 :margin-horizontal 16 :font-weight "700"}}
|
||||
(i18n/label :t/ens-terms-point-8)]
|
||||
[term-point
|
||||
(i18n/label :t/ens-terms-point-9 {:address contract})]
|
||||
[react/view {:style {:align-items :center :margin-top 16 :margin-bottom 8}}
|
||||
[link {:on-press #(.openURL ^js react/linking (etherscan-url contract))}
|
||||
(i18n/label :t/etherscan-lookup)]]
|
||||
[term-point
|
||||
(i18n/label :t/ens-terms-point-10)]
|
||||
[react/view {:style {:align-items :center :margin-top 16 :margin-bottom 8}}
|
||||
[link
|
||||
{:on-press #(.openURL ^js react/linking (etherscan-url (:mainnet utils.ens/ens-registries)))}
|
||||
(i18n/label :t/etherscan-lookup)]]]]))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; NAME DETAILS SCREEN
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(def release-instructions-link "https://our.status.im/managing-your-ens-name-in-v1/")
|
||||
|
||||
(defn open-release-instructions-link!
|
||||
[]
|
||||
(.openURL ^js react/linking release-instructions-link))
|
||||
|
||||
(views/defview name-details
|
||||
[]
|
||||
(views/letsubs [{:keys [name address custom-domain? public-key
|
||||
expiration-date releasable? pending?]}
|
||||
[:ens.name/screen]]
|
||||
[react/view {:style {:flex 1}}
|
||||
[topbar/topbar {:title name}]
|
||||
[react/scroll-view {:style {:flex 1}}
|
||||
(when-not custom-domain?
|
||||
[react/view {:style {:flex 1 :margin-horizontal 16}}
|
||||
[react/view {:flex-direction :row :align-items :center :margin-top 20}
|
||||
[react/view {:style {:margin-right 16}}
|
||||
[components.common/logo
|
||||
{:size 40
|
||||
:icon-size 16}]]
|
||||
[react/text {:style {:typography :title}}
|
||||
(if pending?
|
||||
(i18n/label :t/ens-transaction-pending)
|
||||
(str (i18n/label :t/ens-10-SNT) ", deposit unlocked"))]]])
|
||||
[react/view {:style {:margin-top 22}}
|
||||
(when-not pending?
|
||||
[section
|
||||
{:title (i18n/label :t/wallet-address)
|
||||
:content (address/normalized-hex address)}])
|
||||
(when-not pending?
|
||||
[react/view {:style {:margin-top 14}}
|
||||
[section
|
||||
{:title (i18n/label :t/key)
|
||||
:content public-key}]])
|
||||
[react/view {:style {:margin-top 16 :margin-bottom 32}}
|
||||
;;TODO this is temporary fix for accounts with failed txs we still need this for regular ens
|
||||
;;names (not pending) but we need to detach public key in the contract
|
||||
(when pending?
|
||||
[list.item/list-item
|
||||
{:title (i18n/label :t/ens-remove-username)
|
||||
;:subtext (i18n/label :t/ens-remove-hints)
|
||||
:icon :main-icons/close
|
||||
:theme :negative
|
||||
:on-press #(re-frame/dispatch [::ens/remove-username name])}])
|
||||
(when (and (not custom-domain?) (not pending?))
|
||||
[react/view {:style {:margin-top 18}}
|
||||
[list.item/list-item
|
||||
{:title (i18n/label :t/ens-release-username)
|
||||
:theme :accent
|
||||
:disabled (not releasable?)
|
||||
:subtitle (when (and expiration-date
|
||||
(not releasable?))
|
||||
(i18n/label :t/ens-locked
|
||||
{:date expiration-date}))
|
||||
:icon :main-icons/delete
|
||||
:on-press #(open-release-instructions-link!)}]])]]]]))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; WELCOME SCREEN
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defn- welcome-item
|
||||
[{:keys [icon-label title]} content]
|
||||
[react/view
|
||||
{:style {:flex 1
|
||||
:margin-top 24
|
||||
:margin-left 16
|
||||
:flex-direction :row}}
|
||||
[react/view
|
||||
{:style {:height 40
|
||||
:width 40
|
||||
:border-radius 25
|
||||
:border-width 1
|
||||
:border-color colors/gray-lighter
|
||||
:align-items :center
|
||||
:justify-content :center}}
|
||||
[react/text {:style {:typography :title}}
|
||||
icon-label]]
|
||||
[react/view
|
||||
{:style {:flex 1
|
||||
:margin-horizontal 16}}
|
||||
[react/text
|
||||
{:style {:font-size 15
|
||||
:typography :main-semibold}}
|
||||
title]
|
||||
content]])
|
||||
|
||||
(defn- welcome
|
||||
[]
|
||||
(let [name (:name @(re-frame/subscribe [:profile/profile]))]
|
||||
[react/view {:style {:flex 1}}
|
||||
[react/scroll-view {:content-container-style {:align-items :center}}
|
||||
[react/image
|
||||
{:source (resources/get-theme-image :ens-header)
|
||||
:style {:margin-top 32}}]
|
||||
[react/text {:style {:margin-top 32 :margin-bottom 8 :typography :header}}
|
||||
(i18n/label :t/ens-get-name)]
|
||||
[react/text
|
||||
{:style {:margin-top 8
|
||||
:margin-bottom 24
|
||||
:color colors/gray
|
||||
:font-size 15
|
||||
:margin-horizontal 16
|
||||
:text-align :center}}
|
||||
(i18n/label :t/ens-welcome-hints)]
|
||||
[welcome-item {:icon-label "1" :title (i18n/label :t/ens-welcome-point-customize-title)}
|
||||
[react/view {:flex-direction :row}
|
||||
[react/text
|
||||
{:style {:color colors/gray}}
|
||||
(i18n/label :t/ens-welcome-point-customize {:name name})]]]
|
||||
[welcome-item {:icon-label "2" :title (i18n/label :t/ens-welcome-point-simplify-title)}
|
||||
[react/text {:style {:color colors/gray}}
|
||||
(i18n/label :t/ens-welcome-point-simplify)]]
|
||||
[welcome-item {:icon-label "3" :title (i18n/label :t/ens-welcome-point-receive-title)}
|
||||
[react/text {:style {:color colors/gray}}
|
||||
(i18n/label :t/ens-welcome-point-receive)]]
|
||||
[welcome-item {:icon-label "4" :title (i18n/label :t/ens-welcome-point-register-title)}
|
||||
[react/text {:style {:color colors/gray}}
|
||||
(i18n/label :t/ens-welcome-point-register)]]
|
||||
[welcome-item {:icon-label "@" :title (i18n/label :t/ens-welcome-point-verify-title)}
|
||||
[react/text {:style {:color colors/gray}}
|
||||
(i18n/label :t/ens-welcome-point-verify)]]
|
||||
[react/text
|
||||
{:style
|
||||
{:margin-top 16 :text-align :center :color colors/gray :typography :caption :padding-bottom 96}}
|
||||
(i18n/label :t/ens-powered-by)]]
|
||||
[toolbar/toolbar
|
||||
{:show-border? true
|
||||
:right [quo/button
|
||||
{:on-press #(re-frame/dispatch [::ens/get-started-pressed])
|
||||
:type :secondary
|
||||
:after :main-icons/next}
|
||||
(i18n/label :t/get-started)]}]]))
|
||||
|
||||
(defn- name-item
|
||||
[{:keys [name action subtitle]}]
|
||||
(let [stateofus-username (stateofus/username name)
|
||||
s (or stateofus-username name)]
|
||||
[list.item/list-item
|
||||
(merge {:title s
|
||||
:subtitle (if subtitle
|
||||
subtitle
|
||||
(when stateofus-username stateofus/domain))
|
||||
:icon :main-icons/username}
|
||||
(when action
|
||||
{:on-press action}))]))
|
||||
|
||||
(defn- name-list
|
||||
[names preferred-name]
|
||||
[react/view {:style {:flex 1 :margin-top 16}}
|
||||
[react/view {:style {:margin-horizontal 16 :align-items :center :justify-content :center}}
|
||||
[react/nested-text
|
||||
{:style {:color colors/gray}}
|
||||
(i18n/label :t/ens-displayed-with)
|
||||
[{:style {:color colors/black :text-align :center}}
|
||||
(str "\n@" preferred-name)]]]
|
||||
[react/view {:style {:flex 1 :margin-top 8}}
|
||||
(for [name names]
|
||||
(let [action #(do (re-frame/dispatch [::ens/save-preferred-name name])
|
||||
(re-frame/dispatch [:bottom-sheet/hide-old]))
|
||||
stateofus-username (stateofus/username name)
|
||||
s (or stateofus-username name)]
|
||||
^{:key name}
|
||||
[list.item/list-item
|
||||
{:accessibility-label (if (= name preferred-name)
|
||||
:primary-username
|
||||
:not-primary-username)
|
||||
:title s
|
||||
:subtitle (when stateofus-username stateofus/domain)
|
||||
:icon :main-icons/username
|
||||
:on-press action
|
||||
:accessory :radio
|
||||
:active (= name preferred-name)}]))]])
|
||||
|
||||
(views/defview in-progress-registrations
|
||||
[registrations]
|
||||
[react/view {:style {:margin-top 8}}
|
||||
(for [[tx-hash {:keys [state username]}] registrations
|
||||
:when (or (= state :submitted) (= state :failure))]
|
||||
^{:key tx-hash}
|
||||
[name-item
|
||||
{:name username
|
||||
:action (when-not (= state :submitted)
|
||||
#(re-frame/dispatch [:ens/clear-registration tx-hash]))
|
||||
:subtitle (case state
|
||||
:submitted (i18n/label :t/ens-registration-in-progress)
|
||||
:failure (i18n/label :t/ens-registration-failure)
|
||||
nil)}])])
|
||||
|
||||
(views/defview my-name
|
||||
[]
|
||||
(views/letsubs [contact-name [:multiaccount/preferred-name]]
|
||||
(when-not (string/blank? contact-name)
|
||||
(chat.utils/format-author-old {:primary-name
|
||||
(str "@"
|
||||
(or (stateofus/username contact-name)
|
||||
contact-name))}))))
|
||||
|
||||
(views/defview registered
|
||||
[names {:keys [preferred-name]} _ registrations]
|
||||
[react/view {:style {:flex 1}}
|
||||
[react/scroll-view
|
||||
[react/view {:style {:margin-top 8}}
|
||||
[list.item/list-item
|
||||
{:title (i18n/label :t/ens-add-username)
|
||||
:theme :accent
|
||||
:on-press #(re-frame/dispatch [::ens/add-username-pressed])
|
||||
:icon :main-icons/add}]]
|
||||
[react/view {:style {:margin-top 22 :margin-bottom 8}}
|
||||
[react/text {:style {:color colors/gray :margin-horizontal 16}}
|
||||
(i18n/label :t/ens-your-usernames)]
|
||||
(when registrations
|
||||
[in-progress-registrations registrations])
|
||||
(if (seq names)
|
||||
[react/view {:style {:margin-top 8}}
|
||||
(for [name names]
|
||||
^{:key name}
|
||||
[name-item
|
||||
{:name name
|
||||
:action #(re-frame/dispatch [::ens/navigate-to-name name])}])]
|
||||
[react/text
|
||||
{:style {:color colors/gray
|
||||
:font-size 15
|
||||
:margin-horizontal 16}}
|
||||
(i18n/label :t/ens-no-usernames)])]
|
||||
[react/view {:style {:padding-vertical 22 :border-color colors/gray-lighter :border-top-width 1}}
|
||||
(when (> (count names) 1)
|
||||
[react/view
|
||||
[react/text {:style {:color colors/gray :margin-horizontal 16}}
|
||||
(i18n/label :t/ens-chat-settings)]
|
||||
[profile.components/settings-item
|
||||
{:label-kw :ens-primary-username
|
||||
:value preferred-name
|
||||
:action-fn #(re-frame/dispatch [:show-bottom-sheet
|
||||
{:content
|
||||
(fn [] (name-list names preferred-name))}])}]])]]])
|
||||
|
||||
(views/defview main
|
||||
[]
|
||||
(views/letsubs [{:keys [names profile/profile show? registrations]} [:ens.main/screen]]
|
||||
[react/keyboard-avoiding-view {:style {:flex 1}}
|
||||
(if (or (seq names) registrations)
|
||||
[registered names profile show? registrations]
|
||||
[welcome])]))
|
||||
@@ -3,7 +3,9 @@
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.list.views :as list]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[utils.i18n :as i18n]))
|
||||
[quo.core :as quo]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(def messages
|
||||
[{:title :t/account-title
|
||||
@@ -56,10 +58,17 @@
|
||||
(map (fn [[k v]]
|
||||
{:title k
|
||||
:data v})))]
|
||||
[list/section-list
|
||||
{:contentContainerStyle {:padding-horizontal 16
|
||||
:padding-bottom 16}
|
||||
:stickySectionHeadersEnabled true
|
||||
:sections sections
|
||||
:render-fn render-element
|
||||
:render-section-header-fn render-section-header}]))
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :title
|
||||
:title (i18n/label :t/glossary)
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[list/section-list
|
||||
{:contentContainerStyle {:padding-horizontal 16
|
||||
:padding-bottom 16}
|
||||
:stickySectionHeadersEnabled true
|
||||
:sections sections
|
||||
:render-fn render-element
|
||||
:render-section-header-fn render-section-header}]]))
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.group.styles
|
||||
(:require
|
||||
[legacy.status-im.ui.components.colors :as colors]))
|
||||
|
||||
(def group-container
|
||||
{:flex 1
|
||||
:flex-direction :column})
|
||||
|
||||
(defn no-contact-text
|
||||
[]
|
||||
{:margin-bottom 20
|
||||
:margin-horizontal 50
|
||||
:text-align :center
|
||||
:color colors/gray})
|
||||
|
||||
(def no-contacts
|
||||
{:flex 1
|
||||
:justify-content :center
|
||||
:align-items :center})
|
||||
|
||||
(defn search-container
|
||||
[]
|
||||
{:border-bottom-color colors/gray-lighter
|
||||
:border-bottom-width 1
|
||||
:padding-horizontal 16
|
||||
:padding-vertical 10})
|
||||
|
||||
(defn members-title
|
||||
[]
|
||||
{:color colors/gray
|
||||
:margin-top 14
|
||||
:margin-bottom 4})
|
||||
@@ -1,196 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.group.views
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[legacy.status-im.ui.components.chat-icon.screen :as chat-icon]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.invite.views :as invite]
|
||||
[legacy.status-im.ui.components.keyboard-avoid-presentation :as kb-presentation]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.list.views :as list]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.components.search-input.view :as search]
|
||||
[legacy.status-im.ui.components.toolbar :as toolbar]
|
||||
[legacy.status-im.ui.components.topbar :as topbar]
|
||||
[legacy.status-im.ui.screens.group.styles :as styles]
|
||||
[re-frame.core :as re-frame]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.constants :as constants]
|
||||
[utils.debounce :as debounce]
|
||||
[utils.i18n :as i18n])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(defn- render-contact
|
||||
[row]
|
||||
(let [{:keys [primary-name secondary-name]} row]
|
||||
[list.item/list-item
|
||||
{:title primary-name
|
||||
:subtitle secondary-name
|
||||
:icon [chat-icon/contact-icon-contacts-tab row]}]))
|
||||
|
||||
(defn- on-toggle-participant
|
||||
[allow-new-users? checked? public-key]
|
||||
(cond
|
||||
|
||||
checked?
|
||||
(re-frame/dispatch [:deselect-participant public-key allow-new-users?])
|
||||
|
||||
;; Only allow new users if not reached the maximum
|
||||
(and (not checked?)
|
||||
allow-new-users?)
|
||||
(re-frame/dispatch [:select-participant public-key allow-new-users?])))
|
||||
|
||||
(defn- toggle-item
|
||||
[]
|
||||
(fn [allow-new-users? subs-name {:keys [public-key] :as contact} on-toggle]
|
||||
(let [contact-selected? @(re-frame/subscribe [subs-name public-key])
|
||||
{:keys [primary-name secondary-name]} contact]
|
||||
[list.item/list-item
|
||||
{:title primary-name
|
||||
:subtitle secondary-name
|
||||
:icon [chat-icon/contact-icon-contacts-tab contact]
|
||||
:on-press #(on-toggle allow-new-users? contact-selected? public-key)
|
||||
:active contact-selected?
|
||||
:accessory :checkbox}])))
|
||||
|
||||
(defn- group-toggle-participant
|
||||
[contact _ _ allow-new-users?]
|
||||
[toggle-item allow-new-users? :is-participant-selected? contact on-toggle-participant])
|
||||
|
||||
(defn toggle-list
|
||||
[{:keys [contacts render-fn render-data]}]
|
||||
[list/flat-list
|
||||
{:data contacts
|
||||
:key-fn :public-key
|
||||
:render-data render-data
|
||||
:render-fn render-fn
|
||||
:keyboard-should-persist-taps :always}])
|
||||
|
||||
(defn no-contacts-view
|
||||
[{:keys [no-contacts]}]
|
||||
[react/view {:style styles/no-contacts}
|
||||
[react/text
|
||||
{:style (styles/no-contact-text)}
|
||||
no-contacts]
|
||||
[invite/button]])
|
||||
|
||||
(defn filter-contacts
|
||||
[filter-text contacts]
|
||||
(let [lower-filter-text (string/lower-case (str filter-text))
|
||||
filter-fn (fn [{:keys [name alias nickname]}]
|
||||
(or
|
||||
(string/includes? (string/lower-case (str name)) lower-filter-text)
|
||||
(string/includes? (string/lower-case (str alias)) lower-filter-text)
|
||||
(when nickname
|
||||
(string/includes? (string/lower-case (str nickname))
|
||||
lower-filter-text))))]
|
||||
(if filter-text
|
||||
(filter filter-fn contacts)
|
||||
contacts)))
|
||||
|
||||
;; Set name of new group-chat
|
||||
(views/defview new-group
|
||||
[]
|
||||
(views/letsubs [contacts [:selected-group-contacts]
|
||||
group-name [:new-chat-name]]
|
||||
(let [group-name-empty? (not (and (string? group-name) (not-empty group-name)))]
|
||||
[react/keyboard-avoiding-view
|
||||
{:style styles/group-container
|
||||
:ignore-offset true}
|
||||
[react/view {:flex 1}
|
||||
[topbar/topbar
|
||||
{:use-insets false
|
||||
:title (i18n/label :t/new-group-chat)
|
||||
:subtitle (i18n/label :t/group-chat-members-count
|
||||
{:selected (inc (count contacts))
|
||||
:max constants/max-group-chat-participants})}]
|
||||
[react/view
|
||||
{:style {:padding-top 16
|
||||
:flex 1}}
|
||||
[react/view {:style {:padding-horizontal 16}}
|
||||
[quo/text-input
|
||||
{:auto-focus true
|
||||
:on-change-text #(re-frame/dispatch [:set :new-chat-name %])
|
||||
:default-value group-name
|
||||
:placeholder (i18n/label :t/set-a-topic)
|
||||
:accessibility-label :chat-name-input}]
|
||||
[react/text {:style (styles/members-title)}
|
||||
(i18n/label :t/members-title)]]
|
||||
[react/view
|
||||
{:style {:margin-top 8
|
||||
:flex 1}}
|
||||
[list/flat-list
|
||||
{:data contacts
|
||||
:key-fn :address
|
||||
:render-fn render-contact
|
||||
:bounces false
|
||||
:keyboard-should-persist-taps :always
|
||||
:enable-empty-sections true}]]]
|
||||
[toolbar/toolbar
|
||||
{:show-border? true
|
||||
:left
|
||||
[quo/button
|
||||
{:type :secondary
|
||||
:before :main-icon/back
|
||||
:accessibility-label :previous-button
|
||||
:on-press #(re-frame/dispatch [:navigate-back])}
|
||||
(i18n/label :t/back)]
|
||||
:right
|
||||
[quo/button
|
||||
{:type :secondary
|
||||
:accessibility-label :create-group-chat-button
|
||||
:disabled group-name-empty?
|
||||
:on-press #(debounce/throttle-and-dispatch [:group-chats.ui/create-pressed
|
||||
group-name]
|
||||
300)}
|
||||
(i18n/label :t/create-group-chat)]}]]])))
|
||||
|
||||
(defn searchable-contact-list
|
||||
[]
|
||||
(let [search-value (reagent/atom nil)]
|
||||
(fn [{:keys [contacts no-contacts-label toggle-fn allow-new-users?]}]
|
||||
[react/view {:style {:flex 1}}
|
||||
[react/view {:style (styles/search-container)}
|
||||
[search/search-input-old
|
||||
{:on-cancel #(reset! search-value nil)
|
||||
:on-change #(reset! search-value %)}]]
|
||||
[react/view
|
||||
{:style {:flex 1
|
||||
:padding-vertical 8}}
|
||||
(if (seq contacts)
|
||||
[toggle-list
|
||||
{:contacts (filter-contacts @search-value contacts)
|
||||
:render-data allow-new-users?
|
||||
:render-fn toggle-fn}]
|
||||
[no-contacts-view {:no-contacts no-contacts-label}])]])))
|
||||
|
||||
;; Add participants to existing group chat
|
||||
(views/defview add-participants-toggle-list
|
||||
[]
|
||||
(views/letsubs [contacts [:contacts/all-contacts-not-in-current-chat]
|
||||
current-chat [:chats/current-chat]
|
||||
selected-contacts-count [:selected-participants-count]]
|
||||
(let [current-participants-count (count (:contacts current-chat))]
|
||||
[kb-presentation/keyboard-avoiding-view {:style styles/group-container}
|
||||
[topbar/topbar
|
||||
{:use-insets false
|
||||
:border-bottom false
|
||||
:title (i18n/label :t/add-members)
|
||||
:subtitle (i18n/label :t/group-chat-members-count
|
||||
{:selected (+ current-participants-count selected-contacts-count)
|
||||
:max constants/max-group-chat-participants})}]
|
||||
[searchable-contact-list
|
||||
{:contacts contacts
|
||||
:no-contacts-label (i18n/label :t/group-chat-all-contacts-invited)
|
||||
:toggle-fn group-toggle-participant
|
||||
:allow-new-users? (< (+ current-participants-count
|
||||
selected-contacts-count)
|
||||
constants/max-group-chat-participants)}]
|
||||
[toolbar/toolbar
|
||||
{:show-border? true
|
||||
:center
|
||||
[quo/button
|
||||
{:type :secondary
|
||||
:accessibility-label :next-button
|
||||
:disabled (zero? selected-contacts-count)
|
||||
:on-press #(re-frame/dispatch [:group-chats.ui/add-members-pressed])}
|
||||
(i18n/label :t/add)]}]])))
|
||||
@@ -2,34 +2,33 @@
|
||||
(:require
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.list.views :as list]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[quo.core :as quo]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.constants :as constants]
|
||||
[utils.i18n :as i18n]))
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(def data
|
||||
[{:size :small
|
||||
:title (i18n/label :t/faq)
|
||||
:accessibility-label :faq-button
|
||||
:on-press
|
||||
#(.openURL ^js react/linking constants/faq)
|
||||
:chevron true}
|
||||
{:size :small
|
||||
:title (i18n/label :t/glossary)
|
||||
[{:size :small
|
||||
:title (i18n/label :t/glossary)
|
||||
:accessibility-label :glossary-button
|
||||
:on-press
|
||||
#(re-frame/dispatch [:navigate-to :glossary])
|
||||
:chevron true}
|
||||
{:size :small
|
||||
:title (i18n/label :t/submit-bug)
|
||||
:on-press #(re-frame/dispatch [:open-modal :glossary])
|
||||
:chevron true}
|
||||
{:size :small
|
||||
:title (i18n/label :t/submit-bug)
|
||||
:accessibility-label :submit-bug-button
|
||||
:on-press
|
||||
#(re-frame/dispatch [:open-modal :bug-report])
|
||||
:chevron true}])
|
||||
:on-press #(re-frame/dispatch [:open-modal :bug-report])
|
||||
:chevron true}])
|
||||
|
||||
(defn help-center
|
||||
[]
|
||||
[list/flat-list
|
||||
{:data data
|
||||
:key-fn (fn [_ i] (str i))
|
||||
:render-fn list.item/list-item}])
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :title
|
||||
:title (i18n/label :t/need-help)
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[list/flat-list
|
||||
{:data data
|
||||
:key-fn (fn [_ i] (str i))
|
||||
:render-fn list.item/list-item}]])
|
||||
|
||||
@@ -2,14 +2,16 @@
|
||||
(:require-macros [legacy.status-im.utils.views :as views])
|
||||
(:require
|
||||
[legacy.status-im.react-native.resources :as resources]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.core :as components]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.list.views :as list]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.screens.link-previews-settings.styles :as styles]
|
||||
[quo.core :as quo]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.contexts.chat.messenger.messages.link-preview.events]
|
||||
[utils.i18n :as i18n]))
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn prepare-urls-items-data
|
||||
[link-previews-enabled-sites]
|
||||
@@ -29,18 +31,24 @@
|
||||
link-previews-enabled-sites [:link-preview/enabled-sites]]
|
||||
(let [all-enabled (= (count link-previews-whitelist) (count link-previews-enabled-sites))]
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :title
|
||||
:title (i18n/label :t/chat-link-previews)
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[react/image
|
||||
{:source (resources/get-theme-image :unfurl)
|
||||
:style styles/link-preview-settings-image}]
|
||||
[quo/text {:style {:margin 16}}
|
||||
[components/text {:style {:margin 16}}
|
||||
(i18n/label :t/you-can-choose-preview-websites)]
|
||||
[quo/separator {:style {:margin-vertical 8}}]
|
||||
[components/separator {:style {:margin-vertical 8}}]
|
||||
|
||||
[react/view styles/whitelist-container
|
||||
[quo/list-header (i18n/label :t/websites)]
|
||||
[components/list-header (i18n/label :t/websites)]
|
||||
|
||||
(when (> (count link-previews-whitelist) 1)
|
||||
[quo/button
|
||||
[components/button
|
||||
{:on-press #(re-frame/dispatch [:chat.ui/enable-all-link-previews
|
||||
link-previews-whitelist
|
||||
(not all-enabled)])
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
[legacy.status-im.ui.components.list.views :as list]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.screens.log-level-settings.styles :as styles]
|
||||
[re-frame.core :as re-frame])
|
||||
[quo.core :as quo]
|
||||
[re-frame.core :as re-frame]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(defn- log-level-icon
|
||||
@@ -46,9 +49,16 @@
|
||||
(views/defview log-level-settings
|
||||
[]
|
||||
(views/letsubs [current-log-level [:log-level/current-log-level]]
|
||||
[list/flat-list
|
||||
{:data log-levels
|
||||
:default-separator? false
|
||||
:key-fn :name
|
||||
:render-data current-log-level
|
||||
:render-fn render-row}]))
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :title
|
||||
:title (i18n/label :t/log-level-settings)
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[list/flat-list
|
||||
{:data log-levels
|
||||
:default-separator? false
|
||||
:key-fn :name
|
||||
:render-data current-log-level
|
||||
:render-fn render-row}]]))
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
(ns legacy.status-im.ui.screens.notifications-settings.views
|
||||
(:require
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.core :as components]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[quo.core :as quo]
|
||||
[react-native.platform :as platform]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
@@ -22,10 +23,10 @@
|
||||
:active notifications-enabled?
|
||||
:on-press #(rf/dispatch [:push-notifications/switch (not notifications-enabled?)])
|
||||
:accessory :switch}]
|
||||
[quo/separator
|
||||
[components/separator
|
||||
{:color (:ui-02 @colors/theme)
|
||||
:style {:margin-vertical 8}}]
|
||||
[quo/list-header (i18n/label :t/notifications-preferences)]
|
||||
[components/list-header (i18n/label :t/notifications-preferences)]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/notifications-non-contacts)
|
||||
@@ -61,9 +62,16 @@
|
||||
|
||||
(defn notifications-settings
|
||||
[]
|
||||
[react/scroll-view
|
||||
{:style {:flex 1}
|
||||
:content-container-style {:padding-vertical 8}}
|
||||
(if platform/ios?
|
||||
[notifications-settings-ios]
|
||||
[notifications-settings-android])])
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :title
|
||||
:title (i18n/label :t/notification-settings)
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[react/scroll-view
|
||||
{:style {:flex 1}
|
||||
:content-container-style {:padding-vertical 8}}
|
||||
(if platform/ios?
|
||||
[notifications-settings-ios]
|
||||
[notifications-settings-android])]])
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
[legacy.status-im.ui.components.animation :as anim]
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.screens.profile.user.views :as profile.user]
|
||||
[legacy.status-im.ui.screens.reset-password.views :as reset-password.views]
|
||||
[re-frame.core :as re-frame]
|
||||
[react-native.platform :as platform]
|
||||
@@ -127,9 +126,6 @@
|
||||
(vector? view)
|
||||
view
|
||||
|
||||
(= :share-chat-key view)
|
||||
[profile.user/share-chat-key]
|
||||
|
||||
(= :password-reset-popover view)
|
||||
[reset-password.views/reset-password-popover]
|
||||
|
||||
|
||||
@@ -2,20 +2,21 @@
|
||||
(:require
|
||||
[legacy.status-im.multiaccounts.reset-password.core :as reset-password]
|
||||
[legacy.status-im.multiaccounts.update.core :as multiaccounts.update]
|
||||
[legacy.status-im.ui.components.common.common :as components.common]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.core :as components]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[quo.core :as quo]
|
||||
[re-frame.core :as re-frame]
|
||||
[react-native.platform :as platform]
|
||||
[status-im.config :as config]
|
||||
[status-im.constants :as constants]
|
||||
[utils.i18n :as i18n])
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(defn separator
|
||||
[]
|
||||
[quo/separator {:style {:margin-vertical 8}}])
|
||||
[components/separator {:style {:margin-vertical 8}}])
|
||||
|
||||
(def titles
|
||||
{constants/profile-pictures-visibility-contacts-only (i18n/label :t/recent-recipients)
|
||||
@@ -27,8 +28,7 @@
|
||||
|
||||
(views/defview privacy-and-security
|
||||
[]
|
||||
(views/letsubs [{:keys [mnemonic
|
||||
preview-privacy?
|
||||
(views/letsubs [{:keys [preview-privacy?
|
||||
messages-from-contacts-only
|
||||
webview-allow-permission-requests?
|
||||
opensea-enabled?
|
||||
@@ -36,110 +36,107 @@
|
||||
[:profile/profile]
|
||||
has-picture [:profile/has-picture]
|
||||
profile-pictures-show-to [:multiaccount/profile-pictures-show-to]]
|
||||
[react/scroll-view {:padding-vertical 8}
|
||||
[quo/list-header (i18n/label :t/security)]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/back-up-seed-phrase)
|
||||
:accessibility-label :back-up-recovery-phrase-button
|
||||
:disabled (not mnemonic)
|
||||
:chevron (boolean mnemonic)
|
||||
:accessory (when mnemonic [components.common/counter {:size 22} 1])
|
||||
:on-press #(re-frame/dispatch [:navigate-to :backup-seed])}]
|
||||
[separator]
|
||||
[quo/list-header (i18n/label :t/privacy)]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/set-dapp-access-permissions)
|
||||
:on-press #(re-frame/dispatch [:navigate-to :dapps-permissions])
|
||||
:accessibility-label :dapps-permissions-button
|
||||
:chevron true}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (if platform/android?
|
||||
(i18n/label :t/hide-content-when-switching-apps)
|
||||
(i18n/label :t/hide-content-when-switching-apps-ios))
|
||||
:container-margin-bottom 8
|
||||
:active preview-privacy?
|
||||
:accessory :switch
|
||||
:on-press #(re-frame/dispatch
|
||||
[:profile.settings/change-preview-privacy
|
||||
((complement boolean) preview-privacy?)])}]
|
||||
(when config/collectibles-enabled?
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/display-collectibles)
|
||||
:container-margin-bottom 8
|
||||
:active opensea-enabled?
|
||||
:accessory :switch
|
||||
:on-press #(re-frame/dispatch
|
||||
[::multiaccounts.update/toggle-opensea-nfts-visiblity
|
||||
(not opensea-enabled?)])}])
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/chat-link-previews)
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:navigate-to :link-previews-settings])
|
||||
:accessibility-label :chat-link-previews}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/accept-new-chats-from)
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:accessory-text (i18n/label (if messages-from-contacts-only
|
||||
:t/contacts
|
||||
:t/anyone))
|
||||
:on-press #(re-frame/dispatch [:navigate-to :messages-from-contacts-only])
|
||||
:accessibility-label :accept-new-chats-from}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/reset-password)
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:on-press #(do
|
||||
(re-frame/dispatch [::reset-password/clear-form-vals])
|
||||
(re-frame/dispatch [:navigate-to :reset-password]))
|
||||
:accessibility-label :reset-password}]
|
||||
(when platform/android?
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/webview-camera-permission-requests)
|
||||
:active webview-allow-permission-requests?
|
||||
:accessory :switch
|
||||
:subtitle (i18n/label :t/webview-camera-permission-requests-subtitle)
|
||||
:subtitle-max-lines 2
|
||||
:on-press #(re-frame/dispatch
|
||||
[:profile.settings/profile-update
|
||||
:webview-allow-permission-requests?
|
||||
((complement boolean) webview-allow-permission-requests?)])}])
|
||||
[separator]
|
||||
[quo/list-header (i18n/label :t/privacy-photos)]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/show-profile-pictures)
|
||||
:accessibility-label :show-profile-pictures
|
||||
:accessory :text
|
||||
:accessory-text (get titles profile-pictures-visibility)
|
||||
:on-press #(re-frame/dispatch [:navigate-to :privacy-and-security-profile-pic])
|
||||
:chevron true}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/show-profile-pictures-to)
|
||||
:disabled (not has-picture)
|
||||
:accessibility-label :show-profile-pictures-to
|
||||
:accessory :text
|
||||
:accessory-text (get titles profile-pictures-show-to)
|
||||
:on-press #(re-frame/dispatch [:navigate-to :privacy-and-security-profile-pic-show-to])
|
||||
:chevron true}]
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :no-title
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[react/scroll-view {:padding-vertical 8}
|
||||
[components/list-header (i18n/label :t/privacy)]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/set-dapp-access-permissions)
|
||||
:on-press #(re-frame/dispatch [:navigate-to :dapps-permissions])
|
||||
:accessibility-label :dapps-permissions-button
|
||||
:chevron true}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (if platform/android?
|
||||
(i18n/label :t/hide-content-when-switching-apps)
|
||||
(i18n/label :t/hide-content-when-switching-apps-ios))
|
||||
:container-margin-bottom 8
|
||||
:active preview-privacy?
|
||||
:accessory :switch
|
||||
:on-press #(re-frame/dispatch
|
||||
[:profile.settings/change-preview-privacy
|
||||
((complement boolean) preview-privacy?)])}]
|
||||
(when config/collectibles-enabled?
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/display-collectibles)
|
||||
:container-margin-bottom 8
|
||||
:active opensea-enabled?
|
||||
:accessory :switch
|
||||
:on-press #(re-frame/dispatch
|
||||
[::multiaccounts.update/toggle-opensea-nfts-visiblity
|
||||
(not opensea-enabled?)])}])
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/chat-link-previews)
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :legacy-link-previews-settings])
|
||||
:accessibility-label :chat-link-previews}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/accept-new-chats-from)
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:accessory-text (i18n/label (if messages-from-contacts-only
|
||||
:t/contacts
|
||||
:t/anyone))
|
||||
:on-press #(re-frame/dispatch [:navigate-to :messages-from-contacts-only])
|
||||
:accessibility-label :accept-new-chats-from}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/reset-password)
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:on-press #(do
|
||||
(re-frame/dispatch [::reset-password/clear-form-vals])
|
||||
(re-frame/dispatch [:navigate-to :reset-password]))
|
||||
:accessibility-label :reset-password}]
|
||||
(when platform/android?
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/webview-camera-permission-requests)
|
||||
:active webview-allow-permission-requests?
|
||||
:accessory :switch
|
||||
:subtitle (i18n/label :t/webview-camera-permission-requests-subtitle)
|
||||
:subtitle-max-lines 2
|
||||
:on-press #(re-frame/dispatch
|
||||
[:profile.settings/profile-update
|
||||
:webview-allow-permission-requests?
|
||||
((complement boolean) webview-allow-permission-requests?)])}])
|
||||
[separator]
|
||||
[components/list-header (i18n/label :t/privacy-photos)]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/show-profile-pictures)
|
||||
:accessibility-label :show-profile-pictures
|
||||
:accessory :text
|
||||
:accessory-text (get titles profile-pictures-visibility)
|
||||
:on-press #(re-frame/dispatch [:navigate-to :privacy-and-security-profile-pic])
|
||||
:chevron true}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/show-profile-pictures-to)
|
||||
:disabled (not has-picture)
|
||||
:accessibility-label :show-profile-pictures-to
|
||||
:accessory :text
|
||||
:accessory-text (get titles profile-pictures-show-to)
|
||||
:on-press #(re-frame/dispatch [:navigate-to
|
||||
:privacy-and-security-profile-pic-show-to])
|
||||
:chevron true}]
|
||||
|
||||
[separator]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:theme :negative
|
||||
:title (i18n/label :t/delete-my-profile)
|
||||
:on-press #(re-frame/dispatch [:navigate-to :delete-profile])
|
||||
:accessibility-label :dapps-permissions-button
|
||||
:chevron true}]]))
|
||||
[separator]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:theme :negative
|
||||
:title (i18n/label :t/delete-my-profile)
|
||||
:on-press #(re-frame/dispatch [:navigate-to :delete-profile])
|
||||
:accessibility-label :dapps-permissions-button
|
||||
:chevron true}]]]))
|
||||
|
||||
(defn ppst-radio-item
|
||||
[id value]
|
||||
@@ -158,7 +155,7 @@
|
||||
[ppst-radio-item constants/profile-pictures-show-to-none profile-pictures-show-to]
|
||||
|
||||
[react/view {:style {:margin-horizontal 16}}
|
||||
[quo/text {:color :secondary}
|
||||
[components/text {:color :secondary}
|
||||
(i18n/label :t/privacy-show-to-warning)]]]))
|
||||
|
||||
(defn ppvf-radio-item
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.profile.contact.styles
|
||||
(:require
|
||||
[legacy.status-im.ui.components.colors :as colors]))
|
||||
|
||||
(def block-action-label
|
||||
{:color colors/red
|
||||
:margin-top 26
|
||||
:margin-bottom 50
|
||||
:margin-left 16})
|
||||
|
||||
(def contact-profile-details-container
|
||||
{:padding-top 26})
|
||||
|
||||
(def contact-profile-detail-share-icon
|
||||
{:color colors/gray-transparent-40})
|
||||
|
||||
(defn updates-descr-cont
|
||||
[]
|
||||
{:border-width 1
|
||||
:border-color colors/gray-lighter
|
||||
:border-top-right-radius 16
|
||||
:border-bottom-left-radius 16
|
||||
:border-top-left-radius 16
|
||||
:border-bottom-right-radius 4
|
||||
:padding-horizontal 12
|
||||
:padding-vertical 6})
|
||||
@@ -1,227 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.profile.contact.views
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.keyboard-avoid-presentation :as kb-presentation]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.profile-header.view :as profile-header]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.components.toolbar :as toolbar]
|
||||
[legacy.status-im.ui.components.topbar :as topbar]
|
||||
[legacy.status-im.ui.screens.profile.components.sheets :as sheets]
|
||||
[quo.components.avatars.user-avatar.style :as user-avatar.style]
|
||||
[quo.theme]
|
||||
[re-frame.core :as re-frame]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.constants :as constants]
|
||||
[status-im.contexts.profile.utils :as profile.utils]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn actions
|
||||
[{:keys [public-key added? blocked? ens-name mutual?] :as profile} muted?]
|
||||
(concat [{:label (i18n/label :t/chat)
|
||||
:icon :main-icons/message
|
||||
:disabled (not mutual?)
|
||||
:action #(re-frame/dispatch [:chat.ui/start-chat
|
||||
public-key
|
||||
ens-name])
|
||||
:accessibility-label :start-conversation-button}]
|
||||
(if added?
|
||||
[{:label (i18n/label :t/remove-from-contacts)
|
||||
:icon :main-icons/remove-contact
|
||||
:selected true
|
||||
:accessibility-label :in-contacts-button
|
||||
:action #(re-frame/dispatch [:contact.ui/remove-contact-pressed profile])}]
|
||||
[{:label (i18n/label :t/add-to-contacts)
|
||||
:icon :main-icons/add-contact
|
||||
:disabled blocked?
|
||||
:accessibility-label :add-to-contacts-button
|
||||
:action (when-not blocked?
|
||||
(fn []
|
||||
(re-frame/dispatch [:contact.ui/send-contact-request
|
||||
public-key])))}])
|
||||
[{:label (i18n/label (if (or muted? blocked?) :t/unmute :t/mute))
|
||||
:icon :main-icons/notification
|
||||
:accessibility-label :mute-chat
|
||||
:selected muted?
|
||||
:disabled blocked?
|
||||
:action (when-not blocked?
|
||||
#(re-frame/dispatch [:chat.ui/mute public-key (not muted?)
|
||||
(when-not muted?
|
||||
constants/mute-till-unmuted)]))}]
|
||||
[{:label (i18n/label (if blocked? :t/unblock :t/block))
|
||||
:negative true
|
||||
:selected blocked?
|
||||
:icon :main-icons/cancel
|
||||
:action (if blocked?
|
||||
#(re-frame/dispatch [:contact/unblock-contact public-key])
|
||||
#(re-frame/dispatch [:show-popover
|
||||
{:view sheets/block-contact
|
||||
:prevent-closing? true
|
||||
:public-key public-key}]))
|
||||
:accessibility-label (if blocked?
|
||||
:unblock-contact
|
||||
:block-contact)}]))
|
||||
|
||||
(defn pin-settings
|
||||
[public-key pin-count]
|
||||
[list.item/list-item
|
||||
{:title (i18n/label :t/pinned-messages)
|
||||
:size :small
|
||||
:accessibility-label :pinned-messages-item
|
||||
:accessory :text
|
||||
:accessory-text pin-count
|
||||
:disabled (zero? pin-count)
|
||||
:on-press #(rf/dispatch [:pin-message/show-pins-bottom-sheet public-key])
|
||||
:chevron true}])
|
||||
|
||||
(defn nickname-settings
|
||||
[{:keys [nickname]}]
|
||||
[list.item/list-item
|
||||
{:title (i18n/label :t/nickname)
|
||||
:size :small
|
||||
:accessibility-label :profile-nickname-item
|
||||
:accessory :text
|
||||
:accessory-text (or nickname (i18n/label :t/none))
|
||||
:on-press #(re-frame/dispatch [:open-modal :nickname])
|
||||
:chevron true}])
|
||||
|
||||
(defn save-nickname
|
||||
[public-key nickname]
|
||||
(re-frame/dispatch [:contacts/update-nickname public-key nickname])
|
||||
(re-frame/dispatch [:navigate-back]))
|
||||
|
||||
(defn valid-nickname?
|
||||
[nickname]
|
||||
(not (string/blank? nickname)))
|
||||
|
||||
(defn- nickname-input
|
||||
[nickname entered-nickname public-key]
|
||||
[quo/text-input
|
||||
{:on-change-text #(reset! entered-nickname %)
|
||||
:on-submit-editing #(when (valid-nickname? @entered-nickname)
|
||||
(save-nickname public-key @entered-nickname))
|
||||
:auto-capitalize :none
|
||||
:auto-focus false
|
||||
:max-length constants/profile-name-max-length
|
||||
:accessibility-label :nickname-input
|
||||
:default-value nickname
|
||||
:placeholder (i18n/label :t/nickname)
|
||||
:return-key-type :done
|
||||
:auto-correct false}])
|
||||
|
||||
(defn nickname-view
|
||||
[]
|
||||
(let [{:keys [public-key nickname] :as profile} (rf/sub [:contacts/current-contact])
|
||||
entered-nickname (reagent/atom nickname)]
|
||||
(fn []
|
||||
[kb-presentation/keyboard-avoiding-view
|
||||
{:style {:flex 1}
|
||||
:ignore-offset true}
|
||||
[topbar/topbar
|
||||
{:title (i18n/label :t/nickname)
|
||||
:subtitle (profile.utils/displayed-name profile)
|
||||
:modal? true}]
|
||||
[react/view {:flex 1 :padding 16}
|
||||
[react/text {:style {:color colors/gray :margin-bottom 16}}
|
||||
(i18n/label :t/nickname-description)]
|
||||
[nickname-input nickname entered-nickname public-key]
|
||||
[react/text
|
||||
{:style {:align-self :flex-end
|
||||
:margin-top 16
|
||||
:color colors/gray}}
|
||||
(str (count @entered-nickname) " / " constants/profile-name-max-length)]]
|
||||
[toolbar/toolbar
|
||||
{:show-border? true
|
||||
:center
|
||||
[quo/button
|
||||
{:type :secondary
|
||||
:on-press #(save-nickname public-key @entered-nickname)}
|
||||
(i18n/label :t/done)]}]])))
|
||||
|
||||
(defn button-item
|
||||
[{:keys [icon label action selected disabled negative]}]
|
||||
[react/touchable-highlight
|
||||
{:on-press action
|
||||
:disabled disabled
|
||||
:style {:flex 1}
|
||||
:accessibility-label (str label "-item-button")}
|
||||
[react/view {:flex 1 :align-items :center}
|
||||
[list.item/icon-column
|
||||
{:icon icon
|
||||
:size :small
|
||||
:icon-bg-color (if disabled
|
||||
colors/gray-lighter
|
||||
(if negative
|
||||
(if selected colors/red colors/red-light)
|
||||
(if selected colors/blue colors/blue-light)))
|
||||
:icon-color (if disabled
|
||||
colors/gray
|
||||
(if negative
|
||||
(if selected colors/white colors/red)
|
||||
(if selected colors/white colors/blue)))}]
|
||||
[react/text
|
||||
{:style {:text-align :center
|
||||
:color (if disabled
|
||||
colors/gray
|
||||
(if negative colors/red colors/blue))
|
||||
:font-size 12
|
||||
:line-height 16
|
||||
:margin-top 6}
|
||||
:number-of-lines 2}
|
||||
label]]])
|
||||
|
||||
(defn profile-view
|
||||
[]
|
||||
(let [{:keys [public-key
|
||||
secondary-name
|
||||
name
|
||||
ens-verified
|
||||
customization-color
|
||||
compressed-key]
|
||||
:as profile} @(re-frame/subscribe [:contacts/current-contact])
|
||||
muted? @(re-frame/subscribe [:chats/muted public-key])
|
||||
customization-color (or customization-color :primary)
|
||||
theme @(re-frame/subscribe [:theme])
|
||||
on-share #(re-frame/dispatch [:show-popover
|
||||
(merge
|
||||
{:view :share-chat-key
|
||||
:address (or compressed-key
|
||||
public-key)}
|
||||
(when (and ens-verified name)
|
||||
{:ens-name name}))])]
|
||||
(when profile
|
||||
[:<>
|
||||
[quo/header
|
||||
{:right-accessories [{:icon :main-icons/share
|
||||
:accessibility-label :share-button
|
||||
:on-press on-share}]
|
||||
:left-accessories [{:icon :main-icons/close
|
||||
:accessibility-label :back-button
|
||||
:on-press #(re-frame/dispatch [:navigate-back])}]}]
|
||||
[:<>
|
||||
[(profile-header/extended-header
|
||||
{:on-press on-share
|
||||
:bottom-separator false
|
||||
:title (profile.utils/displayed-name profile)
|
||||
:color (user-avatar.style/customization-color customization-color theme)
|
||||
:photo (profile.utils/photo profile)
|
||||
:monospace (not ens-verified)
|
||||
:subtitle secondary-name
|
||||
:compressed-key compressed-key
|
||||
:public-key public-key})]
|
||||
[react/view
|
||||
{:height 1 :background-color colors/gray-lighter :margin-top 8}]
|
||||
[nickname-settings profile]
|
||||
[react/view {:height 1 :background-color colors/gray-lighter}]
|
||||
[react/view
|
||||
{:padding-top 17
|
||||
:flex-direction :row
|
||||
:align-items :stretch
|
||||
:flex 1}
|
||||
(for [{:keys [label] :as action} (actions profile muted?)
|
||||
:when label]
|
||||
^{:key label}
|
||||
[button-item action])]]])))
|
||||
|
||||
@@ -1,233 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.profile.group-chat.views
|
||||
(:require
|
||||
[legacy.status-im.ui.components.chat-icon.screen :as chat-icon]
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.common.common :as components.common]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.list.views :as list]
|
||||
[legacy.status-im.ui.components.profile-header.view :as profile-header]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.components.topbar :as topbar]
|
||||
[legacy.status-im.ui.screens.chat.photos :as photos]
|
||||
[legacy.status-im.ui.screens.chat.utils :as chat.utils]
|
||||
[legacy.status-im.ui.screens.profile.components.styles :as profile.components.styles]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.constants :as constants]
|
||||
[status-im.contexts.profile.utils :as profile.utils]
|
||||
[utils.debounce :as debounce]
|
||||
[utils.i18n :as i18n])
|
||||
(:require-macros [legacy.status-im.utils.views :refer [defview letsubs]]))
|
||||
|
||||
(defn hide-sheet-and-dispatch
|
||||
[event]
|
||||
(re-frame/dispatch [:bottom-sheet/hide-old])
|
||||
(re-frame/dispatch event))
|
||||
|
||||
(defn member-sheet
|
||||
[chat-id member us-admin?]
|
||||
[react/view
|
||||
[list.item/list-item
|
||||
{:theme :accent
|
||||
:icon [chat-icon/contact-icon-contacts-tab member]
|
||||
:title (profile.utils/displayed-name member)
|
||||
:subtitle (i18n/label :t/view-profile)
|
||||
:accessibility-label :view-chat-details-button
|
||||
:chevron true
|
||||
:on-press #(hide-sheet-and-dispatch
|
||||
[:chat.ui/show-profile
|
||||
(:public-key member)])}]
|
||||
(when (and us-admin? (not (:admin? member)))
|
||||
[list.item/list-item
|
||||
{:theme :accent
|
||||
:title (i18n/label :t/make-admin)
|
||||
:accessibility-label :make-admin
|
||||
:icon :main-icons/make-admin
|
||||
:on-press #(hide-sheet-and-dispatch [:group-chats.ui/make-admin-pressed
|
||||
chat-id (:public-key member)])}])
|
||||
(when-not (:admin? member)
|
||||
[list.item/list-item
|
||||
{:theme :accent
|
||||
:title (i18n/label :t/remove-from-chat)
|
||||
:accessibility-label :remove-from-chat
|
||||
:icon :main-icons/remove-contact
|
||||
:on-press #(hide-sheet-and-dispatch
|
||||
[:group-chats.ui/remove-member-pressed chat-id
|
||||
(:public-key member)])}])])
|
||||
|
||||
(defn render-member
|
||||
[{:keys [public-key] :as member} _ _ {:keys [chat-id admin? current-user-identity]}]
|
||||
(let [{:keys [secondary-name]} member]
|
||||
[list.item/list-item
|
||||
(merge
|
||||
{:title (profile.utils/displayed-name member)
|
||||
:subtitle secondary-name
|
||||
:accessibility-label :member-item
|
||||
:icon [chat-icon/contact-icon-contacts-tab member]
|
||||
:on-press (when (not= public-key current-user-identity)
|
||||
#(re-frame/dispatch [:chat.ui/show-profile public-key]))}
|
||||
(when (:admin? member)
|
||||
{:accessory :text
|
||||
:accessory-text (i18n/label :t/group-chat-admin)})
|
||||
(when (and admin?
|
||||
(not (:admin? member))
|
||||
(not= public-key current-user-identity))
|
||||
{:accessory [quo/button
|
||||
{:on-press #(re-frame/dispatch
|
||||
[:bottom-sheet/show-sheet
|
||||
{:content (fn []
|
||||
[member-sheet chat-id member admin?])}])
|
||||
:type :icon
|
||||
:theme :icon
|
||||
:accessibility-label :menu-option}
|
||||
:main-icons/more]}))]))
|
||||
|
||||
(defview chat-group-members-view
|
||||
[chat-id admin? current-user-identity]
|
||||
(letsubs [members [:contacts/current-chat-contacts]]
|
||||
(when (seq members)
|
||||
[list/flat-list
|
||||
{:data members
|
||||
:key-fn :address
|
||||
:render-data {:chat-id chat-id
|
||||
:admin? admin?
|
||||
:current-user-identity current-user-identity}
|
||||
:render-fn render-member}])))
|
||||
|
||||
(defn members-list
|
||||
[{:keys [chat-id admin? current-pk allow-adding-members?]}]
|
||||
[react/view
|
||||
[quo/list-header (i18n/label :t/members-title)]
|
||||
(when allow-adding-members?
|
||||
[list.item/list-item
|
||||
{:title (i18n/label :t/add-members)
|
||||
:icon :main-icons/add-contact
|
||||
:theme :accent
|
||||
:on-press #(re-frame/dispatch [:open-modal :add-participants-toggle-list])}])
|
||||
[chat-group-members-view chat-id admin? current-pk]])
|
||||
|
||||
(defn hide-sheet-and-dispatch-old
|
||||
[event]
|
||||
(re-frame/dispatch [:bottom-sheet/hide-old])
|
||||
(debounce/throttle-and-dispatch event 2000))
|
||||
|
||||
(defn invitation-sheet
|
||||
[{:keys [id]} contact]
|
||||
(let [members @(re-frame/subscribe [:contacts/current-chat-contacts])
|
||||
allow-adding-members? (< (count members) constants/max-group-chat-participants)]
|
||||
[react/view
|
||||
[react/view {:margin-bottom 8 :margin-right 16}
|
||||
[react/view {:padding-left 72}
|
||||
(chat.utils/format-author-old contact)]
|
||||
[react/view {:flex-direction :row :align-items :flex-end}
|
||||
[react/view {:padding-left 16 :padding-top 4}
|
||||
[photos/photo (profile.utils/photo contact) {:size 36}]]]]
|
||||
[list.item/list-item
|
||||
{:theme :accent
|
||||
:disabled (not allow-adding-members?)
|
||||
:title (i18n/label :t/accept)
|
||||
:subtitle (when-not allow-adding-members? (i18n/label :t/members-limit-reached))
|
||||
:accessibility-label :accept-invitation-button
|
||||
:icon :main-icons/checkmark-circle
|
||||
:on-press #(hide-sheet-and-dispatch-old
|
||||
[:group-chats.ui/add-members-from-invitation id (:public-key contact)])}]
|
||||
[list.item/list-item
|
||||
{:theme :negative
|
||||
:title (i18n/label :t/decline)
|
||||
:accessibility-label :decline-invitation-button
|
||||
:icon :main-icons/cancel
|
||||
:on-press #(hide-sheet-and-dispatch-old [:send-group-chat-membership-rejection
|
||||
id])}]]))
|
||||
|
||||
(defn contacts-list-item
|
||||
[{:keys [from] :as invitation}]
|
||||
(let [contact (or @(re-frame/subscribe [:contacts/contact-by-identity from])
|
||||
{:public-key from})]
|
||||
[list.item/list-item
|
||||
{:title (profile.utils/displayed-name contact)
|
||||
:icon [chat-icon/contact-icon-contacts-tab contact]
|
||||
:on-press #(re-frame/dispatch [:show-bottom-sheet
|
||||
{:content (fn []
|
||||
[invitation-sheet invitation contact])}])}]))
|
||||
|
||||
(defview group-chat-invite
|
||||
[]
|
||||
(letsubs [{:keys [chat-id]} [:chats/current-chat]]
|
||||
(let [invitations @(re-frame/subscribe [:group-chat/pending-invitations-by-chat-id chat-id])]
|
||||
[react/view {:flex 1}
|
||||
[topbar/topbar {:title (i18n/label :t/group-invite)}]
|
||||
[react/scroll-view {:flex 1}
|
||||
[react/view {:margin-top 26}
|
||||
(if (seq invitations)
|
||||
[list/flat-list
|
||||
{:data invitations
|
||||
:key-fn :id
|
||||
:render-fn contacts-list-item}]
|
||||
[react/text
|
||||
{:style {:color colors/gray
|
||||
:margin-top 28
|
||||
:text-align :center
|
||||
:padding-horizontal 16}}
|
||||
(i18n/label :t/empty-pending-invitations-descr)])]]])))
|
||||
|
||||
(defview group-chat-profile
|
||||
[]
|
||||
(letsubs [{:keys [admins chat-id member? chat-name color contacts] :as current-chat}
|
||||
[:chats/current-chat]
|
||||
members [:contacts/current-chat-contacts]
|
||||
current-pk [:multiaccount/public-key]
|
||||
pinned-messages [:chats/pinned chat-id]]
|
||||
(when current-chat
|
||||
(let [admin? (get admins current-pk)
|
||||
allow-adding-members? (and admin?
|
||||
member?
|
||||
(< (count members) constants/max-group-chat-participants))]
|
||||
[react/view profile.components.styles/profile
|
||||
[quo/animated-header
|
||||
{:use-insets true
|
||||
:left-accessories [{:icon :main-icons/arrow-left
|
||||
:accessibility-label :back-button
|
||||
:on-press #(re-frame/dispatch [:navigate-back])}]
|
||||
:right-accessories (when (and admin? member?)
|
||||
[{:icon :icons/edit
|
||||
:accessibility-label :edit-button
|
||||
:on-press #(re-frame/dispatch [:open-modal
|
||||
:edit-group-chat-name])}])
|
||||
:extended-header (profile-header/extended-header
|
||||
{:title chat-name
|
||||
:color color
|
||||
:subtitle (i18n/label :t/members-count {:count (count contacts)})
|
||||
:subtitle-icon :icons/tiny-group})}
|
||||
[react/view profile.components.styles/profile-form
|
||||
(when admin?
|
||||
[list.item/list-item
|
||||
{:chevron true
|
||||
:title (i18n/label :t/membership-requests)
|
||||
:accessibility-label :invite-chat-button
|
||||
:icon :main-icons/share
|
||||
:accessory (let [invitations
|
||||
(count @(re-frame/subscribe
|
||||
[:group-chat/pending-invitations-by-chat-id
|
||||
chat-id]))]
|
||||
(when (pos? invitations)
|
||||
[components.common/counter {:size 22} invitations]))
|
||||
:on-press #(re-frame/dispatch [:navigate-to :group-chat-invite])}])
|
||||
[list.item/list-item
|
||||
{:title (i18n/label :t/pinned-messages)
|
||||
:icon :main-icons/pin
|
||||
:accessory :text
|
||||
:accessory-text (count pinned-messages)
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:pin-message/show-pins-bottom-sheet chat-id])}]
|
||||
(when member?
|
||||
[list.item/list-item
|
||||
{:theme :negative
|
||||
:title (i18n/label :t/leave-chat)
|
||||
:accessibility-label :leave-chat-button
|
||||
:icon :main-icons/arrow-left
|
||||
:on-press #(re-frame/dispatch [:group-chats.ui/leave-chat-pressed chat-id])}])
|
||||
[members-list
|
||||
{:chat-id chat-id
|
||||
:admin? admin?
|
||||
:current-pk current-pk
|
||||
:allow-adding-members? allow-adding-members?}]]]]))))
|
||||
|
||||
@@ -12,8 +12,12 @@
|
||||
[legacy.status-im.ui.screens.profile.seed.styles :as styles]
|
||||
[legacy.status-im.utils.utils :as utils]
|
||||
[re-frame.core :as re-frame]
|
||||
[react-native.core :as rn]
|
||||
[react-native.platform :as platform]
|
||||
[react-native.safe-area :as safe-area]
|
||||
[reagent.core :as reagent]
|
||||
[utils.i18n :as i18n]))
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(def steps-numbers
|
||||
{:intro 1
|
||||
@@ -153,13 +157,17 @@
|
||||
[quo/button {:on-press #(re-frame/dispatch [:navigate-back])}
|
||||
(i18n/label :t/ok-got-it)]]])
|
||||
|
||||
(defview backup-seed
|
||||
(defn backup-seed
|
||||
[]
|
||||
(letsubs [current-multiaccount [:profile/profile]
|
||||
{:keys [step first-word second-word error word]} [:my-profile/recovery]]
|
||||
[react/keyboard-avoiding-view
|
||||
{:style {:flex 1}
|
||||
:ignore-offset true}
|
||||
(let [current-multiaccount (rf/sub [:profile/profile])
|
||||
{:keys [step first-word
|
||||
second-word error word]} (rf/sub [:my-profile/recovery])
|
||||
footer-container-padding (+ (safe-area/get-top)
|
||||
(rf/sub [:alert-banners/top-margin])
|
||||
20)]
|
||||
[rn/keyboard-avoiding-view
|
||||
{:style {:flex 1}
|
||||
:keyboard-vertical-offset (if platform/ios? footer-container-padding 0)}
|
||||
[topbar/topbar
|
||||
{:title (i18n/label :t/backup-recovery-phrase)
|
||||
:subtitle (i18n/label :t/step-i-of-n {:step (steps-numbers step) :number 3})
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[re-frame.core :as re-frame]
|
||||
[react-native.platform :as platform]
|
||||
[status-im.config :as config]
|
||||
[status-im.contexts.profile.settings.events]
|
||||
[utils.i18n :as i18n]))
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(def crop-size 1000)
|
||||
(def crop-opts
|
||||
@@ -17,16 +19,22 @@
|
||||
(defn pick-pic
|
||||
[]
|
||||
(re-frame/dispatch [:bottom-sheet/hide-old])
|
||||
(when platform/ios?
|
||||
(rf/dispatch [:alert-banners/hide]))
|
||||
(react/show-image-picker
|
||||
#(re-frame/dispatch [:profile.settings/save-profile-picture (.-path ^js %) 0 0 crop-size crop-size])
|
||||
crop-opts))
|
||||
crop-opts
|
||||
#(rf/dispatch [:alert-banners/unhide])))
|
||||
|
||||
(defn take-pic
|
||||
[]
|
||||
(re-frame/dispatch [:bottom-sheet/hide-old])
|
||||
(when platform/ios?
|
||||
(rf/dispatch [:alert-banners/hide]))
|
||||
(react/show-image-picker-camera
|
||||
#(re-frame/dispatch [:profile.settings/save-profile-picture (.-path ^js %) 0 0 crop-size crop-size])
|
||||
crop-opts))
|
||||
crop-opts
|
||||
#(rf/dispatch [:alert-banners/unhide])))
|
||||
|
||||
(defn bottom-sheet
|
||||
[has-picture]
|
||||
|
||||
@@ -1,230 +1,37 @@
|
||||
(ns legacy.status-im.ui.screens.profile.user.views
|
||||
(:require
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.common.common :as components.common]
|
||||
[legacy.status-im.ui.components.copyable-text :as copyable-text]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.list-selection :as list-selection]
|
||||
[legacy.status-im.ui.components.core :as components]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.profile-header.view :as profile-header]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.components.spacing :as spacing]
|
||||
[legacy.status-im.ui.screens.profile.user.edit-picture :as edit]
|
||||
[legacy.status-im.ui.screens.profile.user.styles :as styles]
|
||||
[legacy.status-im.ui.screens.profile.visibility-status.views :as visibility-status]
|
||||
[legacy.status-im.utils.utils :as utils]
|
||||
[quo.components.avatars.user-avatar.style :as user-avatar.style]
|
||||
[quo.core :as quo]
|
||||
[quo.theme]
|
||||
[re-frame.core :as re-frame]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.common.qr-codes.view :as qr-codes]
|
||||
[status-im.config :as config]
|
||||
[status-im.contexts.profile.utils :as profile.utils]
|
||||
[utils.ens.stateofus :as stateofus]
|
||||
[utils.i18n :as i18n])
|
||||
(:require-macros [legacy.status-im.utils.views :as views]))
|
||||
|
||||
(views/defview share-chat-key
|
||||
[]
|
||||
(views/letsubs [{:keys [address ens-name]} [:popover/popover]
|
||||
{:keys [universal-profile-url]} [:profile/profile]
|
||||
width (reagent/atom nil)]
|
||||
[react/view {:on-layout #(reset! width (-> ^js % .-nativeEvent .-layout .-width))}
|
||||
[react/view {:style {:padding-top 16 :padding-horizontal 16}}
|
||||
(when @width
|
||||
[qr-codes/qr-code
|
||||
{:url address
|
||||
:size (- @width 32)}])
|
||||
(when ens-name
|
||||
[react/view
|
||||
[copyable-text/copyable-text-view
|
||||
{:label :t/ens-username
|
||||
:container-style {:margin-top 12 :margin-bottom 4}
|
||||
:copied-text ens-name}
|
||||
[quo/text
|
||||
{:monospace true
|
||||
:accessibility-label :ens-username}
|
||||
ens-name]]
|
||||
[react/view
|
||||
{:height 1
|
||||
:margin-top 12
|
||||
:margin-horizontal -16
|
||||
:background-color colors/gray-lighter}]])
|
||||
[copyable-text/copyable-text-view
|
||||
{:label :t/chat-key
|
||||
:container-style {:margin-top 12 :margin-bottom 4}
|
||||
:copied-text address}
|
||||
[quo/text
|
||||
{:number-of-lines 1
|
||||
:ellipsize-mode :middle
|
||||
:accessibility-label :chat-key
|
||||
:monospace true}
|
||||
address]]]
|
||||
[react/view styles/share-link-button
|
||||
[quo/button
|
||||
{:on-press (fn []
|
||||
(re-frame/dispatch [:hide-popover])
|
||||
(js/setTimeout
|
||||
#(list-selection/open-share {:message universal-profile-url})
|
||||
250))
|
||||
:accessibility-label :share-my-contact-code-button}
|
||||
(i18n/label :t/share-link)]]]))
|
||||
[react-native.core :as rn]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn content
|
||||
[]
|
||||
(let [{:keys [preferred-name
|
||||
mnemonic]}
|
||||
@(re-frame/subscribe [:profile/profile])
|
||||
active-contacts-count @(re-frame/subscribe [:contacts/active-count])
|
||||
chain @(re-frame/subscribe [:chain-keyword])
|
||||
registrar (when (or (not= chain :goerli) config/test-stateofus?)
|
||||
(stateofus/get-cached-registrar chain))
|
||||
local-pairing-mode-enabled? config/local-pairing-mode-enabled?]
|
||||
[:<>
|
||||
[visibility-status/visibility-status-button
|
||||
visibility-status/calculate-button-height-and-dispatch-popover]
|
||||
[quo/separator {:style {:margin-top (:tiny spacing/spacing)}}]
|
||||
[list.item/list-item
|
||||
(cond-> {:title (or (when registrar preferred-name)
|
||||
(i18n/label :t/ens-usernames))
|
||||
:subtitle (if registrar
|
||||
(if preferred-name
|
||||
(i18n/label :t/ens-your-your-name)
|
||||
(i18n/label :t/ens-usernames-details))
|
||||
(i18n/label :t/ens-network-restriction))
|
||||
:subtitle-max-lines (if registrar
|
||||
(if preferred-name 1 2)
|
||||
1)
|
||||
:accessibility-label :ens-button
|
||||
:container-margin-top 8
|
||||
:disabled (not registrar)
|
||||
:chevron true
|
||||
:icon :main-icons/username}
|
||||
registrar
|
||||
(assoc :on-press #(re-frame/dispatch [:open-modal :ens-main registrar])))]
|
||||
[list.item/list-item
|
||||
{:title (i18n/label :t/contacts)
|
||||
:icon :main-icons/in-contacts
|
||||
:accessibility-label :contacts-button
|
||||
:accessory :text
|
||||
:accessory-text (if (pos? active-contacts-count)
|
||||
(str active-contacts-count)
|
||||
(i18n/label :t/none))
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :contacts-list])}]
|
||||
[react/view {:padding-top 16}
|
||||
[quo/list-header (i18n/label :t/settings)]]
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/security
|
||||
:title (i18n/label :t/privacy-and-security)
|
||||
:accessibility-label :privacy-and-security-settings-button
|
||||
:chevron true
|
||||
:accessory (when mnemonic
|
||||
[components.common/counter {:size 22} 1])
|
||||
:on-press #(re-frame/dispatch [:open-modal :privacy-and-security])}]
|
||||
(when config/quo-preview-enabled?
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/appearance
|
||||
:title "Quo Preview"
|
||||
:accessibility-label :appearance-settings-button
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :quo-preview])}])
|
||||
(when config/quo-preview-enabled?
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/appearance
|
||||
:title "Status IM Components"
|
||||
:accessibility-label :status-im-common-components
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :status-im-preview])}])
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/appearance
|
||||
:title (i18n/label :t/appearance)
|
||||
:accessibility-label :appearance-settings-button
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :appearance])}]
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/notification
|
||||
:title (i18n/label :t/notifications)
|
||||
:accessibility-label :notifications-settings-button
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :notifications])}]
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/mobile
|
||||
:title (i18n/label :t/sync-settings)
|
||||
:accessibility-label :sync-settings-button
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :sync-settings])}]
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/settings-advanced
|
||||
:title (i18n/label :t/advanced)
|
||||
:accessibility-label :advanced-button
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :advanced-settings])}]
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/help
|
||||
:title (i18n/label :t/need-help)
|
||||
:accessibility-label :help-button
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :help-center])}]
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/info
|
||||
:title (i18n/label :t/about-app)
|
||||
:accessibility-label :about-button
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :about-app])}]
|
||||
(when local-pairing-mode-enabled?
|
||||
[list.item/list-item
|
||||
{:icon :i/mobile
|
||||
:title (i18n/label :t/syncing)
|
||||
:accessibility-label :syncing
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :settings-syncing])}])
|
||||
[react/view {:padding-vertical 24}
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/log-out
|
||||
:title (i18n/label :t/sign-out)
|
||||
:accessibility-label :log-out-button
|
||||
:theme :negative
|
||||
:on-press
|
||||
#(re-frame/dispatch [:multiaccounts.logout.ui/logout-pressed])}]]]))
|
||||
[rn/scroll-view {:flex 1}
|
||||
[components/list-header "Legacy settings"]
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/security
|
||||
:title (i18n/label :t/privacy-and-security)
|
||||
:accessibility-label :privacy-and-security-settings-button
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :legacy-privacy-and-security])}]
|
||||
[list.item/list-item
|
||||
{:icon :main-icons/mobile
|
||||
:title (i18n/label :t/sync-settings)
|
||||
:accessibility-label :sync-settings-button
|
||||
:chevron true
|
||||
:on-press #(re-frame/dispatch [:open-modal :legacy-sync-settings])}]])
|
||||
|
||||
(defn my-profile
|
||||
(defn legacy-settings
|
||||
[]
|
||||
(fn []
|
||||
(let [{:keys [public-key
|
||||
compressed-key
|
||||
ens-verified
|
||||
preferred-name
|
||||
key-uid]
|
||||
:as profile}
|
||||
@(re-frame/subscribe [:profile/profile-with-image])
|
||||
customization-color (or (:color @(re-frame/subscribe [:onboarding/profile]))
|
||||
@(re-frame/subscribe [:profile/customization-color key-uid]))
|
||||
theme @(re-frame/subscribe [:theme])
|
||||
on-share #(re-frame/dispatch [:show-popover
|
||||
{:view :share-chat-key
|
||||
:address (or compressed-key
|
||||
public-key)
|
||||
:ens-name preferred-name}])
|
||||
has-picture @(re-frame/subscribe [:profile/has-picture])]
|
||||
[react/view {:flex 1}
|
||||
[quo/animated-header
|
||||
{:right-accessories [{:accessibility-label :share-header-button
|
||||
:icon :main-icons/share
|
||||
:on-press on-share}]
|
||||
:left-accessories [{:accessibility-label :close-header-button
|
||||
:icon :main-icons/close
|
||||
:on-press #(re-frame/dispatch [:navigate-back])}]
|
||||
:use-insets true
|
||||
:extended-header (profile-header/extended-header
|
||||
{:on-press on-share
|
||||
:on-edit #(re-frame/dispatch [:show-bottom-sheet
|
||||
{:content (edit/bottom-sheet
|
||||
has-picture)}])
|
||||
:color (user-avatar.style/customization-color customization-color
|
||||
theme)
|
||||
:title (profile.utils/displayed-name profile)
|
||||
:photo (profile.utils/photo profile)
|
||||
:monospace (not ens-verified)
|
||||
:subtitle (utils/get-shortened-address (or compressed-key public-key))})}
|
||||
[content]]])))
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :no-title
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[content]])
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.qr-scanner.styles)
|
||||
|
||||
(def viewfinder-port
|
||||
{:position :absolute
|
||||
:left 0
|
||||
:top 0
|
||||
:bottom 0
|
||||
:right 0
|
||||
:align-items :center
|
||||
:justify-content :center
|
||||
:flex 1})
|
||||
@@ -1,128 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.qr-scanner.views
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.components.topbar :as topbar]
|
||||
[legacy.status-im.ui.screens.qr-scanner.styles :as styles]
|
||||
[re-frame.core :as re-frame]
|
||||
[react-native.camera-kit :as camera-kit]
|
||||
[react-native.core :as rn]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.config :as config]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn get-qr-code-data
|
||||
[^js event]
|
||||
(when-let [data (-> event .-nativeEvent .-codeStringValue)]
|
||||
(string/trim data)))
|
||||
|
||||
(defn- topbar
|
||||
[_ {:keys [title] :as opts}]
|
||||
[topbar/topbar
|
||||
{:background colors/black-persist
|
||||
:use-insets true
|
||||
:border-bottom false
|
||||
:navigation :none
|
||||
:left-component [quo/button
|
||||
{:type :secondary
|
||||
:on-press #(re-frame/dispatch [:qr-scanner.callback/scan-qr-code-cancel opts])}
|
||||
[quo/text {:style {:color colors/white-persist}}
|
||||
(i18n/label :t/cancel)]]
|
||||
:title-component [quo/text
|
||||
{:style {:color colors/white-persist}
|
||||
:weight :bold
|
||||
:number-of-lines 1
|
||||
:align :center
|
||||
:size :large}
|
||||
(or title (i18n/label :t/scan-qr-code))]}])
|
||||
|
||||
(defn qr-test-view
|
||||
[opts]
|
||||
(let [text-value (atom "")]
|
||||
[react/view
|
||||
{:flex 1
|
||||
:align-items :center
|
||||
:justify-content :center}
|
||||
[react/text-input
|
||||
{:multiline true
|
||||
:style {:color colors/white-persist}
|
||||
:on-change-text #(reset! text-value %)}]
|
||||
[react/view {:flex-direction :row}
|
||||
[quo/button
|
||||
{:on-press #(re-frame/dispatch [:qr-scanner.callback/scan-qr-code-cancel opts])}
|
||||
"Cancel"]
|
||||
[quo/button
|
||||
{:on-press #(re-frame/dispatch
|
||||
[:qr-scanner.callback/scan-qr-code-success opts
|
||||
(when-let [text @text-value]
|
||||
(-> text string/trim (string/replace #"^Ethereum:" "ethereum:")))])}
|
||||
"Ok"]]]))
|
||||
|
||||
(defn corner
|
||||
[border1 border2 corner-radius]
|
||||
[react/view
|
||||
{:style (assoc {:border-color colors/white-persist :width 60 :height 60}
|
||||
border1
|
||||
5
|
||||
border2
|
||||
5
|
||||
corner-radius
|
||||
32)}])
|
||||
|
||||
(defn- viewfinder
|
||||
[size]
|
||||
[react/view {:style styles/viewfinder-port}
|
||||
[react/view {:width size :height size :justify-content :space-between}
|
||||
[react/view {:flex-direction :row :justify-content :space-between}
|
||||
[corner :border-top-width :border-left-width :border-top-left-radius]
|
||||
[corner :border-top-width :border-right-width :border-top-right-radius]]
|
||||
[react/view {:flex-direction :row :justify-content :space-between}
|
||||
[corner :border-bottom-width :border-left-width :border-bottom-left-radius]
|
||||
[corner :border-bottom-width :border-right-width :border-bottom-right-radius]]]])
|
||||
|
||||
(defn on-barcode-read
|
||||
[opts data]
|
||||
(re-frame/dispatch [:qr-scanner.callback/scan-qr-code-success opts (get-qr-code-data data)]))
|
||||
|
||||
(defn- navigate-back-handler
|
||||
[]
|
||||
(re-frame/dispatch [:navigate-back])
|
||||
true)
|
||||
|
||||
(defn f-qr-scanner
|
||||
[]
|
||||
(let [read-once? (reagent/atom false)
|
||||
{:keys [height width]} (rf/sub [:dimensions/window])
|
||||
camera-flashlight (rf/sub [:wallet-legacy.send/camera-flashlight])
|
||||
opts (rf/sub [:get-screen-params])
|
||||
camera-ref (reagent/atom nil)]
|
||||
[react/view
|
||||
{:flex 1
|
||||
:background-color colors/black-persist}
|
||||
[topbar camera-flashlight opts]
|
||||
(if config/qr-test-menu-enabled?
|
||||
[qr-test-view opts]
|
||||
[react/view {:flex 1}
|
||||
[react/with-activity-indicator
|
||||
{}
|
||||
[camera-kit/camera
|
||||
{:ref #(reset! camera-ref %)
|
||||
:style {:flex 1}
|
||||
:camera-type camera-kit/camera-type-back
|
||||
:zoom-mode :off
|
||||
:scan-barcode true
|
||||
:on-read-code #(when-not @read-once?
|
||||
(reset! read-once? true)
|
||||
(on-barcode-read opts %))}]]
|
||||
[viewfinder (int (* 2 (/ (min height width) 3)))]])]))
|
||||
|
||||
(defn qr-scanner
|
||||
[]
|
||||
(reagent/create-class
|
||||
{:display-name "qr-scanner"
|
||||
:component-did-mount #(rn/hw-back-add-listener navigate-back-handler)
|
||||
:component-will-unmount #(rn/hw-back-remove-listener navigate-back-handler)
|
||||
:reagent-render f-qr-scanner}))
|
||||
@@ -5,18 +5,13 @@
|
||||
[legacy.status-im.ui.screens.advanced-settings.views :as advanced-settings]
|
||||
[legacy.status-im.ui.screens.appearance.views :as appearance]
|
||||
[legacy.status-im.ui.screens.backup-settings.view :as backup-settings]
|
||||
[legacy.status-im.ui.screens.browser.bookmarks.views :as bookmarks]
|
||||
[legacy.status-im.ui.screens.bug-report :as bug-report]
|
||||
[legacy.status-im.ui.screens.communities.invite :as communities.invite]
|
||||
[legacy.status-im.ui.screens.communities.members :as members]
|
||||
[legacy.status-im.ui.screens.contacts-list.views :as contacts-list]
|
||||
[legacy.status-im.ui.screens.currency-settings.views :as currency-settings]
|
||||
[legacy.status-im.ui.screens.dapps-permissions.views :as dapps-permissions]
|
||||
[legacy.status-im.ui.screens.default-sync-period-settings.view :as default-sync-period-settings]
|
||||
[legacy.status-im.ui.screens.ens.views :as ens]
|
||||
[legacy.status-im.ui.screens.fleet-settings.views :as fleet-settings]
|
||||
[legacy.status-im.ui.screens.glossary.view :as glossary]
|
||||
[legacy.status-im.ui.screens.group.views :as group-chat]
|
||||
[legacy.status-im.ui.screens.help-center.views :as help-center]
|
||||
[legacy.status-im.ui.screens.link-previews-settings.views :as link-previews-settings]
|
||||
[legacy.status-im.ui.screens.log-level-settings.views :as log-level-settings]
|
||||
@@ -30,18 +25,15 @@
|
||||
[legacy.status-im.ui.screens.privacy-and-security-settings.messages-from-contacts-only :as
|
||||
messages-from-contacts-only]
|
||||
[legacy.status-im.ui.screens.privacy-and-security-settings.views :as privacy-and-security]
|
||||
[legacy.status-im.ui.screens.profile.contact.views :as contact]
|
||||
[legacy.status-im.ui.screens.profile.group-chat.views :as profile.group-chat]
|
||||
[legacy.status-im.ui.screens.profile.seed.views :as profile.seed]
|
||||
[legacy.status-im.ui.screens.profile.user.views :as profile.user]
|
||||
[legacy.status-im.ui.screens.progress.views :as progress]
|
||||
[legacy.status-im.ui.screens.qr-scanner.views :as qr-scanner]
|
||||
[legacy.status-im.ui.screens.reset-password.views :as reset-password]
|
||||
[legacy.status-im.ui.screens.rpc-usage-info :as rpc-usage-info]
|
||||
[legacy.status-im.ui.screens.stickers.views :as stickers]
|
||||
[legacy.status-im.ui.screens.sync-settings.views :as sync-settings]
|
||||
[legacy.status-im.ui.screens.wakuv2-settings.edit-node.views :as edit-wakuv2-node]
|
||||
[legacy.status-im.ui.screens.wakuv2-settings.views :as wakuv2-settings]
|
||||
[react-native.platform :as platform]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(defn topbar-options
|
||||
@@ -59,79 +51,92 @@
|
||||
|
||||
(defn screens
|
||||
[]
|
||||
[;;INTRO, ONBOARDING, LOGIN
|
||||
|
||||
[;;PROGRESS
|
||||
{:name :progress
|
||||
:options {:insets {:top? true}}
|
||||
:component progress/progress}
|
||||
|
||||
;;CHAT
|
||||
{:name :group-chat-invite
|
||||
;;TODO parameter in the event
|
||||
:options {:insets {:top? true}}
|
||||
:component profile.group-chat/group-chat-invite}
|
||||
;;COMMUNITY
|
||||
{:name :legacy-community-members
|
||||
;;TODO custom subtitle
|
||||
:options {:insets {:top? true}}
|
||||
:component members/legacy-members-container}
|
||||
|
||||
{:name :stickers
|
||||
:options {:insets {:top? true}
|
||||
:topBar (topbar-options :t/sticker-market)}
|
||||
:component stickers/packs}
|
||||
{:name :legacy-invite-people-community
|
||||
:options {:insets {:bottom? true :top? true}}
|
||||
:component communities.invite/legacy-invite}
|
||||
|
||||
{:name :stickers-pack
|
||||
:options {:insets {:top? true}}
|
||||
:component stickers/pack}
|
||||
;;SETTINGS
|
||||
{:name :legacy-notifications
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component notifications-settings/notifications-settings}
|
||||
|
||||
{:name :currency-settings
|
||||
:options {:topBar (topbar-options :t/main-currency)
|
||||
:insets {:top? true}}
|
||||
:component currency-settings/currency-settings}
|
||||
{:name :legacy-appearance
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component appearance/appearance-view}
|
||||
|
||||
;;PROFILE
|
||||
;; ADVANCED
|
||||
{:name :legacy-advanced-settings
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component advanced-settings/advanced-settings}
|
||||
|
||||
{:name :my-profile
|
||||
:options {:topBar {:visible false}}
|
||||
:component profile.user/my-profile}
|
||||
{:name :contacts-list
|
||||
:options {:topBar (topbar-options :t/contacts)
|
||||
:insets {:top? true}}
|
||||
:component contacts-list/contacts-list}
|
||||
{:name :ens-main
|
||||
:options {:topBar (topbar-options :t/ens-usernames)
|
||||
:insets {:top? true}}
|
||||
:component ens/main}
|
||||
{:name :ens-search
|
||||
:options {:topBar (topbar-options :t/ens-your-username)
|
||||
:insets {:top? true}}
|
||||
:component ens/search}
|
||||
{:name :ens-checkout
|
||||
:options {:topBar (topbar-options :t/ens-your-username)
|
||||
:insets {:top? true}}
|
||||
:component ens/checkout}
|
||||
{:name :ens-confirmation
|
||||
:options {:topBar (topbar-options :t/ens-your-username)
|
||||
:insets {:top? true}}
|
||||
:component ens/confirmation}
|
||||
{:name :ens-terms
|
||||
:options {:topBar (topbar-options :t/ens-terms-registration)
|
||||
:insets {:top? true}}
|
||||
:component ens/terms}
|
||||
{:name :ens-name-details
|
||||
;;TODO dynamic title
|
||||
:options {:insets {:top? true}}
|
||||
:component ens/name-details}
|
||||
{:name :blocked-users-list
|
||||
:options {:topBar (topbar-options :t/blocked-users)
|
||||
:insets {:top? true}}
|
||||
:component contacts-list/blocked-users-list}
|
||||
{:name :legacy-:og-level-settings
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component log-level-settings/log-level-settings}
|
||||
|
||||
;; LEGACY SETTINGS
|
||||
{:name :legacy-settings
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component profile.user/legacy-settings}
|
||||
|
||||
;; PRIVACY AND SECURITY
|
||||
{:name :legacy-privacy-and-security
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component privacy-and-security/privacy-and-security}
|
||||
|
||||
{:name :legacy-link-previews-settings
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component link-previews-settings/link-previews-settings}
|
||||
|
||||
;; SYNC
|
||||
{:name :legacy-sync-settings
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component sync-settings/sync-settings}
|
||||
|
||||
;; ABOUT
|
||||
{:name :about-app
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component about-app/about-app}
|
||||
|
||||
;; STATUS HELP
|
||||
{:name :help-center
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component help-center/help-center}
|
||||
|
||||
{:name :glossary
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component glossary/glossary}
|
||||
|
||||
{:name :bug-report
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:top? platform/android?}}
|
||||
:component bug-report/bug-report}
|
||||
|
||||
;; OTHER
|
||||
{:name :wakuv2-settings
|
||||
;;TODO dynamic title
|
||||
:options {:insets {:top? true}}
|
||||
:component wakuv2-settings/wakuv2-settings}
|
||||
{:name :edit-wakuv2-node
|
||||
;;TODO dynamic title
|
||||
:options {:insets {:top? true}}
|
||||
:component edit-wakuv2-node/edit-node}
|
||||
{:name :installations
|
||||
@@ -139,29 +144,19 @@
|
||||
:insets {:top? true}}
|
||||
:component pairing/installations}
|
||||
{:name :offline-messaging-settings
|
||||
;;TODO dynamic title
|
||||
:options {:insets {:top? true}}
|
||||
:component offline-messaging-settings/offline-messaging-settings}
|
||||
{:name :edit-mailserver
|
||||
;;TODO dynamic title
|
||||
:options {:insets {:top? true}}
|
||||
:component edit-mailserver/edit-mailserver}
|
||||
{:name :dapps-permissions
|
||||
:options {:topBar (topbar-options :t/dapps-permissions)
|
||||
:insets {:top? true}}
|
||||
:component dapps-permissions/dapps-permissions}
|
||||
{:name :privacy-and-security
|
||||
:options {:topBar (topbar-options :t/privacy-and-security)
|
||||
:insets {:top? true}}
|
||||
:component privacy-and-security/privacy-and-security}
|
||||
{:name :messages-from-contacts-only
|
||||
:options {:topBar (topbar-options :t/accept-new-chats-from)
|
||||
:insets {:top? true}}
|
||||
:component messages-from-contacts-only/messages-from-contacts-only-view}
|
||||
{:name :appearance
|
||||
:options {:topBar (topbar-options :t/appearance)
|
||||
:insets {:top? true}}
|
||||
:component appearance/appearance-view}
|
||||
{:name :privacy-and-security-profile-pic-show-to
|
||||
:options {:topbar (topbar-options :t/show-profile-pictures-to)
|
||||
:insets {:top? true}}
|
||||
@@ -170,44 +165,7 @@
|
||||
:options {:topBar (topbar-options :t/show-profile-pictures)
|
||||
:insets {:top? true}}
|
||||
:component privacy-and-security/profile-pic}
|
||||
{:name :notifications
|
||||
:options {:topBar (topbar-options :t/notification-settings)
|
||||
:insets {:top? true}}
|
||||
:component notifications-settings/notifications-settings}
|
||||
{:name :sync-settings
|
||||
:options {:topBar (topbar-options :t/sync-settings)
|
||||
:insets {:top? true}}
|
||||
:component sync-settings/sync-settings}
|
||||
{:name :advanced-settings
|
||||
:options {:topBar (topbar-options :t/advanced)
|
||||
:insets {:top? true}}
|
||||
:component advanced-settings/advanced-settings}
|
||||
{:name :help-center
|
||||
:options {:topBar (topbar-options :t/need-help)
|
||||
:insets {:top? true}}
|
||||
:component help-center/help-center}
|
||||
{:name :glossary
|
||||
:options {:topBar (topbar-options :t/glossary)
|
||||
:insets {:top? true}}
|
||||
:component glossary/glossary}
|
||||
{:name :about-app
|
||||
:options {:topBar (topbar-options :t/about-app)
|
||||
:insets {:top? true}}
|
||||
:component about-app/about-app}
|
||||
{:name :privacy-policy
|
||||
:options {:topBar (topbar-options :t/privacy-policy)
|
||||
:insets {:top? true}}
|
||||
:component about-app/privacy-policy}
|
||||
{:name :terms-of-service
|
||||
:options {:topBar (topbar-options :t/terms-of-service)
|
||||
:insets {:top? true}}
|
||||
:component about-app/tos}
|
||||
{:name :principles
|
||||
:options {:topBar (topbar-options :t/principles)
|
||||
:insets {:top? true}}
|
||||
:component about-app/principles}
|
||||
{:name :manage-dapps-permissions
|
||||
;;TODO dynamic title
|
||||
:options {:insets {:top? true}}
|
||||
:component dapps-permissions/manage}
|
||||
{:name :rpc-usage-info
|
||||
@@ -218,10 +176,6 @@
|
||||
:options {:topBar (topbar-options :t/peers-stats)
|
||||
:insets {:top? true}}
|
||||
:component peers-stats/peers-stats}
|
||||
{:name :log-level-settings
|
||||
:options {:topBar (topbar-options :t/log-level-settings)
|
||||
:insets {:top? true}}
|
||||
:component log-level-settings/log-level-settings}
|
||||
{:name :fleet-settings
|
||||
:options {:topBar (topbar-options :t/fleet-settings)
|
||||
:insets {:top? true}}
|
||||
@@ -235,8 +189,7 @@
|
||||
:insets {:top? true}}
|
||||
:component backup-settings/backup-settings}
|
||||
{:name :backup-seed
|
||||
;;TODO dynamic navigation
|
||||
:options {:insets {:top? true}}
|
||||
:options {:insets {:top? platform/android? :bottom? true}}
|
||||
:component profile.seed/backup-seed}
|
||||
{:name :reset-password
|
||||
:options {:topBar (topbar-options :t/reset-password)
|
||||
@@ -248,76 +201,4 @@
|
||||
{:name :default-sync-period-settings
|
||||
:options {:topBar (topbar-options :t/default-sync-period)
|
||||
:insets {:top? true}}
|
||||
:component default-sync-period-settings/default-sync-period-settings}
|
||||
|
||||
;;MODALS
|
||||
|
||||
;[Chat] Link preview settings
|
||||
|
||||
{:name :link-previews-settings
|
||||
:options {:topBar (topbar-options :t/chat-link-previews)
|
||||
:insets {:top? true}}
|
||||
:component link-previews-settings/link-previews-settings}
|
||||
|
||||
;[Chat] Edit nickname
|
||||
{:name :nickname
|
||||
;;TODO dyn subtitle
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:bottom? true
|
||||
:top? true}}
|
||||
:component contact/nickname-view}
|
||||
|
||||
;[Group chat] Add participants
|
||||
{:name :add-participants-toggle-list
|
||||
:on-focus [:group/add-participants-toggle-list]
|
||||
;;TODO dyn subtitle
|
||||
:options {:topBar {:visible false}
|
||||
:insets {:bottom? true
|
||||
:top? true}}
|
||||
:component group-chat/add-participants-toggle-list}
|
||||
|
||||
;[Communities] Invite people
|
||||
{:name :legacy-invite-people-community
|
||||
;;TODO dyn title
|
||||
:options {:insets {:bottom? true
|
||||
:top? true}}
|
||||
:component communities.invite/legacy-invite}
|
||||
|
||||
;QR Scanner
|
||||
{:name :qr-scanner
|
||||
;;TODO custom topbar
|
||||
:options {:topBar {:visible false}
|
||||
:navigationBar {:backgroundColor colors/black-persist}
|
||||
:statusBar {:backgroundColor colors/black-persist
|
||||
:style :light}}
|
||||
:component qr-scanner/qr-scanner}
|
||||
|
||||
;;TODO WHY MODAL?
|
||||
;[Profile] Notifications settings
|
||||
{:name :notifications-settings
|
||||
:options {:topBar (topbar-options :t/notification-settings)
|
||||
:popGesture false
|
||||
:hardwareBackButton {:dismissModalOnPress false
|
||||
:popStackOnPress false}
|
||||
:insets {:bottom? true
|
||||
:top? true}}
|
||||
:component notifications-settings/notifications-settings}
|
||||
|
||||
;[Browser] New bookmark
|
||||
{:name :new-bookmark
|
||||
;;TODO dynamic title
|
||||
:options {:insets {:bottom? true
|
||||
:top? true}}
|
||||
:component bookmarks/new-bookmark}
|
||||
|
||||
;Profile
|
||||
{:name :profile
|
||||
;;TODO custom toolbar
|
||||
:options {:insets {:bottom? true
|
||||
:top? true}}
|
||||
:component contact/profile-view}
|
||||
|
||||
;; BUG REPORT
|
||||
{:name :bug-report
|
||||
:options {:insets {:top? true}}
|
||||
:component bug-report/bug-report}])
|
||||
:component default-sync-period-settings/default-sync-period-settings}])
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.stickers.styles
|
||||
(:require
|
||||
[legacy.status-im.ui.components.colors :as colors]))
|
||||
|
||||
(def screen
|
||||
{:flex 1})
|
||||
|
||||
(defn sticker-image
|
||||
[sticker-icon-size]
|
||||
{:margin 16
|
||||
:width sticker-icon-size
|
||||
:height sticker-icon-size
|
||||
:border-radius (/ sticker-icon-size 2)})
|
||||
|
||||
(defn price-badge
|
||||
[not-enough-snt?]
|
||||
{:background-color (if not-enough-snt? colors/gray colors/blue)
|
||||
:border-radius 14
|
||||
:flex-direction :row
|
||||
:padding-horizontal 6
|
||||
:height 28
|
||||
:align-items :center})
|
||||
|
||||
(def installed-icon
|
||||
{:height 28
|
||||
:width 28
|
||||
:border-radius 14
|
||||
:background-color colors/green
|
||||
:align-items :center
|
||||
:justify-content :center})
|
||||
@@ -1,114 +0,0 @@
|
||||
(ns legacy.status-im.ui.screens.stickers.views
|
||||
(:require
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.fast-image :as fast-image]
|
||||
[legacy.status-im.ui.components.icons.icons :as icons]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[legacy.status-im.ui.screens.stickers.styles :as styles]
|
||||
[re-frame.core :as re-frame]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.money :as money]
|
||||
[utils.re-frame :as rf])
|
||||
(:require-macros [legacy.status-im.utils.views :refer [defview letsubs]]))
|
||||
|
||||
(defn cache
|
||||
[url]
|
||||
(str url "&download=true"))
|
||||
|
||||
(defn- thumbnail-icon
|
||||
[uri size]
|
||||
[fast-image/fast-image
|
||||
{:style {:width size :height size :border-radius (/ size 2)}
|
||||
:source {:uri (cache uri)}}])
|
||||
|
||||
(defn price-badge
|
||||
[_]
|
||||
(let [chain (rf/sub [:ethereum/chain-keyword])
|
||||
balance (rf/sub [:balance-default])]
|
||||
(fn [{:keys [id price pending owned installed]}]
|
||||
(let [snt (if (= :mainnet chain) (:SNT balance) (:STT balance))
|
||||
price (money/bignumber price)
|
||||
not-enough-snt? (or (nil? snt) (money/equal-to snt 0) (money/greater-than price snt))
|
||||
free (money/equal-to price 0)]
|
||||
(if installed
|
||||
[react/view styles/installed-icon
|
||||
[icons/icon :main-icons/check {:color colors/white-persist :height 20 :width 20}]]
|
||||
[react/touchable-highlight
|
||||
{:on-press #(cond pending nil
|
||||
(or owned free)
|
||||
(re-frame/dispatch [:stickers/install-pack id])
|
||||
not-enough-snt? nil
|
||||
:else (fn [] (js/alert "feature no longer supported")))}
|
||||
[react/view (styles/price-badge (and (not (or owned free)) not-enough-snt?))
|
||||
(when (and (not free) (not owned))
|
||||
[icons/tiny-icon :tiny-icons/tiny-snt
|
||||
{:color colors/white-persist :container-style {:margin-right 6}}])
|
||||
(if pending
|
||||
[react/activity-indicator
|
||||
{:animating true
|
||||
:color colors/white-persist}]
|
||||
[react/text
|
||||
{:style {:color colors/white-persist}
|
||||
:accessibility-label :sticker-pack-price}
|
||||
(cond owned (i18n/label :t/install)
|
||||
free (i18n/label :t/free)
|
||||
:else (str (money/wei-> :eth price)))])]])))))
|
||||
|
||||
(defn pack-badge
|
||||
[{:keys [name author thumbnail preview id] :as pack}]
|
||||
[react/touchable-highlight {:on-press #(re-frame/dispatch [:navigate-to :stickers-pack {:id id}])}
|
||||
[react/view {:margin-bottom 27}
|
||||
[fast-image/fast-image {:style {:height 200 :border-radius 20} :source {:uri (cache preview)}}]
|
||||
[react/view {:height 64 :align-items :center :flex-direction :row}
|
||||
[thumbnail-icon thumbnail 40]
|
||||
[react/view {:padding-horizontal 16 :flex 1}
|
||||
[react/text {:accessibility-label :sticker-pack-name} name]
|
||||
[react/text
|
||||
{:style {:color colors/gray :margin-top 6}
|
||||
:accessibility-label :sticker-pack-author} author]]
|
||||
[price-badge pack]]]])
|
||||
|
||||
(defview packs
|
||||
[]
|
||||
(letsubs [all-packs [:stickers/all-packs]]
|
||||
[react/view styles/screen
|
||||
[react/keyboard-avoiding-view {:flex 1}
|
||||
(if (seq all-packs)
|
||||
[react/scroll-view {:keyboard-should-persist-taps :handled :style {:padding 16}}
|
||||
[react/view
|
||||
(for [pack all-packs]
|
||||
^{:key pack}
|
||||
[pack-badge pack])]]
|
||||
[react/view {:flex 1 :align-items :center :justify-content :center}
|
||||
[react/activity-indicator {:animating true}]])]]))
|
||||
|
||||
(def sticker-icon-size 60)
|
||||
|
||||
(defview pack-main
|
||||
[]
|
||||
(letsubs [{:keys [name author thumbnail stickers]
|
||||
:as pack}
|
||||
[:stickers/get-current-pack]]
|
||||
[react/keyboard-avoiding-view {:flex 1}
|
||||
(if pack
|
||||
[react/view {:flex 1}
|
||||
[react/view {:height 74 :align-items :center :flex-direction :row :padding-horizontal 16}
|
||||
[thumbnail-icon thumbnail 64]
|
||||
[react/view {:padding-horizontal 16 :flex 1}
|
||||
[react/text {:style {:typography :header}} name]
|
||||
[react/text {:style {:color colors/gray :margin-top 6}} author]]
|
||||
[price-badge pack]]
|
||||
[react/view {:style {:padding-top 8 :flex 1}}
|
||||
[react/scroll-view {:keyboard-should-persist-taps :handled :style {:flex 1}}
|
||||
[react/view {:flex-direction :row :flex-wrap :wrap}
|
||||
(for [{:keys [url]} stickers]
|
||||
^{:key url}
|
||||
[fast-image/fast-image
|
||||
{:style (styles/sticker-image sticker-icon-size)
|
||||
:source {:uri (cache url)}}])]]]]
|
||||
[react/view {:flex 1 :align-items :center :justify-content :center}
|
||||
[react/activity-indicator {:animating true}]])]))
|
||||
|
||||
(defview pack
|
||||
[]
|
||||
[pack-main])
|
||||
@@ -2,12 +2,14 @@
|
||||
(:require-macros [legacy.status-im.utils.views :as views])
|
||||
(:require
|
||||
[legacy.status-im.ui.components.colors :as colors]
|
||||
[legacy.status-im.ui.components.core :as quo]
|
||||
[legacy.status-im.ui.components.core :as components]
|
||||
[legacy.status-im.ui.components.list.item :as list.item]
|
||||
[legacy.status-im.ui.components.react :as react]
|
||||
[quo.core :as quo]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.constants :as constants]
|
||||
[utils.i18n :as i18n]))
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(views/defview sync-settings
|
||||
[]
|
||||
@@ -17,65 +19,71 @@
|
||||
use-mailservers?]}
|
||||
[:profile/profile]
|
||||
current-mailserver-name [:mailserver/current-name]]
|
||||
[react/scroll-view
|
||||
[quo/list-header (i18n/label :t/data-syncing)]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/mobile-network-settings)
|
||||
:accessibility-label :notifications-button
|
||||
:on-press #(re-frame/dispatch [:navigate-to :mobile-network-settings])
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:accessory-text (if syncing-on-mobile-network?
|
||||
(i18n/label :t/mobile-network-use-mobile)
|
||||
(i18n/label :t/mobile-network-use-wifi))}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/backup-settings)
|
||||
:accessibility-label :backup-settings-button
|
||||
:on-press #(re-frame/dispatch [:navigate-to :backup-settings])
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:accessory-text (if backup-enabled?
|
||||
(i18n/label :t/backup-enabled)
|
||||
(i18n/label :t/backup-disabled))}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/default-sync-period)
|
||||
:accessibility-label :default-sync-period-button
|
||||
:on-press #(re-frame/dispatch [:navigate-to :default-sync-period-settings])
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:accessory-text (cond
|
||||
(= default-sync-period constants/two-mins)
|
||||
(i18n/label :t/two-minutes)
|
||||
(or
|
||||
(nil? default-sync-period)
|
||||
(= default-sync-period constants/one-day))
|
||||
(i18n/label :t/one-day)
|
||||
(= default-sync-period constants/three-days)
|
||||
(i18n/label :t/three-days)
|
||||
(= default-sync-period constants/one-week)
|
||||
(i18n/label :t/one-week)
|
||||
(= default-sync-period constants/one-month)
|
||||
(i18n/label :t/one-month))}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :offline-messages-settings-button
|
||||
:title (i18n/label :t/history-nodes)
|
||||
:on-press #(re-frame/dispatch [:navigate-to :offline-messaging-settings])
|
||||
:accessory :text
|
||||
:accessory-text (when use-mailservers? current-mailserver-name)
|
||||
:chevron true}]
|
||||
;; TODO(Ferossgp): Devider componemt
|
||||
[react/view
|
||||
{:height 1
|
||||
:background-color colors/gray-lighter
|
||||
:margin-top 8}]
|
||||
[quo/list-header (i18n/label :t/device-syncing)]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/devices)
|
||||
:accessibility-label :pairing-settings-button
|
||||
:on-press #(re-frame/dispatch [:navigate-to :installations])
|
||||
:chevron true}]]))
|
||||
[:<>
|
||||
[quo/page-nav
|
||||
{:type :no-title
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[react/scroll-view
|
||||
[components/list-header (i18n/label :t/data-syncing)]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/mobile-network-settings)
|
||||
:accessibility-label :notifications-button
|
||||
:on-press #(re-frame/dispatch [:navigate-to :mobile-network-settings])
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:accessory-text (if syncing-on-mobile-network?
|
||||
(i18n/label :t/mobile-network-use-mobile)
|
||||
(i18n/label :t/mobile-network-use-wifi))}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/backup-settings)
|
||||
:accessibility-label :backup-settings-button
|
||||
:on-press #(re-frame/dispatch [:navigate-to :backup-settings])
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:accessory-text (if backup-enabled?
|
||||
(i18n/label :t/backup-enabled)
|
||||
(i18n/label :t/backup-disabled))}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/default-sync-period)
|
||||
:accessibility-label :default-sync-period-button
|
||||
:on-press #(re-frame/dispatch [:navigate-to :default-sync-period-settings])
|
||||
:chevron true
|
||||
:accessory :text
|
||||
:accessory-text (cond
|
||||
(= default-sync-period constants/two-mins)
|
||||
(i18n/label :t/two-minutes)
|
||||
(or
|
||||
(nil? default-sync-period)
|
||||
(= default-sync-period constants/one-day))
|
||||
(i18n/label :t/one-day)
|
||||
(= default-sync-period constants/three-days)
|
||||
(i18n/label :t/three-days)
|
||||
(= default-sync-period constants/one-week)
|
||||
(i18n/label :t/one-week)
|
||||
(= default-sync-period constants/one-month)
|
||||
(i18n/label :t/one-month))}]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:accessibility-label :offline-messages-settings-button
|
||||
:title (i18n/label :t/history-nodes)
|
||||
:on-press #(re-frame/dispatch [:navigate-to :offline-messaging-settings])
|
||||
:accessory :text
|
||||
:accessory-text (when use-mailservers? current-mailserver-name)
|
||||
:chevron true}]
|
||||
;; TODO(Ferossgp): Devider componemt
|
||||
[react/view
|
||||
{:height 1
|
||||
:background-color colors/gray-lighter
|
||||
:margin-top 8}]
|
||||
[components/list-header (i18n/label :t/device-syncing)]
|
||||
[list.item/list-item
|
||||
{:size :small
|
||||
:title (i18n/label :t/devices)
|
||||
:accessibility-label :pairing-settings-button
|
||||
:on-press #(re-frame/dispatch [:navigate-to :installations])
|
||||
:chevron true}]]]))
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
(:require
|
||||
["react-native" :as react-native]
|
||||
[clojure.string :as string]
|
||||
[native-module.utils :as native-utils]
|
||||
[react-native.platform :as platform]
|
||||
[taoensso.timbre :as log]
|
||||
[utils.transforms :as types]))
|
||||
@@ -543,13 +544,21 @@
|
||||
(when platform/android?
|
||||
(.resetKeyboardInputCursor ^js (ui-helper) input selection)))
|
||||
|
||||
;; passwords are hashed
|
||||
(defn reset-password
|
||||
[key-uid current-password# new-password# callback]
|
||||
(log/debug "[native-module] change-database-password")
|
||||
(init-keystore
|
||||
key-uid
|
||||
#(.reEncryptDbAndKeystore ^js (encryption) key-uid current-password# new-password# callback)))
|
||||
([key-uid current-password-hashed new-password-hashed]
|
||||
(native-utils/promisify-native-module-call reset-password
|
||||
key-uid
|
||||
current-password-hashed
|
||||
new-password-hashed))
|
||||
([key-uid current-password-hashed new-password-hashed callback]
|
||||
(log/debug "[native-module] change-database-password")
|
||||
(init-keystore
|
||||
key-uid
|
||||
#(.reEncryptDbAndKeystore ^js (encryption)
|
||||
key-uid
|
||||
current-password-hashed
|
||||
new-password-hashed
|
||||
callback))))
|
||||
|
||||
(defn convert-to-keycard-account
|
||||
[{:keys [key-uid] :as multiaccount-data} settings current-password# new-password callback]
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
(ns native-module.utils
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[promesa.core :as promesa]
|
||||
[utils.transforms :as types]))
|
||||
|
||||
(defn- promisify-callback
|
||||
[res rej]
|
||||
(fn [result]
|
||||
(let [native-error (let [{:keys [error]} (types/json->clj result)]
|
||||
(when-not (string/blank? error)
|
||||
error))]
|
||||
(if native-error
|
||||
(rej (ex-info "Native module call error" {:error native-error}))
|
||||
(res result)))))
|
||||
|
||||
(defn promisify-native-module-call
|
||||
[f & args]
|
||||
(promesa/create
|
||||
(fn [res rej]
|
||||
(->> [(promisify-callback res rej)]
|
||||
(concat args)
|
||||
(apply f)))))
|
||||
@@ -8,6 +8,7 @@
|
||||
[react-native.core :as rn]
|
||||
[react-native.fast-image :as fast-image]
|
||||
[schema.core :as schema]
|
||||
[utils.image-server :as image-server]
|
||||
utils.string))
|
||||
|
||||
(defn initials-avatar
|
||||
@@ -38,23 +39,23 @@
|
||||
online? true
|
||||
ring? true}
|
||||
:as props}]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
full-name (or full-name "Your Name")
|
||||
(let [theme (quo.theme/use-theme)
|
||||
picture-config (:config profile-picture)
|
||||
full-name (or full-name "Your Name")
|
||||
;; image generated with `profile-picture-fn` is round cropped
|
||||
;; no need to add border-radius for them
|
||||
outer-styles (style/outer size (not (:fn profile-picture)))
|
||||
outer-styles (style/outer size (not picture-config))
|
||||
;; Once image is loaded, fast image re-renders view with the help of reagent atom,
|
||||
;; But dynamic updates don't work when user-avatar is used inside hole-view
|
||||
;; https://github.com/status-im/status-mobile/issues/15553
|
||||
image-view (if static? no-flicker-image/image fast-image/fast-image)
|
||||
font-size (get-in style/sizes [size :font-size])
|
||||
amount-initials (if (#{:xs :xxs :xxxs} size) 1 2)
|
||||
sizes (get style/sizes size)
|
||||
indicator-color (get (style/indicator-color theme) (if online? :online :offline))
|
||||
profile-picture-fn (:fn profile-picture)]
|
||||
image-view (if static? no-flicker-image/image fast-image/fast-image)
|
||||
font-size (get-in style/sizes [size :font-size])
|
||||
amount-initials (if (#{:xs :xxs :xxxs} size) 1 2)
|
||||
sizes (get style/sizes size)
|
||||
indicator-color (get (style/indicator-color theme) (if online? :online :offline))]
|
||||
|
||||
[rn/view {:style outer-styles :accessibility-label :user-avatar}
|
||||
(if (and full-name (not (or profile-picture-fn profile-picture)))
|
||||
(if (and full-name (not (or picture-config profile-picture)))
|
||||
;; this is for things that's not user-avatar but are currently using user-avatar to render
|
||||
;; the initials e.g. community avatar
|
||||
[initials-avatar props]
|
||||
@@ -62,8 +63,9 @@
|
||||
{:accessibility-label :profile-picture
|
||||
:style outer-styles
|
||||
:source
|
||||
(cond profile-picture-fn
|
||||
{:uri (profile-picture-fn
|
||||
(cond picture-config
|
||||
{:uri (image-server/get-image-uri
|
||||
picture-config
|
||||
{:length amount-initials
|
||||
:full-name full-name
|
||||
:font-size (:font-size (text/text-style {:size
|
||||
@@ -76,7 +78,7 @@
|
||||
:indicator-center-to-edge (when status-indicator?
|
||||
(:status-indicator-center-to-edge sizes))
|
||||
:indicator-color indicator-color
|
||||
:override-theme theme
|
||||
:theme theme
|
||||
:color (:color style/initials-avatar-text)
|
||||
:size (:width outer-styles)
|
||||
:ring? ring?
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
:background-color button-color}
|
||||
style)}
|
||||
(when (#{:mention :search :search-with-label :scroll-to-bottom} type)
|
||||
[icon-view type])
|
||||
[icon-view type theme])
|
||||
(when (#{:jump-to :mention :notification-down :notification-up :search-with-label} type)
|
||||
[text/text
|
||||
{:weight :medium
|
||||
|
||||
@@ -70,6 +70,6 @@
|
||||
:type (if (= type :error) :error :default)}
|
||||
(when blur?
|
||||
{:text-color colors/white-opa-70
|
||||
:icon-color colors/white-opa-70}))
|
||||
:icon-color colors/white-opa-40}))
|
||||
text]
|
||||
nil)]]))
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
(ns quo.components.buttons.wallet-ctas.style)
|
||||
|
||||
(def container
|
||||
{:padding-top 24
|
||||
:padding-bottom 12
|
||||
:padding-horizontal 20
|
||||
:flex-direction :row
|
||||
:justify-content :center
|
||||
:flex 1
|
||||
:max-height 106})
|
||||
(def inner-container
|
||||
{:flex-direction :row
|
||||
:justify-content :center
|
||||
:flex 1})
|
||||
|
||||
(def button-container
|
||||
{:padding-vertical 8
|
||||
|
||||
@@ -24,30 +24,38 @@
|
||||
:color (colors/theme-colors colors/neutral-50 colors/neutral-40 theme)}} text]])
|
||||
|
||||
(defn view
|
||||
[{:keys [buy-action send-action receive-action bridge-action]}]
|
||||
[{:keys [buy-action send-action receive-action bridge-action swap-action container-style]}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[rn/view {:style style/container}
|
||||
[action-button
|
||||
{:icon :i/add
|
||||
:text (i18n/label :t/buy)
|
||||
:on-press buy-action
|
||||
:theme theme
|
||||
:accessibility-label :buy}]
|
||||
[action-button
|
||||
{:icon :i/send
|
||||
:text (i18n/label :t/send)
|
||||
:on-press send-action
|
||||
:theme theme
|
||||
:accessibility-label :send}]
|
||||
[action-button
|
||||
{:icon :i/receive
|
||||
:text (i18n/label :t/receive)
|
||||
:on-press receive-action
|
||||
:theme theme
|
||||
:accessibility-label :receive}]
|
||||
[action-button
|
||||
{:icon :i/bridge
|
||||
:text (i18n/label :t/bridge)
|
||||
:on-press bridge-action
|
||||
:theme theme
|
||||
:accessibility-label :bridge}]]))
|
||||
[rn/view {:style container-style}
|
||||
[rn/view {:style style/inner-container}
|
||||
[action-button
|
||||
{:icon :i/add
|
||||
:text (i18n/label :t/buy)
|
||||
:on-press buy-action
|
||||
:theme theme
|
||||
:accessibility-label :buy}]
|
||||
[action-button
|
||||
{:icon :i/send
|
||||
:text (i18n/label :t/send)
|
||||
:on-press send-action
|
||||
:theme theme
|
||||
:accessibility-label :send}]
|
||||
[action-button
|
||||
{:icon :i/receive
|
||||
:text (i18n/label :t/receive)
|
||||
:on-press receive-action
|
||||
:theme theme
|
||||
:accessibility-label :receive}]
|
||||
(when swap-action
|
||||
[action-button
|
||||
{:icon :i/swap
|
||||
:text (i18n/label :t/swap)
|
||||
:on-press swap-action
|
||||
:theme theme
|
||||
:accessibility-label :swap}])
|
||||
[action-button
|
||||
{:icon :i/bridge
|
||||
:text (i18n/label :t/bridge)
|
||||
:on-press bridge-action
|
||||
:theme theme
|
||||
:accessibility-label :bridge}]]]))
|
||||
|
||||
@@ -8,9 +8,10 @@
|
||||
[rn/view {:style (assoc container-style :flex-direction :row)}
|
||||
(map-indexed
|
||||
(fn [index action]
|
||||
^{:key index}
|
||||
[:<>
|
||||
[channel-action/view action]
|
||||
(when (not= action (last actions))
|
||||
[rn/view {:width 16}])])
|
||||
(when action
|
||||
^{:key index}
|
||||
[:<>
|
||||
[channel-action/view action]
|
||||
(when (not= action (last actions))
|
||||
[rn/view {:style {:width 16}}])]))
|
||||
actions)])
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
[react-native.linear-gradient :as linear-gradient]))
|
||||
|
||||
(defn view
|
||||
[{:keys [customization-color opacity container-style height]
|
||||
[{:keys [customization-color opacity container-style height bottom-color-override]
|
||||
:or {customization-color :blue}}]
|
||||
;; `when` added for safety, `linear-gradient` will break if `nil` is passed, the `:or`
|
||||
;; destructuring won't work because it's only applied when the `:customization-color` key is
|
||||
;; non-existent. While deleting an account the key exists and has a `nil` value.
|
||||
(let [color-top (colors/resolve-color customization-color 50 20)
|
||||
color-bottom (colors/resolve-color customization-color 50 0)]
|
||||
color-bottom (or bottom-color-override (colors/resolve-color customization-color 50 0))]
|
||||
(when (and color-top color-bottom)
|
||||
[linear-gradient/linear-gradient
|
||||
{:accessibility-label :gradient-cover
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
(defn recovery-phrase-input
|
||||
[{:keys [customization-color blur? on-focus on-blur mark-errors?
|
||||
error-pred-current-word error-pred-written-words word-limit
|
||||
container-style]
|
||||
container-style placeholder-text-color]
|
||||
:or {customization-color :blue
|
||||
word-limit ##Inf
|
||||
error-pred-current-word (constantly false)
|
||||
@@ -62,7 +62,8 @@
|
||||
[rn/text-input
|
||||
(merge {:accessibility-label :recovery-phrase-input
|
||||
:style (style/input theme)
|
||||
:placeholder-text-color (style/placeholder-color state theme blur?)
|
||||
:placeholder-text-color (or placeholder-text-color
|
||||
(style/placeholder-color state theme blur?))
|
||||
:cursor-color (style/cursor-color customization-color theme)
|
||||
:keyboard-appearance theme
|
||||
:multiline true
|
||||
|
||||
@@ -29,22 +29,23 @@
|
||||
:resize-mode :cover}]))
|
||||
|
||||
(defn- content
|
||||
[{:keys [title body]} theme]
|
||||
[rn/view {:style style/content-container}
|
||||
[text/text
|
||||
{:accessibility-label :title
|
||||
:size :paragraph-2
|
||||
:weight :semi-bold
|
||||
:number-of-lines 1
|
||||
:style (style/title theme)}
|
||||
title]
|
||||
[text/text
|
||||
{:accessibility-label :body
|
||||
:size :paragraph-2
|
||||
:weight :medium
|
||||
:number-of-lines 1
|
||||
:style (style/body theme)}
|
||||
body]])
|
||||
[{:keys [title body]}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[rn/view {:style style/content-container}
|
||||
[text/text
|
||||
{:accessibility-label :title
|
||||
:size :paragraph-2
|
||||
:weight :semi-bold
|
||||
:number-of-lines 1
|
||||
:style (style/title theme)}
|
||||
title]
|
||||
[text/text
|
||||
{:accessibility-label :body
|
||||
:size :paragraph-2
|
||||
:weight :medium
|
||||
:number-of-lines 1
|
||||
:style (style/body theme)}
|
||||
body]]))
|
||||
|
||||
(defn- clear-button
|
||||
[{:keys [on-press]}]
|
||||
|
||||
@@ -57,9 +57,9 @@
|
||||
[rn/view {:style (style/author color)}]]])])
|
||||
|
||||
(defn- f-animated-skeleton-view
|
||||
[{:keys [style color skeleton-height animated? translate-x window-width theme] :as data}]
|
||||
(let [loading-color (colors/theme-colors colors/neutral-10 colors/neutral-60 theme)]
|
||||
|
||||
[{:keys [style color skeleton-height animated? translate-x window-width] :as data}]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
loading-color (colors/theme-colors colors/neutral-10 colors/neutral-60 theme)]
|
||||
(rn/use-effect
|
||||
(fn []
|
||||
(when-not animated?
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
[quo.components.notifications.activity-log.style :as style]
|
||||
[quo.components.tags.status-tags :as status-tags]
|
||||
[quo.foundations.colors :as colors]
|
||||
[quo.theme]
|
||||
[react-native.core :as rn]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
@@ -144,12 +145,13 @@
|
||||
label]))
|
||||
|
||||
(defmethod footer-item-view :status
|
||||
[{:keys [label subtype blur?]} _ _]
|
||||
[status-tags/status-tag
|
||||
{:size :small
|
||||
:label label
|
||||
:status {:type subtype}
|
||||
:blur? blur?}])
|
||||
[{:keys [label subtype blur? theme]} _ _]
|
||||
[quo.theme/provider theme
|
||||
[status-tags/status-tag
|
||||
{:size :small
|
||||
:label label
|
||||
:status {:type subtype}
|
||||
:blur? blur?}]])
|
||||
|
||||
(defn- footer
|
||||
[{:keys [replying? items] :as props}]
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
(ns quo.components.password.password-tips.style)
|
||||
|
||||
(def password-tips
|
||||
{:flex-direction :row
|
||||
:margin-horizontal 20
|
||||
:justify-content :space-between})
|
||||
@@ -0,0 +1,30 @@
|
||||
(ns quo.components.password.password-tips.view
|
||||
(:require [quo.components.password.password-tips.style :as style]
|
||||
[quo.components.password.tips.view :as tips]
|
||||
[react-native.core :as rn]
|
||||
[schema.core :as schema]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(def ?schema
|
||||
[:=>
|
||||
[:cat
|
||||
[:map {:closed true}
|
||||
[:lower-case? :boolean]
|
||||
[:upper-case? :boolean]
|
||||
[:numbers? :boolean]
|
||||
[:symbols? :boolean]]
|
||||
[:any]]])
|
||||
|
||||
(defn- view-internal
|
||||
[{:keys [lower-case? upper-case? numbers? symbols?]}]
|
||||
[rn/view {:style style/password-tips}
|
||||
[tips/view {:completed? lower-case?}
|
||||
(i18n/label :t/password-creation-tips-1)]
|
||||
[tips/view {:completed? upper-case?}
|
||||
(i18n/label :t/password-creation-tips-2)]
|
||||
[tips/view {:completed? numbers?}
|
||||
(i18n/label :t/password-creation-tips-3)]
|
||||
[tips/view {:completed? symbols?}
|
||||
(i18n/label :t/password-creation-tips-4)]])
|
||||
|
||||
(def view (schema/instrument #'view-internal ?schema))
|
||||
@@ -79,7 +79,7 @@
|
||||
nil))
|
||||
|
||||
(defn label-component
|
||||
[{:keys [label label-props blur? theme preview-size]}]
|
||||
[{:keys [label label-props label-icon-props blur? theme preview-size]}]
|
||||
[rn/view {:accessibility-label :label-component}
|
||||
(case label
|
||||
:text [text/text
|
||||
@@ -89,6 +89,7 @@
|
||||
{:style (style/label-dot label-props)}]
|
||||
:preview [preview-list/view {:type (:type label-props) :size (or preview-size :size-24)}
|
||||
(:data label-props)]
|
||||
:icon [icon/icon label-props label-icon-props]
|
||||
nil)])
|
||||
|
||||
(defn action-component
|
||||
@@ -108,7 +109,7 @@
|
||||
[{:keys [title on-press action-props accessibility-label blur? container-style] :as props}]
|
||||
[rn/pressable
|
||||
{:style (merge style/container container-style)
|
||||
:on-press on-press
|
||||
:on-press (or on-press (:on-change action-props))
|
||||
:accessibility-label accessibility-label}
|
||||
[rn/view {:style (style/left-sub-container props)}
|
||||
[image-component props]
|
||||
|
||||
@@ -25,6 +25,11 @@
|
||||
[:type [:= :profile]]
|
||||
[:profile-picture [:maybe :schema.quo/profile-picture-source]]])
|
||||
|
||||
(def ?channel
|
||||
[:map
|
||||
[:type [:= :channel]]
|
||||
[:emoji {:optional true} [:maybe ?emoji]]])
|
||||
|
||||
(def ?wallet
|
||||
[:map
|
||||
[:type [:= :wallet]]
|
||||
@@ -60,6 +65,7 @@
|
||||
[:catn
|
||||
[:props
|
||||
[:multi {:dispatch :type}
|
||||
[:channel [:merge ?base ?channel]]
|
||||
[:profile [:merge ?base ?profile]]
|
||||
[:wallet [:merge ?base ?address-base ?wallet]]
|
||||
[:saved-address [:merge ?base ?address-base ?saved-address]]
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
(:require [clojure.set]
|
||||
[oops.core :as oops]
|
||||
[quo.components.avatars.account-avatar.view :as account-avatar]
|
||||
[quo.components.avatars.channel-avatar.view :as channel-avatar]
|
||||
[quo.components.avatars.user-avatar.view :as user-avatar]
|
||||
[quo.components.avatars.wallet-user-avatar.view :as wallet-user-avatar]
|
||||
[quo.components.buttons.button.view :as button]
|
||||
@@ -131,8 +132,22 @@
|
||||
{:size :size-32
|
||||
:customization-color customization-color
|
||||
:full-name full-name}]
|
||||
:channel [channel-avatar/view
|
||||
{:size :size-32
|
||||
:emoji emoji
|
||||
:locked-state :not-set
|
||||
:customization-color customization-color
|
||||
:full-name full-name}]
|
||||
nil))
|
||||
|
||||
(defn- has-header?
|
||||
[share-qr-type]
|
||||
(case share-qr-type
|
||||
(:wallet
|
||||
:watched-address
|
||||
:saved-address) true
|
||||
false))
|
||||
|
||||
(defn- share-qr-code
|
||||
[{:keys [share-qr-type qr-image-uri component-width customization-color full-name
|
||||
profile-picture emoji on-share-press address]
|
||||
@@ -153,7 +168,7 @@
|
||||
{:color colors/white-opa-40
|
||||
:container-style style/watched-account-icon}])]
|
||||
[share-button {:on-press on-share-press}]]
|
||||
(when (not= share-qr-type :profile)
|
||||
(when (has-header? share-qr-type)
|
||||
[header props])
|
||||
[quo.theme/provider :light
|
||||
[qr-code/view
|
||||
@@ -163,6 +178,7 @@
|
||||
:profile :profile
|
||||
(:watched-address :wallet) :wallet-account
|
||||
:saved-address :saved-address
|
||||
:channel :channel
|
||||
nil)
|
||||
:customization-color customization-color
|
||||
:full-name full-name
|
||||
|
||||
@@ -37,18 +37,17 @@
|
||||
[{:keys [title title-accessibility-label input counter-top counter-bottom
|
||||
title-right title-right-props]
|
||||
avatar-props :avatar}]
|
||||
(let [avatar-props (when avatar-props
|
||||
(assoc avatar-props :size :size-32))
|
||||
title-props (assoc title-right-props
|
||||
:title title
|
||||
:right title-right
|
||||
:accessibility-label title-accessibility-label)]
|
||||
(let [title-props (assoc title-right-props
|
||||
:title title
|
||||
:right title-right
|
||||
:accessibility-label title-accessibility-label)]
|
||||
[rn/view {:style style/header}
|
||||
[rn/view {:style style/header-title}
|
||||
(when avatar-props
|
||||
(if (:group? avatar-props)
|
||||
[group-avatar/view avatar-props]
|
||||
[channel-avatar/view avatar-props]))
|
||||
(let [avatar-props (assoc avatar-props :size :size-32)]
|
||||
(if (:group? avatar-props)
|
||||
[group-avatar/view avatar-props]
|
||||
[channel-avatar/view avatar-props])))
|
||||
[standard-title/view title-props]]
|
||||
(when (= input :recovery-phrase)
|
||||
[header-counter counter-top counter-bottom])]))
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
[icons/icon
|
||||
:i/keycard-card
|
||||
{:color secondary-color}])]]
|
||||
(when (= :derivation-path type)
|
||||
(when (and on-press (= :derivation-path type))
|
||||
[rn/pressable
|
||||
{:accessibility-label :derivation-path-button
|
||||
:on-press on-press
|
||||
|
||||
@@ -3,12 +3,9 @@
|
||||
[quo.foundations.colors :as colors]))
|
||||
|
||||
(def account-overview-wrapper
|
||||
{:padding-top 24
|
||||
:padding-horizontal 20
|
||||
:padding-bottom 20
|
||||
:height 130
|
||||
:align-items :center
|
||||
:justify-content :center})
|
||||
{:height 110
|
||||
:align-items :center
|
||||
:justify-content :center})
|
||||
|
||||
(defn account-name
|
||||
[color]
|
||||
|
||||
@@ -96,12 +96,12 @@
|
||||
|
||||
(defn- view-internal
|
||||
[{:keys [state account time-frame time-frame-string time-frame-to-string account-name current-value
|
||||
percentage-change currency-change metrics customization-color]
|
||||
percentage-change currency-change metrics customization-color container-style]
|
||||
:or {customization-color :blue}}]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
time-frame-string (time-string time-frame time-frame-string)
|
||||
up? (= metrics :positive)]
|
||||
[rn/view {:style style/account-overview-wrapper}
|
||||
[rn/view {:style (merge container-style style/account-overview-wrapper)}
|
||||
(if (= :loading state)
|
||||
[loading-state (colors/theme-colors colors/neutral-5 colors/neutral-90 theme)]
|
||||
[rn/view
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
[{:keys [network status amount container-style on-press] :as args}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
(if (= status :add)
|
||||
[network-bridge-add args]
|
||||
[network-bridge-add (assoc args :theme theme)]
|
||||
[rn/pressable
|
||||
{:style (merge (style/container network status theme) container-style)
|
||||
:accessible true
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
(ns quo.components.wallet.network-link.schema)
|
||||
|
||||
(def ^:private ?networks [:enum :optimism :arbitrum :ethereum])
|
||||
(def ^:private ?networks [:enum :optimism :arbitrum :ethereum :mainnet])
|
||||
|
||||
(def ?schema
|
||||
[:=>
|
||||
|
||||
@@ -25,10 +25,10 @@
|
||||
|
||||
(def link-1x-container
|
||||
{:flex 1
|
||||
:height 58
|
||||
:height 57
|
||||
:justify-content :center})
|
||||
|
||||
(def link-2x-container
|
||||
{:flex 1
|
||||
:height 114
|
||||
:height 112
|
||||
:justify-content :center})
|
||||
|
||||
@@ -24,33 +24,50 @@
|
||||
:strokeWidth "1"}]])
|
||||
|
||||
(defn- line
|
||||
[stroke width]
|
||||
[{:keys [stroke-color source-color destination-color width theme]}]
|
||||
[svg/svg
|
||||
{:height "10"
|
||||
:width "100%"
|
||||
:view-box (str "0 0 " width " 10")}
|
||||
[svg/path
|
||||
{:d (str "M0,5 L" width ",5")
|
||||
:stroke stroke
|
||||
:stroke-width "1"}]])
|
||||
:stroke stroke-color
|
||||
:stroke-width "1"}]
|
||||
[svg/defs
|
||||
[svg/linear-gradient
|
||||
{:id "gradient"
|
||||
:x1 "0%"
|
||||
:x2 "100%"
|
||||
:y1 "0%"
|
||||
:y2 "0%"
|
||||
:gradient-units "objectBoundingBox"}
|
||||
[svg/stop {:offset "0%" :stop-color (colors/resolve-color source-color theme)}]
|
||||
[svg/stop {:offset "100%" :stop-color (colors/resolve-color destination-color theme)}]]]])
|
||||
|
||||
(defn link-linear
|
||||
[{:keys [source]}]
|
||||
[{:keys [source destination]}]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
[container-width
|
||||
set-container-width] (rn/use-state 100)
|
||||
stroke-color (colors/resolve-color source theme)
|
||||
stroke-color "url(#gradient)"
|
||||
source-color (colors/resolve-color source theme)
|
||||
destination-color (colors/resolve-color destination theme)
|
||||
fill-color (colors/theme-colors colors/white colors/neutral-90 theme)
|
||||
on-layout (rn/use-callback #(set-container-width
|
||||
(oget % :nativeEvent :layout :width)))]
|
||||
[rn/view
|
||||
{:style style/link-linear-container
|
||||
:on-layout on-layout}
|
||||
[line stroke-color container-width]
|
||||
[line
|
||||
{:stroke-color stroke-color
|
||||
:source-color source-color
|
||||
:destination-color destination-color
|
||||
:width container-width
|
||||
:theme theme}]
|
||||
[rn/view {:style style/left-circle-container}
|
||||
[circle fill-color stroke-color]]
|
||||
[circle fill-color source-color]]
|
||||
[rn/view {:style style/right-circle-container}
|
||||
[circle fill-color stroke-color]]]))
|
||||
[circle fill-color destination-color]]]))
|
||||
|
||||
(defn link-1x
|
||||
[{:keys [source destination]}]
|
||||
|
||||
@@ -32,18 +32,17 @@
|
||||
(def status-icon
|
||||
{:pending :i/pending-state
|
||||
:confirmed :i/positive-state
|
||||
:finalised :i/diamond-blue
|
||||
:finalised :i/diamond
|
||||
:failed :i/negative-state})
|
||||
|
||||
(defn transaction-header
|
||||
[{:keys [transaction
|
||||
timestamp
|
||||
counter
|
||||
theme
|
||||
blur?]
|
||||
:or {transaction :receive
|
||||
counter 1}}]
|
||||
|
||||
counter 1}}
|
||||
theme]
|
||||
[rn/view
|
||||
{:style style/transaction-header-container}
|
||||
[text/text
|
||||
@@ -66,9 +65,10 @@
|
||||
timestamp]]])
|
||||
|
||||
(defn transaction-icon-view
|
||||
[{:keys [theme blur? transaction status]
|
||||
[{:keys [blur? transaction status]
|
||||
:or {transaction :receive
|
||||
status :pending}}]
|
||||
status :pending}}
|
||||
theme]
|
||||
[rn/view {:style style/icon-container}
|
||||
[hole-view/hole-view
|
||||
{:style (style/icon-hole-view theme blur?)
|
||||
@@ -118,10 +118,10 @@
|
||||
:on-press-out on-press-out}
|
||||
[rn/view
|
||||
{:style {:flex-direction :row}}
|
||||
[transaction-icon-view props]
|
||||
[transaction-icon-view props theme]
|
||||
[rn/view
|
||||
{:style style/content-container}
|
||||
[transaction-header props]
|
||||
[transaction-header props theme]
|
||||
[rn/view {:style style/content-line}
|
||||
(when first-tag [prop-tag first-tag blur?])
|
||||
(when second-tag-prefix [prop-text second-tag-prefix theme])
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
quo.components.numbered-keyboard.numbered-keyboard.view
|
||||
quo.components.onboarding.small-option-card.view
|
||||
quo.components.overlay.view
|
||||
quo.components.password.password-tips.view
|
||||
quo.components.password.tips.view
|
||||
quo.components.profile.collectible-list-item.view
|
||||
quo.components.profile.collectible.view
|
||||
@@ -356,6 +357,7 @@
|
||||
|
||||
;;;; Password
|
||||
(def tips quo.components.password.tips.view/view)
|
||||
(def password-tips quo.components.password.password-tips.view/view)
|
||||
|
||||
;;;; Profile
|
||||
(def collectible quo.components.profile.collectible.view/collectible)
|
||||
|
||||
@@ -7,21 +7,24 @@
|
||||
|
||||
(defn show-image-picker
|
||||
([callback]
|
||||
(show-image-picker callback nil))
|
||||
(show-image-picker callback nil nil))
|
||||
([callback
|
||||
{:keys [media-type]
|
||||
:or {media-type "any"}
|
||||
:as props}]
|
||||
:as props}
|
||||
finally-callback]
|
||||
(-> ^js image-picker
|
||||
(.openPicker (clj->js (merge {:mediaType media-type} props)))
|
||||
(.then #(callback (.-path ^js %)))
|
||||
(.catch show-access-error))))
|
||||
(.catch show-access-error)
|
||||
(.finally finally-callback))))
|
||||
|
||||
(defn show-image-picker-camera
|
||||
([callback]
|
||||
(show-image-picker-camera callback nil))
|
||||
([callback props]
|
||||
(show-image-picker-camera callback nil nil))
|
||||
([callback props finally-callback]
|
||||
(-> ^js image-picker
|
||||
(.openCamera (clj->js props))
|
||||
(.then #(callback (.-path ^js %)))
|
||||
(.catch show-access-error))))
|
||||
(.catch show-access-error)
|
||||
(.finally finally-callback))))
|
||||
|
||||
+54
-7
@@ -3,7 +3,9 @@
|
||||
[quo.foundations.colors :as colors]
|
||||
[schema.registry :as registry]))
|
||||
|
||||
(def ^:private ?profile-picture-fn-params
|
||||
(def ^:private ?customization-color (into [:enum :primary] colors/account-colors))
|
||||
|
||||
(def ^:private ?profile-picture-options
|
||||
[:map
|
||||
[:length :int]
|
||||
[:full-name :string]
|
||||
@@ -11,22 +13,67 @@
|
||||
[:indicator-size {:optional true} [:maybe :int]]
|
||||
[:indicator-color {:optional true} [:maybe :string]]
|
||||
[:indicator-center-to-edge {:optional true} [:maybe :int]]
|
||||
[:override-theme :schema.common/theme]
|
||||
[:background-color :string]
|
||||
[:theme :schema.common/theme]
|
||||
[:color :string]
|
||||
[:size :int]
|
||||
[:ring? :boolean]
|
||||
[:ring-width :int]])
|
||||
|
||||
(def ^:private ?account-image-uri-options
|
||||
[:map
|
||||
[:port :int]
|
||||
[:ratio :double]
|
||||
[:key-uid :string]
|
||||
[:image-name :string]
|
||||
[:theme :schema.common/theme]
|
||||
[:override-ring? [:maybe :boolean]]])
|
||||
|
||||
(def ^:private ?initials-image-uri-options
|
||||
[:map
|
||||
[:port :int]
|
||||
[:ratio :double]
|
||||
[:uppercase-ratio :double]
|
||||
[:font-file :string]
|
||||
[:theme :schema.common/theme]
|
||||
[:customization-color ?customization-color]
|
||||
[:key-uid {:optional true} [:maybe :string]]
|
||||
[:public-key {:optional true} [:maybe :string]]
|
||||
[:override-ring? {:optional true} [:maybe :boolean]]])
|
||||
|
||||
(def ^:private ?contact-image-uri-options
|
||||
[:map
|
||||
[:port :int]
|
||||
[:clock :int]
|
||||
[:ratio :double]
|
||||
[:image-name :string]
|
||||
[:public-key :string]
|
||||
[:theme :schema.common/theme]
|
||||
[:override-ring? [:maybe :boolean]]])
|
||||
|
||||
(def ^:private ?image-uri-config
|
||||
[:multi {:dispatch :type}
|
||||
[:account
|
||||
[:map
|
||||
[:type [:= :account]]
|
||||
[:options ?account-image-uri-options]]]
|
||||
[:contact
|
||||
[:map
|
||||
[:type [:= :contact]]
|
||||
[:options ?contact-image-uri-options]]]
|
||||
[:initials
|
||||
[:map
|
||||
[:type [:= :initials]]
|
||||
[:options ?initials-image-uri-options]]]])
|
||||
|
||||
(def ^:private ?profile-picture-source
|
||||
[:or
|
||||
:schema.common/image-source
|
||||
[:map
|
||||
[:fn [:=> [:cat ?profile-picture-fn-params] :string]]]])
|
||||
|
||||
(def ^:private ?customization-color (into [:enum] colors/account-colors))
|
||||
[:config ?image-uri-config]]])
|
||||
|
||||
(defn register-schemas
|
||||
[]
|
||||
(registry/register ::customization-color ?customization-color)
|
||||
(registry/register ::image-uri-config ?image-uri-config)
|
||||
(registry/register ::profile-picture-source ?profile-picture-source)
|
||||
(registry/register ::customization-color ?customization-color))
|
||||
(registry/register ::profile-picture-options ?profile-picture-options))
|
||||
|
||||
@@ -22,6 +22,18 @@
|
||||
{:db (dissoc db :alert-banners)
|
||||
:hide-alert-banner [(:view-id db) (:theme db)]})
|
||||
|
||||
;; Hide/Unhide will only toggle the visibility of alert banners without removing them.
|
||||
;; Required for ios image picker, which doesn't allow top margin
|
||||
(defn hide-alert-banners
|
||||
[{:keys [db]}]
|
||||
{:db (assoc db :alert-banners/hide? true)})
|
||||
|
||||
(defn unhide-alert-banners
|
||||
[{:keys [db]}]
|
||||
{:db (dissoc db :alert-banners/hide?)})
|
||||
|
||||
(re-frame/reg-event-fx :alert-banners/add add-alert-banner)
|
||||
(re-frame/reg-event-fx :alert-banners/remove remove-alert-banner)
|
||||
(re-frame/reg-event-fx :alert-banners/remove-all remove-all-alert-banners)
|
||||
(re-frame/reg-event-fx :alert-banners/hide hide-alert-banners)
|
||||
(re-frame/reg-event-fx :alert-banners/unhide unhide-alert-banners)
|
||||
|
||||
@@ -39,32 +39,34 @@
|
||||
(defn view
|
||||
[]
|
||||
(let [banners (rf/sub [:alert-banners])
|
||||
hide-banners? (rf/sub [:alert-banners/hide?])
|
||||
theme (quo.theme/use-theme)
|
||||
banners-count (count banners)
|
||||
alert-banner (:alert banners)
|
||||
error-banner (:error banners)
|
||||
safe-area-top (safe-area/get-top)
|
||||
colors-map (get-colors-map theme)]
|
||||
[hole-view/hole-view
|
||||
;; required for fix flicker issue https://github.com/status-im/status-mobile/issues/19490
|
||||
{:style {:padding-bottom 1}
|
||||
:holes [{:x 0
|
||||
:y (+ safe-area-top (* constants/alert-banner-height banners-count))
|
||||
:width (:width (rn/get-window))
|
||||
:height constants/alert-banner-height
|
||||
:borderRadius style/border-radius}]}
|
||||
[rn/view {:style {:background-color colors/neutral-100}}
|
||||
[rn/view
|
||||
{:style {:height safe-area-top
|
||||
:background-color (get-in colors-map
|
||||
[(if error-banner :error :alert) :background-color])}}]
|
||||
(when error-banner
|
||||
[banner
|
||||
(assoc error-banner
|
||||
:colors-map colors-map
|
||||
:second-banner? false)])
|
||||
(when alert-banner
|
||||
[banner
|
||||
(assoc alert-banner
|
||||
:colors-map colors-map
|
||||
:second-banner? (= 2 banners-count))])]]))
|
||||
(when-not hide-banners?
|
||||
[hole-view/hole-view
|
||||
;; required for fix flicker issue https://github.com/status-im/status-mobile/issues/19490
|
||||
{:style {:padding-bottom 0.5}
|
||||
:holes [{:x 0
|
||||
:y (+ safe-area-top (* constants/alert-banner-height banners-count))
|
||||
:width (:width (rn/get-window))
|
||||
:height constants/alert-banner-height
|
||||
:borderRadius style/border-radius}]}
|
||||
[rn/view {:style {:background-color colors/neutral-100}}
|
||||
[rn/view
|
||||
{:style {:height safe-area-top
|
||||
:background-color (get-in colors-map
|
||||
[(if error-banner :error :alert) :background-color])}}]
|
||||
(when error-banner
|
||||
[banner
|
||||
(assoc error-banner
|
||||
:colors-map colors-map
|
||||
:second-banner? false)])
|
||||
(when alert-banner
|
||||
[banner
|
||||
(assoc alert-banner
|
||||
:colors-map colors-map
|
||||
:second-banner? (= 2 banners-count))])]])))
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
(defn sheet
|
||||
[{:keys [max-height]}]
|
||||
{:position :absolute
|
||||
:overflow :hidden
|
||||
:bottom 0
|
||||
:left 0
|
||||
:right 0
|
||||
|
||||
@@ -78,9 +78,10 @@
|
||||
|
||||
(defn add-character
|
||||
[state character]
|
||||
(when (can-add-character? state character)
|
||||
(if (can-add-character? state character)
|
||||
(set-input-value state
|
||||
(normalize-value-as-numeric (input-value state) character))))
|
||||
(normalize-value-as-numeric (input-value state) character))
|
||||
state))
|
||||
|
||||
(defn delete-last
|
||||
[state]
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
(ns status-im.contexts.onboarding.enter-seed-phrase.style
|
||||
(ns status-im.common.enter-seed-phrase.style
|
||||
(:require
|
||||
[react-native.safe-area :as safe-area]))
|
||||
|
||||
+24
-16
@@ -1,4 +1,4 @@
|
||||
(ns status-im.contexts.onboarding.enter-seed-phrase.view
|
||||
(ns status-im.common.enter-seed-phrase.view
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[legacy.status-im.ethereum.mnemonic :as mnemonic]
|
||||
@@ -7,8 +7,8 @@
|
||||
[react-native.core :as rn]
|
||||
[react-native.safe-area :as safe-area]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.common.enter-seed-phrase.style :as style]
|
||||
[status-im.constants :as constants]
|
||||
[status-im.contexts.onboarding.enter-seed-phrase.style :as style]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]
|
||||
[utils.security.core :as security]))
|
||||
@@ -63,6 +63,7 @@
|
||||
[quo/recovery-phrase-input
|
||||
{:accessibility-label :passphrase-input
|
||||
:placeholder (i18n/label :t/seed-phrase-placeholder)
|
||||
:placeholder-text-color colors/white-opa-30
|
||||
:auto-capitalize :none
|
||||
:auto-correct false
|
||||
:auto-focus true
|
||||
@@ -86,7 +87,7 @@
|
||||
(take 7)))
|
||||
|
||||
(defn screen
|
||||
[]
|
||||
[recovering-keypair?]
|
||||
(reagent/with-let [keyboard-shown? (reagent/atom false)
|
||||
keyboard-show-listener (.addListener rn/keyboard
|
||||
"keyboardDidShow"
|
||||
@@ -103,9 +104,14 @@
|
||||
(reset! seed-phrase new-phrase))
|
||||
on-submit (fn []
|
||||
(swap! seed-phrase clean-seed-phrase)
|
||||
(rf/dispatch [:onboarding/seed-phrase-entered
|
||||
(security/mask-data @seed-phrase)
|
||||
set-invalid-seed-phrase]))]
|
||||
(if recovering-keypair?
|
||||
(rf/dispatch [:wallet/seed-phrase-entered
|
||||
(security/mask-data
|
||||
@seed-phrase)
|
||||
set-invalid-seed-phrase])
|
||||
(rf/dispatch [:onboarding/seed-phrase-entered
|
||||
(security/mask-data @seed-phrase)
|
||||
set-invalid-seed-phrase])))]
|
||||
(let [words-coll (mnemonic/passphrase->words @seed-phrase)
|
||||
last-word (peek words-coll)
|
||||
pick-suggested-word (fn [pressed-word]
|
||||
@@ -147,7 +153,7 @@
|
||||
[rn/view {:style style/keyboard-container}
|
||||
[quo/predictive-keyboard
|
||||
{:type suggestions-state
|
||||
:blur? true
|
||||
:blur? (not recovering-keypair?)
|
||||
:text suggestions-text
|
||||
:words (keyboard-suggestions last-word)
|
||||
:on-press pick-suggested-word}]])])
|
||||
@@ -155,14 +161,16 @@
|
||||
(.remove keyboard-show-listener)
|
||||
(.remove keyboard-hide-listener))))
|
||||
|
||||
(defn enter-seed-phrase
|
||||
(defn view
|
||||
[]
|
||||
(let [{navigation-bar-top :top} (safe-area/get-insets)]
|
||||
[rn/view {:style style/full-layout}
|
||||
[rn/keyboard-avoiding-view {:style style/page-container}
|
||||
[quo/page-nav
|
||||
{:margin-top navigation-bar-top
|
||||
:background :blur
|
||||
:icon-name :i/arrow-left
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[screen]]]))
|
||||
(fn []
|
||||
(let [{:keys [recovering-keypair?]} (rf/sub [:get-screen-params])]
|
||||
[rn/view {:style style/full-layout}
|
||||
[rn/keyboard-avoiding-view {:style style/page-container}
|
||||
[quo/page-nav
|
||||
{:margin-top navigation-bar-top
|
||||
:background :blur
|
||||
:icon-name (if recovering-keypair? :i/close :i/arrow-left)
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[screen recovering-keypair?]]]))))
|
||||
@@ -3,8 +3,12 @@
|
||||
[status-im.common.floating-button-page.view :as floating-button-page]
|
||||
[test-helpers.component :as h]))
|
||||
|
||||
|
||||
(def sub-mocks {:alert-banners/top-margin 0})
|
||||
|
||||
(h/describe "floating button page"
|
||||
(h/test "renders with a header and standard button"
|
||||
(h/setup-subs sub-mocks)
|
||||
(h/render [floating-button-page/view
|
||||
{:header [quo/page-nav
|
||||
{:type :title-description
|
||||
@@ -18,6 +22,7 @@
|
||||
(h/is-truthy (h/get-by-text "floating button page")))
|
||||
|
||||
(h/test "renders with a header and a slide button"
|
||||
(h/setup-subs sub-mocks)
|
||||
(h/render [floating-button-page/view
|
||||
{:header [quo/page-nav
|
||||
{:type :title-description
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
[react-native.safe-area :as safe-area]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.common.floating-button-page.floating-container.view :as floating-container]
|
||||
[status-im.common.floating-button-page.style :as style]))
|
||||
[status-im.common.floating-button-page.style :as style]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn- show-background
|
||||
[{:keys [window-height keyboard-height footer-container-height content-scroll-y
|
||||
@@ -82,14 +83,15 @@
|
||||
set-content-y-scroll (fn [event]
|
||||
(reset! content-scroll-y
|
||||
(oops/oget event "nativeEvent.contentOffset.y")))]
|
||||
(let [keyboard-shown? (if platform/ios? @keyboard-will-show? @keyboard-did-show?)
|
||||
show-background? (show-background {:window-height window-height
|
||||
:footer-container-height @footer-container-height
|
||||
:keyboard-height @keyboard-height
|
||||
:content-scroll-y @content-scroll-y
|
||||
:content-container-height @content-container-height
|
||||
:header-height @header-height
|
||||
:keyboard-shown? keyboard-shown?})]
|
||||
(let [keyboard-shown? (if platform/ios? @keyboard-will-show? @keyboard-did-show?)
|
||||
footer-container-padding (+ footer-container-padding (rf/sub [:alert-banners/top-margin]))
|
||||
show-background? (show-background {:window-height window-height
|
||||
:footer-container-height @footer-container-height
|
||||
:keyboard-height @keyboard-height
|
||||
:content-scroll-y @content-scroll-y
|
||||
:content-container-height @content-container-height
|
||||
:header-height @header-height
|
||||
:keyboard-shown? keyboard-shown?})]
|
||||
[:<>
|
||||
(when gradient-cover?
|
||||
[quo/gradient-cover {:customization-color customization-color}])
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user