Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f3437bdfd | ||
|
|
b69fe523f9 |
@@ -1,5 +1,4 @@
|
||||
{:config-paths ["status-im"]
|
||||
:output {:exclude-files ["src/user.cljs" "src/dev/user.cljs"]}
|
||||
:lint-as {legacy.status-im.utils.views/defview clojure.core/defn
|
||||
legacy.status-im.utils.views/letsubs clojure.core/let
|
||||
reagent.core/with-let clojure.core/let
|
||||
@@ -16,8 +15,6 @@
|
||||
:case-symbol-test {:level :error}
|
||||
:clj-kondo-config {:level :error}
|
||||
:cond-else {:level :error}
|
||||
:condition-always-true {:level :error}
|
||||
:conflicting-alias {:level :error}
|
||||
:consistent-alias {:level :error
|
||||
:aliases {clojure.set set
|
||||
clojure.string string
|
||||
@@ -45,13 +42,11 @@
|
||||
:missing-body-in-when {:level :error}
|
||||
:missing-clause-in-try {:level :error}
|
||||
:missing-else-branch {:level :error}
|
||||
:multiple-async-in-deftest {:level :error}
|
||||
:not-empty? {:level :error}
|
||||
:plus-one {:level :error}
|
||||
:redundant-do {:level :error}
|
||||
:redundant-let {:level :error}
|
||||
:refer-all {:level :error}
|
||||
:shadowed-fn-param {:level :error}
|
||||
:shadowed-var {:level :error
|
||||
;; We temporarily use :include to define an
|
||||
;; allowlist of core Clojure vars. In the
|
||||
@@ -59,11 +54,9 @@
|
||||
;; vars, we should be able to delete this
|
||||
;; option and lint all vars.
|
||||
:exclude [type name]}
|
||||
:self-requiring-namespace {:level :error}
|
||||
:single-operand-comparison {:level :error}
|
||||
:syntax {:level :error}
|
||||
:unbound-destructuring-default {:level :error}
|
||||
:underscore-in-namespace {:level :error}
|
||||
:uninitialized-var {:level :error}
|
||||
:unknown-require-option {:level :error}
|
||||
:unreachable-code {:level :error}
|
||||
|
||||
@@ -127,8 +127,6 @@ fastlane/README.md
|
||||
# Clj
|
||||
|
||||
.cpcache/
|
||||
src/user.cljs
|
||||
src/dev/user.cljs
|
||||
|
||||
# emacs
|
||||
.dir-locals.el
|
||||
|
||||
@@ -139,7 +139,7 @@ _install-hooks: ##@prepare Create prepare-commit-msg git hook symlink
|
||||
|
||||
# Remove directories and ignored files
|
||||
clean: SHELL := /bin/sh
|
||||
clean: _fix-node-perms _tmpdir-rm ios-clean android-clean ##@prepare Remove all output folders
|
||||
clean: _fix-node-perms _tmpdir-rm ##@prepare Remove all output folders
|
||||
git clean -dXf
|
||||
|
||||
# Remove directories, ignored and non-ignored files
|
||||
@@ -196,10 +196,6 @@ xcode-clean: XCODE_HOME := $(HOME)/Library/Developer/Xcode
|
||||
xcode-clean: ##@prepare Clean XCode derived data and archives
|
||||
rm -fr $(XCODE_HOME)/DerivedData/StatusIm-* $(XCODE_HOME)/Archives/*/StatusIm*
|
||||
|
||||
ios-simulator-cache-clean: SHELL := /bin/sh
|
||||
ios-simulator-cache-clean: ##@prepare Clean iOS Simulator Caches
|
||||
rm -rf ~/Library/Developer/CoreSimulator/Cache
|
||||
|
||||
#----------------
|
||||
# Release builds
|
||||
#----------------
|
||||
@@ -353,11 +349,13 @@ test: export SHADOW_NS_REGEXP := .*-test$$
|
||||
test: ##@test Run all Clojure tests
|
||||
test: _test-clojure
|
||||
|
||||
test-watch-for-repl: export TARGET := default
|
||||
test-watch-for-repl: export SHADOW_OUTPUT_TO := target/test/test.js
|
||||
test-watch-for-repl: export SHADOW_NS_REGEXP := .*-test$$
|
||||
test-watch-for-repl: status-go-library
|
||||
test-watch-for-repl: ##@test Watch all Clojure tests and support REPL connections
|
||||
yarn install && shadow-cljs compile mocks && \
|
||||
yarn node-pre-gyp rebuild
|
||||
rm -f target/test/test.js
|
||||
yarn shadow-cljs compile mocks && \
|
||||
concurrently --kill-others --prefix-colors 'auto' --names 'build,repl' \
|
||||
'yarn shadow-cljs watch test --verbose' \
|
||||
"until [ -f $$SHADOW_OUTPUT_TO ] ; do sleep 1 ; done ; node --require ./test-resources/override.js $$SHADOW_OUTPUT_TO --repl"
|
||||
@@ -411,17 +409,13 @@ geth-connect: ##@other Connect to Geth on the device
|
||||
build/bin/geth attach http://localhost:8545
|
||||
|
||||
ios-clean: SHELL := /bin/sh
|
||||
ios-clean: ios-simulator-cache-clean
|
||||
ios-clean: ##@prepare Clean iOS build artifacts
|
||||
git clean -dxf -f target/ios
|
||||
|
||||
android-clean: SHELL := /bin/sh
|
||||
android-clean: export TARGET := gradle
|
||||
android-clean: ##@prepare Clean Gradle state
|
||||
git clean -dxf -f ./android/app/build; \
|
||||
rm -rf android/.gradle \
|
||||
rm -rf android/build \
|
||||
rm -rf ~/.gradle
|
||||
|
||||
[[ -d android/.gradle ]] && cd android && ./gradlew clean
|
||||
|
||||
android-ports: export TARGET := android-sdk
|
||||
android-ports: ##@other Add proxies to Android Device/Simulator
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<!-- These are added by React Native for debug mode, but actually aren't needed in release mode -->
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
<uses-permission tools:node="remove" android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
<!-- Remove licensing permission since we don't license our app and it blocks F-Droid submissions. -->
|
||||
<uses-permission tools:node="remove" android:name="com.android.vending.CHECK_LICENSE"/>
|
||||
|
||||
|
||||
@@ -946,6 +946,8 @@ PODS:
|
||||
- react-native-status-keycard (2.5.39):
|
||||
- Keycard
|
||||
- React
|
||||
- react-native-transparent-video (0.1.0):
|
||||
- React-Core
|
||||
- react-native-webview (13.6.3):
|
||||
- React-Core
|
||||
- React-nativeconfig (0.73.5)
|
||||
@@ -1236,6 +1238,7 @@ DEPENDENCIES:
|
||||
- "react-native-slider (from `../node_modules/@react-native-community/slider`)"
|
||||
- react-native-status (from `../modules/react-native-status`)
|
||||
- react-native-status-keycard (from `../node_modules/react-native-status-keycard`)
|
||||
- react-native-transparent-video (from `../node_modules/react-native-transparent-video`)
|
||||
- react-native-webview (from `../node_modules/react-native-webview`)
|
||||
- React-nativeconfig (from `../node_modules/react-native/ReactCommon`)
|
||||
- React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
|
||||
@@ -1385,6 +1388,8 @@ EXTERNAL SOURCES:
|
||||
:path: "../modules/react-native-status"
|
||||
react-native-status-keycard:
|
||||
:path: "../node_modules/react-native-status-keycard"
|
||||
react-native-transparent-video:
|
||||
:path: "../node_modules/react-native-transparent-video"
|
||||
react-native-webview:
|
||||
:path: "../node_modules/react-native-webview"
|
||||
React-nativeconfig:
|
||||
@@ -1528,6 +1533,7 @@ SPEC CHECKSUMS:
|
||||
react-native-slider: 12bd76d3d568c9c5500825db54123d44b48e4ad4
|
||||
react-native-status: 21f75d492fd311dc111303da38a7a2b23a8a8466
|
||||
react-native-status-keycard: f1c1227b2d5984c10fb44db68e4bfd2937f31e98
|
||||
react-native-transparent-video: e484ad11ace8e5f62516e2c5e15efd3cb4df24b0
|
||||
react-native-webview: 88293a0f23eca8465c0433c023ec632930e644d0
|
||||
React-nativeconfig: 1166714a4f7ea57a0df5c2cb44fbc70f98d580f9
|
||||
React-NativeModulesApple: 726664e9829eb5eed8170241000e46ead269a05f
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
// This code has pieces that were autogenerated but is now managed manually
|
||||
// Here lies the node bindings used for integration tests
|
||||
// These are basically C calls to exported status-go functions
|
||||
// Along 1 additional Poll function to get signals to work
|
||||
// function names registered here in init() are used in various places
|
||||
// ref -> status-mobile/src/tests/test_utils.cljs
|
||||
// DO NOT EDIT: code is autogenerated by go2nodebinding from Go code.
|
||||
// https://github.com/divan/go2nodebinding
|
||||
|
||||
#include <node.h>
|
||||
#include <string>
|
||||
@@ -1151,13 +1147,10 @@ void _PollSignal(const FunctionCallbackInfo<Value>& args) {
|
||||
v8::Local<v8::Function> func = v8::Local<v8::Function>::Cast(args[0]);
|
||||
if (!q.empty()) {
|
||||
const unsigned argc = 1;
|
||||
v8::Local<v8::Value> argv[argc] = {v8::String::NewFromUtf8(isolate, q.front().c_str()).ToLocalChecked()};
|
||||
v8::MaybeLocal<v8::Value> result = func->Call(isolate->GetCurrentContext(), v8::Null(isolate), argc, argv);
|
||||
if (result.IsEmpty()) {
|
||||
isolate->ThrowException(Exception::Error(
|
||||
String::NewFromUtf8Literal(isolate, "Error calling the callback function")));
|
||||
return;
|
||||
}
|
||||
v8::Local<v8::Value> argv[argc] =
|
||||
{ v8::String::NewFromUtf8(isolate,q.front().c_str()).ToLocalChecked()};
|
||||
|
||||
func->Call(isolate->GetCurrentContext(), v8::Null(isolate), argc, argv);
|
||||
q.pop();
|
||||
}
|
||||
}
|
||||
|
||||
+103
-121
@@ -90,20 +90,11 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "cider/cider-nrepl/0.44.0/cider-nrepl-0.44.0",
|
||||
"path": "cider/cider-nrepl/0.31.0/cider-nrepl-0.31.0",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "c3d3a729beaa728d0ee6a3678a48c880b6bc95f1",
|
||||
"sha256": "0klcppvydxlx9ji376mvz40yv3s7awq6p9yd57wigpfy4m2yv0w6"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "cider/orchard/0.21.0/orchard-0.21.0",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "073617f16a132c7f20608d971244753d4e704129",
|
||||
"sha256": "1n2afbyhw9x9kvfna4m4x6n6pwjiqsqcayql644bw2932i1isrkj"
|
||||
"sha1": "1f28a4a834a7a46cf24def971b1a705a6795c73a",
|
||||
"sha256": "0h4pyzy8rzzh567khvimw2cs8jr640kqxgaxvbfx1s5yfp56fka2"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -117,11 +108,11 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "clj-kondo/clj-kondo/2024.03.13/clj-kondo-2024.03.13",
|
||||
"path": "clj-kondo/clj-kondo/2023.09.07/clj-kondo-2023.09.07",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "adec398a95322f3a27baf0a92b658493335464d1",
|
||||
"sha256": "0r97hsj7m3qc12xwyxx6m1a71gqp5aiy99imcf8r0nz2dnjmj0kz"
|
||||
"sha1": "9bf516b973a0b77d7dc5a3c6c84a884e3470e7b7",
|
||||
"sha256": "1qkw5ryqdzy4wl3xbr0r72ikrch75z5vh1dny569y3jlc888gkv8"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -260,15 +251,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "c9ad4a0850ab676c5c64461a05ca524cdfff59f1",
|
||||
"sha256": "170rflxnqnah0265ik2aylmxkshyqbf2zas9bp2l32xqj9l6jsaf"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/errorprone/error_prone_annotations/2.15.0/error_prone_annotations-2.15.0",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
@@ -342,38 +324,11 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "commons-codec/commons-codec/1.15/commons-codec-1.15",
|
||||
"path": "com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d",
|
||||
"sha256": "0qzd8v96j4x7jjcfpvvdh9ar1xhwxpxi2rh51nzhj0br7bbgdsdk"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "f95188e3d372e20e7328706c37ef366e5d7859b0",
|
||||
"sha256": "1xyyl54sfxsdcwxdyq6b0azmr31b4dwqns850jjkw9a9dwrh5v54"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "commons-io/commons-io/2.11.0/commons-io-2.11.0",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "a2503f302b11ebde7ebc3df41daebe0e4eea3689",
|
||||
"sha256": "020946yakki3qzc652arfndzi594drxanidz9bawbb6vhxnjy6wn"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "compojure/compojure/1.5.2/compojure-1.5.2",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "0b5258d0616ffc5f64c2b6d95f09de56d24df439",
|
||||
"sha256": "1s2k05lwnlm9a66mxnsss437i9gp70dny8y2rlfkl090s6mdqsaf"
|
||||
"sha1": "c9ad4a0850ab676c5c64461a05ca524cdfff59f1",
|
||||
"sha256": "170rflxnqnah0265ik2aylmxkshyqbf2zas9bp2l32xqj9l6jsaf"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -413,6 +368,42 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "commons-codec/commons-codec/1.15/commons-codec-1.15",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d",
|
||||
"sha256": "0qzd8v96j4x7jjcfpvvdh9ar1xhwxpxi2rh51nzhj0br7bbgdsdk"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "f95188e3d372e20e7328706c37ef366e5d7859b0",
|
||||
"sha256": "1xyyl54sfxsdcwxdyq6b0azmr31b4dwqns850jjkw9a9dwrh5v54"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "commons-io/commons-io/2.11.0/commons-io-2.11.0",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "a2503f302b11ebde7ebc3df41daebe0e4eea3689",
|
||||
"sha256": "020946yakki3qzc652arfndzi594drxanidz9bawbb6vhxnjy6wn"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "compojure/compojure/1.5.2/compojure-1.5.2",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "0b5258d0616ffc5f64c2b6d95f09de56d24df439",
|
||||
"sha256": "1s2k05lwnlm9a66mxnsss437i9gp70dny8y2rlfkl090s6mdqsaf"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "crypto-equality/crypto-equality/1.0.1/crypto-equality-1.0.1",
|
||||
"host": "https://repo.clojars.org",
|
||||
@@ -584,15 +575,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "mx/cider/logjam/0.1.1/logjam-0.1.1",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "0e9a1c08d4e80e46be8ed8b8cb894bef5e56f39d",
|
||||
"sha256": "1p6hnacyfjn365r0li639lf9fnqpgx1cs7jz7066cn566wjw46az"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/cgrand/macrovich/0.2.1/macrovich-0.2.1",
|
||||
"host": "https://repo.clojars.org",
|
||||
@@ -621,11 +603,11 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "nrepl/nrepl/1.1.0/nrepl-1.1.0",
|
||||
"path": "nrepl/nrepl/0.9.0/nrepl-0.9.0",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "69f138d4a778c199e5d72446ca25998222ba0862",
|
||||
"sha256": "0n29xczgwpqv98vz36sdic98mf07dmzhjawlxd63p2s2zafkp1ss"
|
||||
"sha1": "49beada131959f08f9a20899affbd1b10c03a668",
|
||||
"sha256": "1phak0479s27ffw9wzz7pi8cqqs6ipsm15dhgw9szxxcfhx529qa"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -638,15 +620,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/apache/ant/ant/1.10.11/ant-1.10.11",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "b875cd48a0bc955ae9c5c477ad991e1f26fb24d2",
|
||||
"sha256": "0m07pifkdpwghpp8wvqh14sbxazmjbkkpsfakw6ixq5apfdvih48"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/apache/ant/ant-launcher/1.10.11/ant-launcher-1.10.11",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
@@ -657,11 +630,11 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/babashka/sci/0.8.41/sci-0.8.41",
|
||||
"host": "https://repo.clojars.org",
|
||||
"path": "org/apache/ant/ant/1.10.11/ant-1.10.11",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "e8d59dc588a1e1f0c62c21fb47c093eeed043f04",
|
||||
"sha256": "1lhv283fs0bnqbj1jhfgyy2rv6hspnhdgsiklqy3rqxrqbnrww6w"
|
||||
"sha1": "b875cd48a0bc955ae9c5c477ad991e1f26fb24d2",
|
||||
"sha256": "0m07pifkdpwghpp8wvqh14sbxazmjbkkpsfakw6ixq5apfdvih48"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -674,6 +647,15 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/babashka/sci/0.7.38/sci-0.7.38",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "ef2d8c74065b9a7d685a11bff017676db308a923",
|
||||
"sha256": "04pkxwcgkd1p4f4rszsr6pp18fl0vni1az47a390llrhyyrjcckn"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
@@ -764,15 +746,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/clojure/google-closure-library/0.0-20230227-c7c0a541/google-closure-library-0.0-20230227-c7c0a541",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "533ce2bdbb7925db781449abb6527af1e6c5e782",
|
||||
"sha256": "0js19lw8bp9gym3pn47h867vhf65j18qc6x1pfn883vkwyasm18l"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/clojure/google-closure-library-third-party/0.0-20230227-c7c0a541/google-closure-library-third-party-0.0-20230227-c7c0a541",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
@@ -782,6 +755,15 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/clojure/google-closure-library/0.0-20230227-c7c0a541/google-closure-library-0.0-20230227-c7c0a541",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "533ce2bdbb7925db781449abb6527af1e6c5e782",
|
||||
"sha256": "0js19lw8bp9gym3pn47h867vhf65j18qc6x1pfn883vkwyasm18l"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/clojure/math.combinatorics/0.2.0/math.combinatorics-0.2.0",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
@@ -809,15 +791,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/clojure/tools.analyzer/1.1.0/tools.analyzer-1.1.0",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "692882a35d7b50947d6e4852fba8a51d8d5e3646",
|
||||
"sha256": "08fzw3srrppgq1d11sh1ghnyvi24ixa10kbqsncc7xyx7fybcs0k"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/clojure/tools.analyzer.jvm/1.2.2/tools.analyzer.jvm-1.2.2",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
@@ -827,6 +800,15 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/clojure/tools.analyzer/1.1.0/tools.analyzer-1.1.0",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "692882a35d7b50947d6e4852fba8a51d8d5e3646",
|
||||
"sha256": "08fzw3srrppgq1d11sh1ghnyvi24ixa10kbqsncc7xyx7fybcs0k"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/clojure/tools.cli/1.0.206/tools.cli-1.0.206",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
@@ -837,11 +819,11 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/clojure/tools.logging/1.2.4/tools.logging-1.2.4",
|
||||
"path": "org/clojure/tools.logging/1.1.0/tools.logging-1.1.0",
|
||||
"host": "https://repo1.maven.org/maven2",
|
||||
"jar": {
|
||||
"sha1": "3a85764aa30c434a5b0375a2ee72924aa040fa66",
|
||||
"sha256": "0a8riw23pfkiiyz98ccmljpbw1z13mxl73pdgyz80j93s0y0mzj6"
|
||||
"sha1": "84cb5d00caa9df2ee504d46f6107f4708271f619",
|
||||
"sha256": "0x2zzivn38z179lxkw9wbi9n9qwsf466lrd9y27khdz7wbxhscb5"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -980,15 +962,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "reagent/reagent/1.2.0/reagent-1.2.0",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "1b9a181b5c7ed3557768d2ea0c66f5616aef5e97",
|
||||
"sha256": "0scvkzfqjs613z10rngh7427v3pxdqablf0fcl65pbpkzz16wgav"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "re-com/re-com/2.8.0/re-com-2.8.0",
|
||||
"host": "https://repo.clojars.org",
|
||||
@@ -999,20 +972,11 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "refactor-nrepl/refactor-nrepl/3.9.1/refactor-nrepl-3.9.1",
|
||||
"path": "re-frame/re-frame/1.3.0/re-frame-1.3.0",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "f949af92dd1d6fef59d7447bd0cb62118e34eca1",
|
||||
"sha256": "0dml9yvjmji6xk2sk3cdmkvvnh13rw29szxxl363hap8yg28xcs1"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "re-frame/re-frame/1.4.3/re-frame-1.4.3",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "74e132cc593ed2d72a5d4874954c58677a905f0e",
|
||||
"sha256": "1xdmbjb0gv6dby98y1nx3brz9sdkfzxz9cjk8ajcr1f4zabcaapb"
|
||||
"sha1": "b7135a76432b8141027ba1f4eb6bb15a36acfb7c",
|
||||
"sha256": "16wi01z0j4wn04kldwzxvj0pd9dianjyb000nv5611ikhxk1qrps"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1034,6 +998,24 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "reagent/reagent/1.2.0/reagent-1.2.0",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "1b9a181b5c7ed3557768d2ea0c66f5616aef5e97",
|
||||
"sha256": "0scvkzfqjs613z10rngh7427v3pxdqablf0fcl65pbpkzz16wgav"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "refactor-nrepl/refactor-nrepl/3.9.1/refactor-nrepl-3.9.1",
|
||||
"host": "https://repo.clojars.org",
|
||||
"jar": {
|
||||
"sha1": "f949af92dd1d6fef59d7447bd0cb62118e34eca1",
|
||||
"sha256": "0dml9yvjmji6xk2sk3cdmkvvnh13rw29szxxl363hap8yg28xcs1"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "ring-cors/ring-cors/0.1.8/ring-cors-0.1.8",
|
||||
"host": "https://repo.clojars.org",
|
||||
|
||||
+16
-18
@@ -8,10 +8,9 @@ borkdude/edamame/1.3.23/edamame-1.3.23.jar
|
||||
borkdude/sci.impl.reflector/0.0.1/sci.impl.reflector-0.0.1.jar
|
||||
camel-snake-kebab/camel-snake-kebab/0.4.3/camel-snake-kebab-0.4.3.jar
|
||||
cheshire/cheshire/5.11.0/cheshire-5.11.0.jar
|
||||
cider/cider-nrepl/0.44.0/cider-nrepl-0.44.0.jar
|
||||
cider/orchard/0.21.0/orchard-0.21.0.jar
|
||||
cider/cider-nrepl/0.31.0/cider-nrepl-0.31.0.jar
|
||||
cider/piggieback/0.5.2/piggieback-0.5.2.jar
|
||||
clj-kondo/clj-kondo/2024.03.13/clj-kondo-2024.03.13.jar
|
||||
clj-kondo/clj-kondo/2023.09.07/clj-kondo-2023.09.07.jar
|
||||
cljs-bean/cljs-bean/1.9.0/cljs-bean-1.9.0.jar
|
||||
clout/clout/2.1.2/clout-2.1.2.jar
|
||||
com/andrewmcveigh/cljs-time/0.5.2/cljs-time-0.5.2.jar
|
||||
@@ -27,7 +26,6 @@ com/github/javaparser/javaparser-core/3.25.3/javaparser-core-3.25.3.jar
|
||||
com/google/auto/value/auto-value-annotations/1.6/auto-value-annotations-1.6.jar
|
||||
com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
|
||||
com/google/code/gson/gson/2.9.1/gson-2.9.1.jar
|
||||
com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar
|
||||
com/google/errorprone/error_prone_annotations/2.15.0/error_prone_annotations-2.15.0.jar
|
||||
com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
|
||||
com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar
|
||||
@@ -36,14 +34,15 @@ com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar
|
||||
com/google/javascript/closure-compiler-unshaded/v20230802/closure-compiler-unshaded-v20230802.jar
|
||||
com/google/protobuf/protobuf-java/3.21.12/protobuf-java-3.21.12.jar
|
||||
com/google/re2j/re2j/1.3/re2j-1.3.jar
|
||||
commons-codec/commons-codec/1.15/commons-codec-1.15.jar
|
||||
commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar
|
||||
commons-io/commons-io/2.11.0/commons-io-2.11.0.jar
|
||||
compojure/compojure/1.5.2/compojure-1.5.2.jar
|
||||
com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar
|
||||
com/taoensso/encore/3.68.0/encore-3.68.0.jar
|
||||
com/taoensso/timbre/6.3.1/timbre-6.3.1.jar
|
||||
com/taoensso/truss/1.11.0/truss-1.11.0.jar
|
||||
com/taoensso/tufte/2.6.3/tufte-2.6.3.jar
|
||||
commons-codec/commons-codec/1.15/commons-codec-1.15.jar
|
||||
commons-fileupload/commons-fileupload/1.4/commons-fileupload-1.4.jar
|
||||
commons-io/commons-io/2.11.0/commons-io-2.11.0.jar
|
||||
compojure/compojure/1.5.2/compojure-1.5.2.jar
|
||||
crypto-equality/crypto-equality/1.0.1/crypto-equality-1.0.1.jar
|
||||
crypto-random/crypto-random/1.2.1/crypto-random-1.2.1.jar
|
||||
day8/re-frame/test/0.1.5/test-0.1.5.jar
|
||||
@@ -63,16 +62,15 @@ javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar
|
||||
medley/medley/0.8.2/medley-0.8.2.jar
|
||||
metosin/malli/0.13.0/malli-0.13.0.jar
|
||||
mvxcvi/arrangement/2.1.0/arrangement-2.1.0.jar
|
||||
mx/cider/logjam/0.1.1/logjam-0.1.1.jar
|
||||
net/cgrand/macrovich/0.2.1/macrovich-0.2.1.jar
|
||||
net/java/dev/jna/jna/5.12.1/jna-5.12.1.jar
|
||||
nrepl/bencode/1.1.0/bencode-1.1.0.jar
|
||||
nrepl/nrepl/1.1.0/nrepl-1.1.0.jar
|
||||
nrepl/nrepl/0.9.0/nrepl-0.9.0.jar
|
||||
nubank/matcher-combinators/3.8.8/matcher-combinators-3.8.8.jar
|
||||
org/apache/ant/ant/1.10.11/ant-1.10.11.jar
|
||||
org/apache/ant/ant-launcher/1.10.11/ant-launcher-1.10.11.jar
|
||||
org/babashka/sci/0.8.41/sci-0.8.41.jar
|
||||
org/apache/ant/ant/1.10.11/ant-1.10.11.jar
|
||||
org/babashka/sci.impl.types/0.0.2/sci.impl.types-0.0.2.jar
|
||||
org/babashka/sci/0.7.38/sci-0.7.38.jar
|
||||
org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar
|
||||
org/clojure/clojure/1.11.1/clojure-1.11.1.jar
|
||||
org/clojure/clojurescript/1.11.60/clojurescript-1.11.60.jar
|
||||
@@ -83,15 +81,15 @@ org/clojure/core.rrb-vector/0.1.2/core.rrb-vector-0.1.2.jar
|
||||
org/clojure/core.specs.alpha/0.2.62/core.specs.alpha-0.2.62.jar
|
||||
org/clojure/data.json/2.4.0/data.json-2.4.0.jar
|
||||
org/clojure/data.priority-map/1.1.0/data.priority-map-1.1.0.jar
|
||||
org/clojure/google-closure-library/0.0-20230227-c7c0a541/google-closure-library-0.0-20230227-c7c0a541.jar
|
||||
org/clojure/google-closure-library-third-party/0.0-20230227-c7c0a541/google-closure-library-third-party-0.0-20230227-c7c0a541.jar
|
||||
org/clojure/google-closure-library/0.0-20230227-c7c0a541/google-closure-library-0.0-20230227-c7c0a541.jar
|
||||
org/clojure/math.combinatorics/0.2.0/math.combinatorics-0.2.0.jar
|
||||
org/clojure/spec.alpha/0.3.218/spec.alpha-0.3.218.jar
|
||||
org/clojure/test.check/1.1.1/test.check-1.1.1.jar
|
||||
org/clojure/tools.analyzer/1.1.0/tools.analyzer-1.1.0.jar
|
||||
org/clojure/tools.analyzer.jvm/1.2.2/tools.analyzer.jvm-1.2.2.jar
|
||||
org/clojure/tools.analyzer/1.1.0/tools.analyzer-1.1.0.jar
|
||||
org/clojure/tools.cli/1.0.206/tools.cli-1.0.206.jar
|
||||
org/clojure/tools.logging/1.2.4/tools.logging-1.2.4.jar
|
||||
org/clojure/tools.logging/1.1.0/tools.logging-1.1.0.jar
|
||||
org/clojure/tools.macro/0.1.5/tools.macro-0.1.5.jar
|
||||
org/clojure/tools.reader/1.3.7/tools.reader-1.3.7.jar
|
||||
org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar
|
||||
@@ -107,12 +105,12 @@ org/slf4j/slf4j-nop/2.0.9/slf4j-nop-2.0.9.jar
|
||||
org/wildfly/client/wildfly-client-config/1.0.1.Final/wildfly-client-config-1.0.1.Final.jar
|
||||
org/wildfly/common/wildfly-common/1.5.4.Final/wildfly-common-1.5.4.Final.jar
|
||||
prismatic/schema/1.1.7/schema-1.1.7.jar
|
||||
reagent/reagent/1.2.0/reagent-1.2.0.jar
|
||||
re-com/re-com/2.8.0/re-com-2.8.0.jar
|
||||
refactor-nrepl/refactor-nrepl/3.9.1/refactor-nrepl-3.9.1.jar
|
||||
re-frame/re-frame/1.4.3/re-frame-1.4.3.jar
|
||||
re-frame/re-frame/1.3.0/re-frame-1.3.0.jar
|
||||
re-frisk-remote/re-frisk-remote/1.6.0/re-frisk-remote-1.6.0.jar
|
||||
re-frisk/sente/1.15.0/sente-1.15.0.jar
|
||||
reagent/reagent/1.2.0/reagent-1.2.0.jar
|
||||
refactor-nrepl/refactor-nrepl/3.9.1/refactor-nrepl-3.9.1.jar
|
||||
ring-cors/ring-cors/0.1.8/ring-cors-0.1.8.jar
|
||||
ring/ring-codec/1.2.0/ring-codec-1.2.0.jar
|
||||
ring/ring-core/1.9.6/ring-core-1.9.6.jar
|
||||
|
||||
+158
-132
@@ -10306,20 +10306,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/core/jackson-annotations/2.17.1",
|
||||
"path": "com/fasterxml/jackson/core/jackson-annotations/2.17.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-annotations-2.17.1.pom": {
|
||||
"sha1": "186c3704ed2d09c8870722223a44e7b221da9a5a",
|
||||
"sha256": "sha256-c1XzdEX12vUPUMdfLrzXG6LE+86ktiVBSAWexjVkTnc="
|
||||
"jackson-annotations-2.17.0.pom": {
|
||||
"sha1": "912bf318b1a41adbc921505aef325182cbf71869",
|
||||
"sha256": "sha256-yHz4sMhDRDpM7E5pp4kTM10OR7FqGdI8IcI4JuCS+Mk="
|
||||
},
|
||||
"jackson-annotations-2.17.1.jar": {
|
||||
"sha1": "fca7ef6192c9ad05d07bc50da991bf937a84af3a",
|
||||
"sha256": "sha256-/MrYLhMXLA5DhNtxV3IZybhjHAgg9LGNqqVwFvtmHHY="
|
||||
"jackson-annotations-2.17.0.jar": {
|
||||
"sha1": "880a742337010da4c851f843d8cac150e22dff9f",
|
||||
"sha256": "sha256-hWJWmgAdRuhOojgCJX4zyPaLJOtHweDv0TOgNyxRKVk="
|
||||
},
|
||||
"jackson-annotations-2.17.1.module": {
|
||||
"sha1": "3822431bbca9acce12e554dff0d82de1c802a13e",
|
||||
"sha256": "sha256-VNTVHaATppa+CeH0gDH39At3cYB4qpNuZMAjpP2blZM="
|
||||
"jackson-annotations-2.17.0.module": {
|
||||
"sha1": "c3f7565e70f082a678c6c0bedd479df9a771cfe6",
|
||||
"sha256": "sha256-RkPjPFKL6kG0/F7A4vivbBzVlQAr4voTzE+pF2JXf7w="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -10340,20 +10340,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/core/jackson-core/2.17.1",
|
||||
"path": "com/fasterxml/jackson/core/jackson-core/2.17.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-core-2.17.1.pom": {
|
||||
"sha1": "22a579663e24a696b98a352eb423ca393dc1a4bd",
|
||||
"sha256": "sha256-2UiDEgmgTAE5G5Oq7nrTShyelIY/nnaFwvW2FJoqs50="
|
||||
"jackson-core-2.17.0.pom": {
|
||||
"sha1": "ff0f34af82de11f065364a11d993ab2769b7ec07",
|
||||
"sha256": "sha256-lR2zV/nEmlyId8CJYMSoroa9jJqohwYmZL0E96/+6pU="
|
||||
},
|
||||
"jackson-core-2.17.1.jar": {
|
||||
"sha1": "5e52a11644cd59a28ef79f02bddc2cc3bab45edb",
|
||||
"sha256": "sha256-3bJsih8ahFNeghPEizWyUzcENOMoezzxV3eFb8TljOY="
|
||||
"jackson-core-2.17.0.jar": {
|
||||
"sha1": "a6e5058ef9720623c517252d17162f845306ff3a",
|
||||
"sha256": "sha256-Vb4TD2poA4CIomGFbE44POeZV6D8GinsshOp79bvQ4k="
|
||||
},
|
||||
"jackson-core-2.17.1.module": {
|
||||
"sha1": "ff7615f1ccc2a9c1c8a5a404ab29e53f5abe29a7",
|
||||
"sha256": "sha256-iowJZP38Js7bso2CXfRiGBf7jNIrnnpZ2cdKOl8b3R0="
|
||||
"jackson-core-2.17.0.module": {
|
||||
"sha1": "4a7ed6d155ffc200c55da5827a1ea9db10dcbdc6",
|
||||
"sha256": "sha256-PSDo4ew+imyoB/J3vL2UM//DSs27X9PcJIWs8lKXlIc="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -10374,20 +10374,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/core/jackson-databind/2.17.1",
|
||||
"path": "com/fasterxml/jackson/core/jackson-databind/2.17.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-databind-2.17.1.pom": {
|
||||
"sha1": "6948da5a23ce75d431982d8228b67299b57be315",
|
||||
"sha256": "sha256-YKCKmGrDE60+MmiKTjJ6YSg6ioAa1vphV5+MS+bcj2w="
|
||||
"jackson-databind-2.17.0.pom": {
|
||||
"sha1": "16301a5fdcdd9b6e453dff2307808730b82dda97",
|
||||
"sha256": "sha256-itZM7RCQyt5O90sVYbmWOkUeM/Sc8/oCp4y7LaCvzxc="
|
||||
},
|
||||
"jackson-databind-2.17.1.jar": {
|
||||
"sha1": "0524dcbcccdde7d45a679dfc333e4763feb09079",
|
||||
"sha256": "sha256-tsovfVsaskXOxUlewzl3PS2QVUxIWSWQZz+xj0QAqUg="
|
||||
"jackson-databind-2.17.0.jar": {
|
||||
"sha1": "7173e9e1d4bc6d7ca03bc4eeedcd548b8b580b34",
|
||||
"sha256": "sha256-0O1bVMsbC7sIKOJM51KkOgBtwYizTjpK4yOKzHtjdBg="
|
||||
},
|
||||
"jackson-databind-2.17.1.module": {
|
||||
"sha1": "9dff3c7bfd8d46e05335d0b5dea8f12d5a4f5a20",
|
||||
"sha256": "sha256-C6vGRqBi8NnTWEQCpQJxiE7cPhekGULB4x4OENcdvuY="
|
||||
"jackson-databind-2.17.0.module": {
|
||||
"sha1": "8e40a003945d3481158e7396b5926d09488b83d3",
|
||||
"sha256": "sha256-fHs6Ikpqvls4uhoi/kVMCyVh80uyfnI8FwkluK0Akhs="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -10419,12 +10419,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/jackson-base/2.17.1",
|
||||
"path": "com/fasterxml/jackson/jackson-base/2.17.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-base-2.17.1.pom": {
|
||||
"sha1": "f5b8cfce0e5562b14ac36020b46ec3bcd8f2d990",
|
||||
"sha256": "sha256-4K78YdOPzd2VX/7sAbt1EE8bv/+jpuy1jb50r7cV4yI="
|
||||
"jackson-base-2.17.0.pom": {
|
||||
"sha1": "fb0c3dd80f76b467d6afa2569bbfc10afe5df73f",
|
||||
"sha256": "sha256-w9lEq1Kiy2/0VJ3O6wTUIajeYyo8yl3UVPq8f1KsMeI="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -10441,12 +10441,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/jackson-bom/2.17.1",
|
||||
"path": "com/fasterxml/jackson/jackson-bom/2.17.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-bom-2.17.1.pom": {
|
||||
"sha1": "3bd0a8fe4faa6434ff0109e330349fd8cff0967f",
|
||||
"sha256": "sha256-n0RhIo4SkQPu16MC3BABqy5Mgt086pFcKn27jMYe/SU="
|
||||
"jackson-bom-2.17.0.pom": {
|
||||
"sha1": "b07eaa72b4c5113b038c749723ead41ba2fc9b5e",
|
||||
"sha256": "sha256-SWSsYtWw5Ne/Vuz4sscC+pkUGCpfwtLnZvTPdoZP0qU="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -10485,12 +10485,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/module/jackson-modules-base/2.17.1",
|
||||
"path": "com/fasterxml/jackson/module/jackson-modules-base/2.17.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-modules-base-2.17.1.pom": {
|
||||
"sha1": "a19b31429808678e13cc068c37384e316bc9dd75",
|
||||
"sha256": "sha256-fzPKJF1DhO+gTVBoQIYumA1QMYwGkg+aOt8F1I8LeUM="
|
||||
"jackson-modules-base-2.17.0.pom": {
|
||||
"sha1": "b2d172695b8e6137df2fe53e8e90e3d6ee511268",
|
||||
"sha256": "sha256-tv/miBI+l3tsL99BKBcdSBSBd449w6QT6N4k88k/QAU="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -10511,20 +10511,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.17.1",
|
||||
"path": "com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.17.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-module-jaxb-annotations-2.17.1.pom": {
|
||||
"sha1": "7e73e3750a612c5d176f24245cc6aedc49f41c0a",
|
||||
"sha256": "sha256-HdSa8i8aVUOzkvwAuXjJywz6bijcHLASxuhYlQs4F+E="
|
||||
"jackson-module-jaxb-annotations-2.17.0.pom": {
|
||||
"sha1": "f1bd4e7f9af710bf265ba21394185a5b37051ef2",
|
||||
"sha256": "sha256-VrsjZo/bGjZsQTOWBPuStlf75ARtSMMvlZ0h4EbEXO8="
|
||||
},
|
||||
"jackson-module-jaxb-annotations-2.17.1.jar": {
|
||||
"sha1": "f77e7bf0e64dfcf53bfdcf2764ad7ab92b78a4da",
|
||||
"sha256": "sha256-lD9YVAwZtRcnRl7PTQehHQiLMDOXhIJCmdV+Wv6e7p0="
|
||||
"jackson-module-jaxb-annotations-2.17.0.jar": {
|
||||
"sha1": "e07032ce170277213ac4835169ca79fa0340c7b5",
|
||||
"sha256": "sha256-mTJZetw8/maj37eCxGgJ1B1mtvjo6Y2GSjGKB38XEig="
|
||||
},
|
||||
"jackson-module-jaxb-annotations-2.17.1.module": {
|
||||
"sha1": "feb6451e95bb55db0dc98d26ed4e7968f9ce0267",
|
||||
"sha256": "sha256-EQtHVfGAVgQ9XtnpeQDOQiU/0lbz7EdaPwUMsAhNze4="
|
||||
"jackson-module-jaxb-annotations-2.17.0.module": {
|
||||
"sha1": "d7b4ed7f26b3f096d301ee076120d8a9c89ad387",
|
||||
"sha256": "sha256-2FGXX3oXYyDBfUOnjM4UjGmVLSykOwhdgKwIluHyBBA="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11846,27 +11846,27 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/guava/guava-parent/33.2.0-jre",
|
||||
"path": "com/google/guava/guava-parent/33.1.0-jre",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"guava-parent-33.2.0-jre.pom": {
|
||||
"sha1": "f5bfac48964350d7ad36aa378acff0ed379f816b",
|
||||
"sha256": "sha256-Ng5j7DRbu9j6pK3YluMlAt//9U6DQJhFyzPB+tN7WYU="
|
||||
"guava-parent-33.1.0-jre.pom": {
|
||||
"sha1": "07ac341ceab9c132ddc00771ca187bac04681eeb",
|
||||
"sha256": "sha256-D73wcsyo4Fa6MVQrt18MFJCRRABYbUukIuz8fR38ecY="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/guava/guava-testlib/33.2.0-jre",
|
||||
"path": "com/google/guava/guava-testlib/33.1.0-jre",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"guava-testlib-33.2.0-jre.pom": {
|
||||
"sha1": "1d0c542e891776dcb545a86de861afb18bc79540",
|
||||
"sha256": "sha256-HQFL2lY+v0p64DOKef0JPulhIctiQz0g61uejCvIroo="
|
||||
"guava-testlib-33.1.0-jre.pom": {
|
||||
"sha1": "f25d7efd40db1ad39cc7222a89bee9150b1835ad",
|
||||
"sha256": "sha256-5spqGrW/Ajzn7xgo3vmKiQP/aXt4kVlBK//JCceU1Gs="
|
||||
},
|
||||
"guava-testlib-33.2.0-jre.jar": {
|
||||
"sha1": "4678a8fd0e7fba71a4283154fd4979f51ba294d5",
|
||||
"sha256": "sha256-HK2mwu+stz+eoRk7sMeKr/qT2DjtAGrIBtDXoeYMQlo="
|
||||
"guava-testlib-33.1.0-jre.jar": {
|
||||
"sha1": "55c1c7a9df8d7293bd67d0209320d678f04c5fee",
|
||||
"sha256": "sha256-xttkB1YEm8dLDaYhaH2k6XfUeiCuN4FGaMW/jGpQogM="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12052,20 +12052,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/guava/guava/33.2.0-jre",
|
||||
"path": "com/google/guava/guava/33.1.0-jre",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"guava-33.2.0-jre.pom": {
|
||||
"sha1": "e78e6bc096ac140596ce47c2cd6e90f12a417779",
|
||||
"sha256": "sha256-7YMRSBtY5QTb/BtfR3C/B13BL2yshV3X1/NqUNTEGRA="
|
||||
"guava-33.1.0-jre.pom": {
|
||||
"sha1": "ff9e5899929c5ff0de96f6d9a49359ecc088f756",
|
||||
"sha256": "sha256-VXQa0W+Yzubm3Ard3UOAacxeP/KaJuMXXU/qKHaSVLc="
|
||||
},
|
||||
"guava-33.2.0-jre.jar": {
|
||||
"sha1": "e264781dadc4967e5292f3c4d05f1d153631f7b4",
|
||||
"sha256": "sha256-mfSR6GJizjjROzWB1A93rNtGlqlQVEfDFUR0wxkpCN0="
|
||||
"guava-33.1.0-jre.jar": {
|
||||
"sha1": "9b7ed39143d59e8eabcc6f91ffe4d23db2efe558",
|
||||
"sha256": "sha256-NGrsDrjImHNgyKJk5w/xDC+6dgRG6yfoqwfnjnh6df4="
|
||||
},
|
||||
"guava-33.2.0-jre.module": {
|
||||
"sha1": "5ee9e7ff047a61986890f7ea80a2695c7239169c",
|
||||
"sha256": "sha256-eSlFEwC6UJb1M6LiPOqpManfGBIy21emmK1+PB4TD/g="
|
||||
"guava-33.1.0-jre.module": {
|
||||
"sha1": "603d87c0a1f8da8a608eb1c48ee6200ccba29c13",
|
||||
"sha256": "sha256-6qUNmCgORsANUYq/FUgp3pm1lm0bb+KLffHVvZB+dKg="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12238,12 +12238,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/protobuf/protobuf-bom/4.27.0-RC3",
|
||||
"path": "com/google/protobuf/protobuf-bom/4.27.0-RC1",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"protobuf-bom-4.27.0-RC3.pom": {
|
||||
"sha1": "bd9f15b87d06e839222b2dadcd90272013557048",
|
||||
"sha256": "sha256-S1fPaw/YOC7Ntmsg4yYX+nDJh3kcIsYiOw9GMFhCogI="
|
||||
"protobuf-bom-4.27.0-RC1.pom": {
|
||||
"sha1": "27a037f37e7e95b5e28ec5cd410ed99d34eb0a29",
|
||||
"sha256": "sha256-ilnU8jEpEPRz7kIC0n8QQBt1nSyGY6xr/dQP299Bfy4="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12489,16 +12489,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/protobuf/protobuf-java/4.27.0-RC3",
|
||||
"path": "com/google/protobuf/protobuf-java/4.27.0-RC1",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"protobuf-java-4.27.0-RC3.pom": {
|
||||
"sha1": "eb6c9cf9ce563effc186f0a8bbc35aa53bbcf74e",
|
||||
"sha256": "sha256-tYj2q0siUF4fcX4dwZ/NhbsHbICJkDDlOE0fX0+lb1s="
|
||||
"protobuf-java-4.27.0-RC1.pom": {
|
||||
"sha1": "8c2f747548d2fafc3e9b057cee34c343dc47e78e",
|
||||
"sha256": "sha256-n9A6OYpEYg/F4Um5bKFXFb/1zQkxiNk7nGaSmmj087w="
|
||||
},
|
||||
"protobuf-java-4.27.0-RC3.jar": {
|
||||
"sha1": "b8abf4eca2730bf6de63f187eb1c15dd512cbe83",
|
||||
"sha256": "sha256-BTKtECTWI2FWGsrtuXTX0WiJ52cLNuI+kyHda50zTvk="
|
||||
"protobuf-java-4.27.0-RC1.jar": {
|
||||
"sha1": "f37d7fb8ab06eee5ae3dd11c121f63a8b209e74f",
|
||||
"sha256": "sha256-MW6bDi8Ee6d42j4PgT+0lqqzysiu/qRTRiIAi2bAcyk="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12618,12 +12618,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/google/protobuf/protobuf-parent/4.27.0-RC3",
|
||||
"path": "com/google/protobuf/protobuf-parent/4.27.0-RC1",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"protobuf-parent-4.27.0-RC3.pom": {
|
||||
"sha1": "896b7ebb6bf6d26d64bf7b92e41d5e4f6c097a8b",
|
||||
"sha256": "sha256-i7Fdb53i0Q8PlqmPKfkl+9T/oA/VEOyse5X3QjIYhvc="
|
||||
"protobuf-parent-4.27.0-RC1.pom": {
|
||||
"sha1": "59b00c8642d1166a189ebdcc529d3de170c8c56c",
|
||||
"sha256": "sha256-mdkAVgkc3DOMTzc5ghqX3ICl1+ajWVFVWdw//1f73+E="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -14999,16 +14999,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy-agent/1.14.15",
|
||||
"path": "net/bytebuddy/byte-buddy-agent/1.14.12",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"byte-buddy-agent-1.14.15.pom": {
|
||||
"sha1": "38dc80ceffcc2eb5a333a91178e2b604d79acc4c",
|
||||
"sha256": "sha256-bSndpffrUMo7o7ChKu9RjMVtgjSjNEKl+pgrS0SAJl4="
|
||||
"byte-buddy-agent-1.14.12.pom": {
|
||||
"sha1": "2e7579d9fc7635fac3b777222bfe7ed0c6180370",
|
||||
"sha256": "sha256-ZpifcNNV1gD9TZJtiDXke30b7/Z47r7FnRljY7XNTCw="
|
||||
},
|
||||
"byte-buddy-agent-1.14.15.jar": {
|
||||
"sha1": "0b4cc9d88d5de562bf75b3a54ab436ad01b3f72d",
|
||||
"sha256": "sha256-PvbscXWAE2EXAGfMaQKWn5ZtN8cr+TU9nNKCJjsYQGQ="
|
||||
"byte-buddy-agent-1.14.12.jar": {
|
||||
"sha1": "be4984cb6fd1ef1d11f218a648889dfda44b8a15",
|
||||
"sha256": "sha256-KzCakwAJLgtpb3xHH9UdmWkAHfeEyKufB5l0N9dXrW0="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -15036,12 +15036,23 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy-parent/1.14.15",
|
||||
"path": "net/bytebuddy/byte-buddy-parent/1.14.9",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"byte-buddy-parent-1.14.15.pom": {
|
||||
"sha1": "41a33be695a3bbf89c995e2d53433f4cbaa3ac81",
|
||||
"sha256": "sha256-JurvCGUf+li6KQCSzjKBeC4pwGKKG3n6WjeE+Qi0GKw="
|
||||
"byte-buddy-parent-1.14.9.pom": {
|
||||
"sha1": "da031e5ce56cd47e73b9793bf85525d5bf016071",
|
||||
"sha256": "sha256-Zrg0IlHTXyBj5pMW9juvywVjQv516SHA9GXC2WWTU14="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy-parent/1.14.12",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"byte-buddy-parent-1.14.12.pom": {
|
||||
"sha1": "b9c86a9d0a445f6a6374f092377a570cfc363426",
|
||||
"sha256": "sha256-m3/SvyklMayw6XTZVeSjbKQTMt0Nr+icJNj+Q5uuV7A="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -15077,16 +15088,31 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy/1.14.15",
|
||||
"path": "net/bytebuddy/byte-buddy/1.14.9",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"byte-buddy-1.14.15.pom": {
|
||||
"sha1": "95fc2fd8a131fad0706f51d6b573ece01763572c",
|
||||
"sha256": "sha256-1WOfj+J86tM+akx4n62OZfMo9iu3na0r3XrmzJO5RUw="
|
||||
"byte-buddy-1.14.9.pom": {
|
||||
"sha1": "fb912d2860bd618655759750893db27c3f12db66",
|
||||
"sha256": "sha256-LWdykQ0WFpvUySKeijZc9U4ZK8Ygy8+n+EJx9dEV6BU="
|
||||
},
|
||||
"byte-buddy-1.14.15.jar": {
|
||||
"sha1": "11c9440bc7f9468761e5a82778a05205169d49a9",
|
||||
"sha256": "sha256-dHLjlhmSwSqf1PbWfCHeQoCr4Y8pJwTdSdczgon4rPU="
|
||||
"byte-buddy-1.14.9.jar": {
|
||||
"sha1": "b69e7fff6c473d3ed2b489cdfd673a091fd94226",
|
||||
"sha256": "sha256-N3NS4lMoK/hvcxrJDtiDSOj0CmPOAzwAqFmC3n55Dm8="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "net/bytebuddy/byte-buddy/1.14.12",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"byte-buddy-1.14.12.pom": {
|
||||
"sha1": "95857e045a1878f95b696844f78d03b94ec25964",
|
||||
"sha256": "sha256-XamVxw3nt/SoSKhUN8fd7oA9GrfKwtfY33GUw9XicU0="
|
||||
},
|
||||
"byte-buddy-1.14.12.jar": {
|
||||
"sha1": "6e37f743dc15a8d7a4feb3eb0025cbc612d5b9e1",
|
||||
"sha256": "sha256-lwY2E01hwYOxn49Y+mMeMNLyq8o0SzeEijk8rHhj3XA="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -19201,16 +19227,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/jetbrains/kotlin/kotlin-reflect/2.0.0-RC3",
|
||||
"path": "org/jetbrains/kotlin/kotlin-reflect/2.0.0-RC2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"kotlin-reflect-2.0.0-RC3.pom": {
|
||||
"sha1": "a7730291ea955a34868c94a9409c048c15107d94",
|
||||
"sha256": "sha256-9aeMqntbuaejEkPzeT4Nj+3/q1d6KNW7pXlyMFkU5nU="
|
||||
"kotlin-reflect-2.0.0-RC2.pom": {
|
||||
"sha1": "f59f0775b6c4874de09c44d692037fd8f3132bfd",
|
||||
"sha256": "sha256-1aOhZnjByMuCwt0x6SO2i+pd0ka/rEv8T+nO3nUo6gM="
|
||||
},
|
||||
"kotlin-reflect-2.0.0-RC3.jar": {
|
||||
"sha1": "2de9acd396986f0130a7015ca18caa593915b077",
|
||||
"sha256": "sha256-bFXdlUw7yRgPPDvM+D9PAf+ifqvMVlWdLKw2Z6FbjMo="
|
||||
"kotlin-reflect-2.0.0-RC2.jar": {
|
||||
"sha1": "a416a6e9f3c00ba5f0c58091bbe20128117720ff",
|
||||
"sha256": "sha256-VSmq3nuZWEmDRvXHvnD+3VIrYmg0FlJmaIJ9j3mNbaE="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -20743,28 +20769,28 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/jetbrains/kotlin/kotlin-stdlib/2.0.0-RC3",
|
||||
"path": "org/jetbrains/kotlin/kotlin-stdlib/2.0.0-RC2",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"kotlin-stdlib-2.0.0-RC3.pom": {
|
||||
"sha1": "7fb5dbef4bdc345da221fecbd12ddbcf6bbe3160",
|
||||
"sha256": "sha256-zUpUNgRDkBPpPf5Czq/zFbV0Fy6PWdc4u7Ast9mrP38="
|
||||
"kotlin-stdlib-2.0.0-RC2.pom": {
|
||||
"sha1": "a0173de9669d2b669a0a9331abc10eed854c7578",
|
||||
"sha256": "sha256-P5+BoFtN2UXxa5nt5GUj/36Ts2zN2qRIKsbvj519M2g="
|
||||
},
|
||||
"kotlin-stdlib-2.0.0-RC3-all.jar": {
|
||||
"kotlin-stdlib-2.0.0-RC2-all.jar": {
|
||||
"sha1": "e6142a28b5fa6722cd811dd86278ad056784fa40",
|
||||
"sha256": "sha256-MOBSIrwGf/+4lqMna18ePylFC/HZRh0noZzg78eTtc0="
|
||||
},
|
||||
"kotlin-stdlib-2.0.0-RC3-common.jar": {
|
||||
"kotlin-stdlib-2.0.0-RC2-common.jar": {
|
||||
"sha1": "281e03983850e590dcc0d2474758f2fa8dd0e96a",
|
||||
"sha256": "sha256-EsHDu0lApPmVlUD/tc8uLl6brNtoywDEvSidFjm9HSc="
|
||||
},
|
||||
"kotlin-stdlib-2.0.0-RC3.jar": {
|
||||
"sha1": "37bea4f33a0d1823317f1210048928030077ec38",
|
||||
"sha256": "sha256-B2a3hUy+BDpaysUyZ3CUvh9ua0iT54/a2SXC64Mks3Y="
|
||||
"kotlin-stdlib-2.0.0-RC2.jar": {
|
||||
"sha1": "504eb64ad16be7612c962dd198a511a809800d80",
|
||||
"sha256": "sha256-nFMX9JplxBB9EJM5WG+LfW95ehOyI0zMR5CGQZDpQVo="
|
||||
},
|
||||
"kotlin-stdlib-2.0.0-RC3.module": {
|
||||
"sha1": "83a7913d9fd48986a323feb3fccc2b1049182fab",
|
||||
"sha256": "sha256-vpppwKPQSAwqZ2ff0DPELmM87yPovzFuqKy8Osz9piE="
|
||||
"kotlin-stdlib-2.0.0-RC2.module": {
|
||||
"sha1": "ec60b751c2b289581aed1cf553d477048a890cc4",
|
||||
"sha256": "sha256-18U/l65G+3O8wy1oZbKJ+MSv8fv3yvfaXIllxukU+wg="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -21149,16 +21175,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/mockito/mockito-core/5.12.0",
|
||||
"path": "org/mockito/mockito-core/5.11.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"mockito-core-5.12.0.pom": {
|
||||
"sha1": "63bde3dc82d8ee626ecf765f61a1ce7b8c68cb96",
|
||||
"sha256": "sha256-bccvwKe1NHdVVfgzB0hiqcUwE6ZzOD4hMStYHKI7dhI="
|
||||
"mockito-core-5.11.0.pom": {
|
||||
"sha1": "456cc29c4ed1d6e11efe7a92bdaae1ea5999a49d",
|
||||
"sha256": "sha256-ugsbXXA1CUlPmo5EWCIjh54zSKTElmfwx35odG5IHHg="
|
||||
},
|
||||
"mockito-core-5.12.0.jar": {
|
||||
"sha1": "22f8bbaf478e6789164787fa411a3b5ed986e110",
|
||||
"sha256": "sha256-Si6ykjcFDadJ6QpG+Ui85+JuwitnHkH1mxrG9LZAgik="
|
||||
"mockito-core-5.11.0.jar": {
|
||||
"sha1": "e4069fa4f4ff2c94322cfec5f2e45341c6c70aff",
|
||||
"sha256": "sha256-8HbJax9JuNm8QuRrCWmq9WhMQMi1tnnUAOXYgAc6DgA="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -774,6 +774,7 @@ org.jetbrains.kotlinx:atomicfu:0.16.3
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.1
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.4.1
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.1
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.1
|
||||
|
||||
+21
-19
@@ -628,22 +628,22 @@ https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.10.1/soloa
|
||||
https://repo.maven.apache.org/maven2/com/facebook/soloader/soloader/0.10.5/soloader-0.10.5.pom
|
||||
https://repo.maven.apache.org/maven2/com/facebook/yoga/proguard-annotations/1.19.0/proguard-annotations-1.19.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.11.1/jackson-annotations-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.17.1/jackson-annotations-2.17.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.17.0/jackson-annotations-2.17.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.11.1/jackson-core-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.17.1/jackson-core-2.17.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.17.0/jackson-core-2.17.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.11.1/jackson-databind-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.17.1/jackson-databind-2.17.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.17.0/jackson-databind-2.17.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.11.1/jackson-dataformat-xml-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-base/2.11.1/jackson-base-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-base/2.17.1/jackson-base-2.17.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-base/2.17.0/jackson-base-2.17.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-bom/2.11.1/jackson-bom-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-bom/2.17.1/jackson-bom-2.17.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-bom/2.17.0/jackson-bom-2.17.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-parent/2.11/jackson-parent-2.11.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-parent/2.17/jackson-parent-2.17.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-modules-base/2.11.1/jackson-modules-base-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-modules-base/2.17.1/jackson-modules-base-2.17.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-modules-base/2.17.0/jackson-modules-base-2.17.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.11.1/jackson-module-jaxb-annotations-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.17.1/jackson-module-jaxb-annotations-2.17.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.17.0/jackson-module-jaxb-annotations-2.17.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-module-kotlin/2.11.1/jackson-module-kotlin-2.11.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/oss-parent/38/oss-parent-38.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/oss-parent/58/oss-parent-58.pom
|
||||
@@ -740,8 +740,8 @@ https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/30.1-jre/guav
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/31.0.1-android/guava-parent-31.0.1-android.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/31.0.1-jre/guava-parent-31.0.1-jre.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/31.1-jre/guava-parent-31.1-jre.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/33.2.0-jre/guava-parent-33.2.0-jre.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-testlib/33.2.0-jre/guava-testlib-33.2.0-jre.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-parent/33.1.0-jre/guava-parent-33.1.0-jre.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava-testlib/33.1.0-jre/guava-testlib-33.1.0-jre.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/17.0/guava-17.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/22.0/guava-22.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/23.0/guava-23.0.pom
|
||||
@@ -754,7 +754,7 @@ https://repo.maven.apache.org/maven2/com/google/guava/guava/30.1-jre/guava-30.1-
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/31.0.1-android/guava-31.0.1-android.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/31.1-jre/guava-31.1-jre.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/33.2.0-jre/guava-33.2.0-jre.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/guava/33.1.0-jre/guava-33.1.0-jre.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/listenablefuture/1.0/listenablefuture-1.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.pom
|
||||
@@ -768,7 +768,7 @@ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.13.0/pro
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.17.2/protobuf-bom-3.17.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.19.2/protobuf-bom-3.19.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/3.19.3/protobuf-bom-3.19.3.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/4.27.0-RC3/protobuf-bom-4.27.0-RC3.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-bom/4.27.0-RC1/protobuf-bom-4.27.0-RC1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/3.17.2/protobuf-javalite-3.17.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-javalite/3.19.2/protobuf-javalite-3.19.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java-util/3.4.0/protobuf-java-util-3.4.0.pom
|
||||
@@ -785,7 +785,7 @@ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.13.0/pr
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.17.2/protobuf-java-3.17.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.19.2/protobuf-java-3.19.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/3.19.3/protobuf-java-3.19.3.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/4.27.0-RC3/protobuf-java-4.27.0-RC3.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-java/4.27.0-RC1/protobuf-java-4.27.0-RC1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-lite/3.0.1/protobuf-lite-3.0.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.0.0/protobuf-parent-3.0.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.4.0/protobuf-parent-3.4.0.pom
|
||||
@@ -796,7 +796,7 @@ https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.13.0/
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.17.2/protobuf-parent-3.17.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.19.2/protobuf-parent-3.19.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/3.19.3/protobuf-parent-3.19.3.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/4.27.0-RC3/protobuf-parent-4.27.0-RC3.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protobuf-parent/4.27.0-RC1/protobuf-parent-4.27.0-RC1.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/truth/truth-parent/1.4.2/truth-parent-1.4.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/google/truth/truth/1.4.2/truth-1.4.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/ibm/icu/icu4j/53.1/icu4j-53.1.pom
|
||||
@@ -963,13 +963,15 @@ https://repo.maven.apache.org/maven2/junit/junit/4.13.2/junit-4.13.2.pom
|
||||
https://repo.maven.apache.org/maven2/me/zhanghai/android/materialprogressbar/library/1.4.2/library-1.4.2.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.11.13/byte-buddy-agent-1.11.13.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.11.19/byte-buddy-agent-1.11.19.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.14.15/byte-buddy-agent-1.14.15.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.14.12/byte-buddy-agent-1.14.12.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.11.13/byte-buddy-parent-1.11.13.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.11.19/byte-buddy-parent-1.11.19.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.14.15/byte-buddy-parent-1.14.15.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.14.9/byte-buddy-parent-1.14.9.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.14.12/byte-buddy-parent-1.14.12.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.11.13/byte-buddy-1.11.13.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.11.19/byte-buddy-1.11.19.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.14.15/byte-buddy-1.14.15.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.14.9/byte-buddy-1.14.9.pom
|
||||
https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.14.12/byte-buddy-1.14.12.pom
|
||||
https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.6.0/jna-platform-5.6.0.pom
|
||||
https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom
|
||||
https://repo.maven.apache.org/maven2/net/java/jvnet-parent/1/jvnet-parent-1.pom
|
||||
@@ -1245,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-RC3/kotlin-reflect-2.0.0-RC3.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
|
||||
@@ -1347,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-RC3/kotlin-stdlib-2.0.0-RC3.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
|
||||
@@ -1373,7 +1375,7 @@ https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.po
|
||||
https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/2.1.0/stax-ex-2.1.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/3.12.4/mockito-core-3.12.4.pom
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/4.0.0/mockito-core-4.0.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/5.12.0/mockito-core-5.12.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-core/5.11.0/mockito-core-5.11.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/mockito/mockito-inline/4.0.0/mockito-inline-4.0.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/3.2/objenesis-parent-3.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/objenesis/objenesis-parent/3.3/objenesis-parent-3.3.pom
|
||||
|
||||
@@ -34,5 +34,6 @@ react-native-static-safe-area-insets
|
||||
react-native-status
|
||||
react-native-status-keycard
|
||||
react-native-svg
|
||||
react-native-transparent-video
|
||||
react-native-webview
|
||||
walletconnect_react-native-compat
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ in {
|
||||
yarn = super.yarn.override { nodejs = super.nodejs-18_x; };
|
||||
openjdk = super.openjdk11_headless;
|
||||
xcodeWrapper = callPackage ./pkgs/xcodeenv/compose-xcodewrapper.nix { } {
|
||||
versions = ["15.1" "15.2"];
|
||||
versions = ["15.1"];
|
||||
};
|
||||
go = super.go_1_20;
|
||||
clang = super.clang_15;
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{ stdenv, meta, source, buildGo119Package, buildGo120Package }:
|
||||
let
|
||||
# https://github.com/status-im/status-mobile/issues/19802
|
||||
# only for Darwin to fix Integration Tests failing with missing symbols on go 1.20
|
||||
buildGoPackageIntegrationTest = if stdenv.isDarwin then buildGo119Package else buildGo120Package;
|
||||
in buildGoPackageIntegrationTest {
|
||||
{ buildGoPackage
|
||||
# object with source attributes
|
||||
, meta, source}:
|
||||
|
||||
buildGoPackage {
|
||||
pname = source.repo;
|
||||
version = "${source.cleanVersion}-${source.shortRev}";
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
"react-native-static-safe-area-insets": "^2.2.0",
|
||||
"react-native-status-keycard": "git+https://github.com/status-im/react-native-status-keycard.git#refs/tags/v2.5.39",
|
||||
"react-native-svg": "13.10.0",
|
||||
"react-native-transparent-video": "git+https://github.com/status-im/react-native-transparent-video.git#refs/tags/0.1.1",
|
||||
"react-native-webview": "13.6.3",
|
||||
"react-syntax-highlighter": "^15.5.0"
|
||||
},
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 221 B |
Binary file not shown.
|
Before Width: | Height: | Size: 348 B |
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
-2
@@ -2,7 +2,7 @@
|
||||
{:source-paths ["src" "test/cljs"]
|
||||
|
||||
:dependencies [[reagent "1.2.0"]
|
||||
[re-frame "1.4.3"]
|
||||
[re-frame "1.3.0"]
|
||||
[binaryage/oops "0.7.2"]
|
||||
[com.andrewmcveigh/cljs-time "0.5.2"]
|
||||
[com.taoensso/timbre "6.3.1"]
|
||||
@@ -21,7 +21,7 @@
|
||||
[nubank/matcher-combinators "3.8.8"]
|
||||
|
||||
;; Use the same version specified in the Nix dependency.
|
||||
[clj-kondo/clj-kondo "2024.03.13"]
|
||||
[clj-kondo/clj-kondo "2023.09.07"]
|
||||
|
||||
;; Routing
|
||||
[bidi "2.1.6"]
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
# The `dev/` directory
|
||||
|
||||
The `src/dev/` directory is a place where developers can commit non-production
|
||||
and non-test code which can facilitate development in general. The code should,
|
||||
ideally, be useful to more than one team member.
|
||||
|
||||
**Note**: As of today (2024-05-07), we don't have further guidelines or examples
|
||||
about how mobile teams should use and maintain these dev-only namespaces. Before
|
||||
opening a PR introducing new dev-only namespaces, consider sharing and
|
||||
discussing with as many team members as you can.
|
||||
|
||||
### The `user` namespace
|
||||
|
||||
You may optionally create a `src/dev/user.cljs` and/or `src/user.cljs` file.
|
||||
These files are git-ignored and are meant to be your own playground. Clojure
|
||||
developers usually use such namespaces to create temporary utilities and
|
||||
experiments that aren't necessarily useful to others. They are particularly
|
||||
valuable for developers adept at the REPL-Driven Development workflow.
|
||||
|
||||
Be careful with `make clean` because it will delete all non-tracked git files.
|
||||
If you rely on this file, you may prefer to create a symbolic link and store the
|
||||
original `user.cljs` file outside the `status-mobile` repository. Then, after
|
||||
`make clean`, you will need to recreate the symlink.
|
||||
@@ -1,25 +0,0 @@
|
||||
import {
|
||||
useDerivedValue,
|
||||
interpolate,
|
||||
interpolateColor,
|
||||
Extrapolation,
|
||||
useAnimatedStyle,
|
||||
} from 'react-native-reanimated';
|
||||
|
||||
const CLAMP_MIN = 0;
|
||||
const CLAMP_MAX = 60;
|
||||
const BLUR_MIN = 1;
|
||||
const BLUR_MAX = 15;
|
||||
|
||||
export const useBlurAmount = (sharedValue) =>
|
||||
useDerivedValue(() =>
|
||||
parseInt(interpolate(sharedValue.value, [CLAMP_MIN, CLAMP_MAX], [BLUR_MIN, BLUR_MAX], Extrapolation.CLAMP)),
|
||||
);
|
||||
|
||||
export function useLayerOpacity(sharedValue, from, to) {
|
||||
return useAnimatedStyle(() => ({
|
||||
flex: 1,
|
||||
justifyContent: 'flex-end',
|
||||
backgroundColor: interpolateColor(sharedValue.value, [0, 60], [from, to], 'RGB'),
|
||||
}));
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
import { useAnimatedStyle, useAnimatedSensor, withTiming, interpolate, SensorType } from 'react-native-reanimated';
|
||||
import { Platform } from 'react-native';
|
||||
|
||||
const PI = Math.PI;
|
||||
|
||||
/*
|
||||
sensorAnimatedImage uses the pitch and roll of a device to move the content on screen in the respective direction.
|
||||
|
||||
This approach mostly follows the example here:
|
||||
https://github.com/notJust-dev/iOSLockScreen/blob/main/src/components/SensorAnimatedImage.js
|
||||
|
||||
which is explained in better detail in this video
|
||||
https://www.youtube.com/watch?v=iEBoZDHCN5Y&t=2205s
|
||||
there is a bug with the pitch and roll calculations provided directly from the sensor data so the calculation had to
|
||||
be done using the quaternions directly.
|
||||
This link is useful to understand this: https://engineering.stackexchange.com/questions/3348/calculating-pitch-yaw-and-roll-from-mag-acc-and-gyro-data
|
||||
*/
|
||||
export function sensorAnimatedImage(zIndex, offset, stretch) {
|
||||
'worklet';
|
||||
const rotationSensor = useAnimatedSensor(SensorType.ROTATION, { interval: 30 });
|
||||
return useAnimatedStyle(function () {
|
||||
const { qx, qz, qw, qy, pitch } = rotationSensor.sensor.value;
|
||||
|
||||
const roll = Math.asin(-2.0 * (qx * qz - qw * qy));
|
||||
|
||||
const translateY = withTiming(
|
||||
interpolate(pitch, Platform.OS === 'ios' ? [-PI, PI] : [PI, -PI], [
|
||||
(-offset * 3) / zIndex - offset + (offset - stretch),
|
||||
(offset * 3) / zIndex - offset + (offset - stretch),
|
||||
]),
|
||||
{ duration: 10 },
|
||||
);
|
||||
const translateX = withTiming(
|
||||
interpolate(
|
||||
roll,
|
||||
[1, -1],
|
||||
[(-offset * 2) / zIndex - offset + (offset - stretch), (offset * 2) / zIndex - offset + (offset - stretch)],
|
||||
),
|
||||
{ duration: 10 },
|
||||
);
|
||||
|
||||
return {
|
||||
transform: [{ translateX }, { translateY }],
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -418,7 +418,6 @@
|
||||
"react-native-transparent-video" react-native-transparent-video
|
||||
"react-native-orientation-locker" react-native-orientation-locker
|
||||
"react-native-gifted-charts" react-native-gifted-charts
|
||||
"@walletconnect/react-native-compat" #js {}
|
||||
"../resources/data/emojis/en.json" (js/JSON.parse
|
||||
(slurp
|
||||
"./resources/data/emojis/en.json"))
|
||||
@@ -438,7 +437,6 @@
|
||||
"../src/js/worklets/parallax.js" #js {}
|
||||
"../src/js/worklets/profile_header.js" #js {}
|
||||
"../src/js/worklets/identifiers_highlighting.js" #js {}
|
||||
"../src/js/worklets/header_animations.js" #js {}
|
||||
"./fleets.js" default-fleets
|
||||
"../translations/ar.json" (js/JSON.parse (slurp "./translations/ar.json"))
|
||||
"../translations/de.json" (js/JSON.parse (slurp "./translations/de.json"))
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
(defn outer-container
|
||||
[{:keys [size customization-color theme]}]
|
||||
(let [container-size (case size
|
||||
:size-80 80
|
||||
:size-64 64
|
||||
:size-32 32
|
||||
24)]
|
||||
@@ -22,7 +21,6 @@
|
||||
[size]
|
||||
{:text-align :center
|
||||
:font-size (case size
|
||||
:size-80 36
|
||||
:size-64 24
|
||||
:size-32 15
|
||||
11)})
|
||||
|
||||
@@ -11,15 +11,15 @@
|
||||
|
||||
(defn- initials
|
||||
[{:keys [full-name size customization-color theme]}]
|
||||
(let [amount-initials (if (#{:size-32 :size-64 :size-80} size) 2 1)
|
||||
(let [amount-initials (if (#{:size-32 :size-64} size) 2 1)
|
||||
channel-name (utils.string/safe-replace full-name "#" "")]
|
||||
[text/text
|
||||
(cond-> {:accessibility-label :initials
|
||||
:style {:color (colors/resolve-color customization-color theme)}
|
||||
:size :paragraph-2
|
||||
:weight :semi-bold}
|
||||
(#{:size-64 :size-80} size) (assoc :size :heading-1
|
||||
:weight :medium))
|
||||
(= size :size-64) (assoc :size :heading-1
|
||||
:weight :medium))
|
||||
(utils.string/get-initials channel-name amount-initials)]))
|
||||
|
||||
(defn- lock
|
||||
|
||||
@@ -9,17 +9,10 @@
|
||||
:size-20 20
|
||||
nil))
|
||||
|
||||
(defn collection-avatar-container
|
||||
[theme size]
|
||||
{:width (get-dimensions size)
|
||||
:height (get-dimensions size)
|
||||
:border-width 1
|
||||
:border-color (colors/theme-colors colors/neutral-80-opa-10 colors/white-opa-10 theme)
|
||||
:border-radius 6
|
||||
:justify-content :center
|
||||
:align-items :center})
|
||||
|
||||
(defn collection-avatar
|
||||
[size]
|
||||
{:width (get-dimensions size)
|
||||
:height (get-dimensions size)})
|
||||
[theme size]
|
||||
{:width (get-dimensions size)
|
||||
:height (get-dimensions size)
|
||||
:border-width 1
|
||||
:border-color (colors/theme-colors colors/neutral-80-opa-10 colors/white-opa-10 theme)
|
||||
:border-radius 6})
|
||||
|
||||
@@ -2,20 +2,18 @@
|
||||
(:require
|
||||
[quo.components.avatars.collection-avatar.style :as style]
|
||||
[quo.theme :as quo.theme]
|
||||
[react-native.core :as rn]
|
||||
[react-native.fast-image :as fast-image]))
|
||||
|
||||
(defn view
|
||||
"Opts:
|
||||
|
||||
|
||||
:image - collection image
|
||||
:theme - keyword -> :light/:dark"
|
||||
[{:keys [image size on-load-end on-error] :or {size :size-24}}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[rn/view {:style (style/collection-avatar-container theme size)}
|
||||
[fast-image/fast-image
|
||||
{:accessibility-label :collection-avatar
|
||||
:source image
|
||||
:on-load-end on-load-end
|
||||
:on-error on-error
|
||||
:style (style/collection-avatar size)}]]))
|
||||
[fast-image/fast-image
|
||||
{:accessibility-label :collection-avatar
|
||||
:source image
|
||||
:on-load-end on-load-end
|
||||
:on-error on-error
|
||||
:style (style/collection-avatar theme size)}]))
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
(ns quo.components.avatars.group-avatar.view
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[quo.components.avatars.group-avatar.style :as style]
|
||||
[quo.components.icon :as icon]
|
||||
[quo.components.markdown.text :as text]
|
||||
@@ -21,7 +22,7 @@
|
||||
:container 80}})
|
||||
|
||||
(defn view
|
||||
[{:keys [size customization-color picture icon-name emoji]
|
||||
[{:keys [size customization-color picture icon-name emoji chat-name]
|
||||
:or {size :size-20
|
||||
customization-color :blue
|
||||
picture nil
|
||||
@@ -49,6 +50,14 @@
|
||||
{:size :paragraph-1
|
||||
:style (dissoc (style/avatar-identifier theme) :font-size)}
|
||||
emoji])
|
||||
chat-name
|
||||
(if (= size :size-80)
|
||||
[rn/text
|
||||
{:style (style/avatar-identifier theme)}
|
||||
((comp first string/upper-case) chat-name)]
|
||||
[text/text
|
||||
{:size :paragraph-1}
|
||||
((comp first string/upper-case) chat-name)])
|
||||
:else
|
||||
[icon/icon icon-name
|
||||
{:size icon-size
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
(ns quo.components.community.community-token-gating.component-spec
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[test-helpers.component :as h]))
|
||||
|
||||
(h/describe "Community Detail Token Gating Component"
|
||||
(h/test "render with satisfied permissions"
|
||||
(let [mock-on-press-fn (h/mock-fn)
|
||||
mock-on-press-info-fn (h/mock-fn)]
|
||||
(h/render
|
||||
[quo/community-token-gating
|
||||
{:tokens [[{:symbol "ETH"
|
||||
:sufficient? true
|
||||
:collectible? false
|
||||
:amount "0.8"
|
||||
:img-src nil}]
|
||||
[{:symbol "ETH"
|
||||
:sufficient? false
|
||||
:collectible? false
|
||||
:amount "1"
|
||||
:img-src nil}
|
||||
{:symbol "STT"
|
||||
:sufficient? false
|
||||
:collectible? false
|
||||
:amount "10"
|
||||
:img-src nil}]]
|
||||
:community-color "#FF0000"
|
||||
:role "Member"
|
||||
:satisfied? true
|
||||
:on-press mock-on-press-fn
|
||||
:on-press-info mock-on-press-info-fn}])
|
||||
(h/is-truthy (h/get-by-translation-text :t/you-eligible-to-join-as {:role "Member"}))
|
||||
(h/is-truthy (h/get-by-text "0.8 ETH"))
|
||||
(h/is-truthy (h/get-by-text "1 ETH"))
|
||||
(h/is-truthy (h/get-by-text "10 STT"))
|
||||
(h/fire-event :press (h/get-by-translation-text :t/request-to-join))
|
||||
(h/was-called mock-on-press-fn)
|
||||
(h/fire-event :press (h/get-by-label-text :community-token-gating-info))
|
||||
(h/was-called mock-on-press-info-fn)))
|
||||
|
||||
(h/test "render with unsatisfied permissions"
|
||||
(let [mock-on-press-fn (h/mock-fn)
|
||||
mock-on-press-info-fn (h/mock-fn)]
|
||||
(h/render
|
||||
[quo/community-token-gating
|
||||
{:tokens [[{:symbol "ETH"
|
||||
:sufficient? false
|
||||
:collectible? false
|
||||
:amount "0.8"
|
||||
:img-src nil}]]
|
||||
:community-color "#FF0000"
|
||||
:role "Member"
|
||||
:satisfied? false
|
||||
:on-press mock-on-press-fn
|
||||
:on-press-info mock-on-press-info-fn}])
|
||||
(h/is-truthy (h/get-by-translation-text :t/you-not-eligible-to-join))
|
||||
(h/is-truthy (h/get-by-text "0.8 ETH"))
|
||||
(h/fire-event :press (h/get-by-translation-text :t/request-to-join))
|
||||
(h/was-not-called mock-on-press-fn)
|
||||
(h/fire-event :press (h/get-by-label-text :community-token-gating-info))
|
||||
(h/was-called mock-on-press-info-fn))))
|
||||
@@ -1,22 +0,0 @@
|
||||
(ns quo.components.community.community-token-gating.schema)
|
||||
|
||||
(def ^:private ?token-schema
|
||||
[:map
|
||||
[:symbol :string]
|
||||
[:sufficient? :boolean]
|
||||
[:collectible? :boolean]
|
||||
[:amount {:optional true} [:maybe :string]]
|
||||
[:img-src {:optional true} [:maybe :schema.common/image-source]]])
|
||||
|
||||
(def ?schema
|
||||
[:=>
|
||||
[:catn
|
||||
[:props
|
||||
[:map
|
||||
[:tokens [:sequential [:sequential ?token-schema]]]
|
||||
[:community-color [:or :string :schema.common/customization-color]]
|
||||
[:role {:optional true} [:maybe :string]]
|
||||
[:satisfied? :boolean]
|
||||
[:on-press fn?]
|
||||
[:on-press-info fn?]]]]
|
||||
:any])
|
||||
@@ -1,47 +0,0 @@
|
||||
(ns quo.components.community.community-token-gating.style
|
||||
(:require [quo.foundations.colors :as colors]))
|
||||
|
||||
(defn container
|
||||
[theme]
|
||||
{:padding-bottom 12
|
||||
:padding-top 10
|
||||
:border-width 1
|
||||
:border-color (colors/theme-colors colors/neutral-20 colors/neutral-80 theme)
|
||||
:border-radius 16
|
||||
:margin-vertical -4})
|
||||
|
||||
(def eligibility-row
|
||||
{:flex-direction :row
|
||||
:padding-horizontal 12
|
||||
:align-items :center})
|
||||
|
||||
(def divider
|
||||
{:height 27
|
||||
:padding-left 12
|
||||
:padding-top 0
|
||||
:align-items :flex-start})
|
||||
|
||||
(def eligibility-label
|
||||
{:flex 1})
|
||||
|
||||
(def you-hodl
|
||||
{:padding-horizontal 12
|
||||
:margin-bottom 15})
|
||||
|
||||
(def join-button
|
||||
{:padding-horizontal 12
|
||||
:margin-top 8})
|
||||
|
||||
(def token-row
|
||||
{:flex-direction :row
|
||||
:padding-horizontal 12
|
||||
:row-gap 10
|
||||
:column-gap 8
|
||||
:flex-wrap :wrap
|
||||
:margin-bottom 11})
|
||||
|
||||
;; This wrapper prevents layout shifts caused by border effects on
|
||||
;; the view's height when the token has a border.
|
||||
(def token-wrapper
|
||||
{:height 26
|
||||
:justify-content :center})
|
||||
@@ -1,89 +0,0 @@
|
||||
(ns quo.components.community.community-token-gating.view
|
||||
(:require [clojure.string :as string]
|
||||
[quo.components.buttons.button.view :as button]
|
||||
[quo.components.community.community-token-gating.schema :as component-schema]
|
||||
[quo.components.community.community-token-gating.style :as style]
|
||||
[quo.components.dividers.divider-label.view :as divider-label]
|
||||
[quo.components.icon :as icon]
|
||||
[quo.components.markdown.text :as text]
|
||||
[quo.components.tags.collectible-tag.view :as collectible-tag]
|
||||
[quo.components.tags.token-tag.view :as token-tag]
|
||||
[quo.foundations.colors :as colors]
|
||||
[quo.theme :as theme]
|
||||
[react-native.core :as rn]
|
||||
[schema.core :as schema]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(defn- token-view
|
||||
[{:keys [collectible? img-src amount sufficient?] :as token}]
|
||||
(let [token-symbol (:symbol token)]
|
||||
[rn/view {:style style/token-wrapper}
|
||||
(if collectible?
|
||||
[collectible-tag/view
|
||||
{:collectible-name token-symbol
|
||||
:size :size-24
|
||||
:collectible-img-src img-src
|
||||
:options (when sufficient?
|
||||
:hold)}]
|
||||
[token-tag/view
|
||||
{:token-symbol token-symbol
|
||||
:size :size-24
|
||||
:token-value amount
|
||||
:token-img-src img-src
|
||||
:options (when sufficient? :hold)}])]))
|
||||
|
||||
(defn- tokens-row
|
||||
[{:keys [theme tokens divider?]}]
|
||||
[:<>
|
||||
[rn/view
|
||||
{:style style/token-row}
|
||||
(map-indexed (fn [token-index token]
|
||||
^{:key (str "token-" token-index)}
|
||||
[token-view token])
|
||||
tokens)]
|
||||
(when-not divider?
|
||||
[divider-label/view
|
||||
{:container-style style/divider}
|
||||
[text/text
|
||||
{:size :label
|
||||
:style {:color (colors/theme-colors colors/neutral-50 colors/neutral-40 theme)}}
|
||||
(string/lower-case (i18n/label :t/or))]])])
|
||||
|
||||
(defn- view-internal
|
||||
[{:keys [tokens community-color role satisfied? on-press on-press-info]}]
|
||||
(let [theme (theme/use-theme)
|
||||
last-token-index (dec (count tokens))]
|
||||
[rn/view {:style (style/container theme)}
|
||||
[rn/view {:style style/eligibility-row}
|
||||
[text/text
|
||||
{:size :paragraph-1
|
||||
:weight :medium
|
||||
:style style/eligibility-label}
|
||||
(if satisfied?
|
||||
(i18n/label :t/you-eligible-to-join-as {:role role})
|
||||
(i18n/label :t/you-not-eligible-to-join))]
|
||||
[rn/pressable {:on-press on-press-info}
|
||||
[icon/icon :i/info
|
||||
{:color (colors/theme-colors colors/neutral-50 colors/neutral-40 theme)
|
||||
:accessibility-label :community-token-gating-info}]]]
|
||||
[text/text
|
||||
{:size :paragraph-2
|
||||
:style style/you-hodl}
|
||||
(i18n/label (if satisfied? :t/you-hodl :t/you-must-hold))]
|
||||
(map-indexed (fn [index tokens-item]
|
||||
^{:key (str role "-tokens-" index)}
|
||||
[tokens-row
|
||||
{:tokens tokens-item
|
||||
:theme theme
|
||||
:divider? (= index last-token-index)}])
|
||||
tokens)
|
||||
[button/button
|
||||
{:on-press on-press
|
||||
:container-style style/join-button
|
||||
:accessibility-label :join-community-button
|
||||
:customization-color community-color
|
||||
:disabled? (not satisfied?)
|
||||
:icon-left (if satisfied? :i/unlocked :i/locked)}
|
||||
(i18n/label :t/request-to-join)]]))
|
||||
|
||||
(def view (schema/instrument #'view-internal component-schema/?schema))
|
||||
@@ -101,6 +101,39 @@
|
||||
:top 8
|
||||
:right 8})
|
||||
|
||||
(def token-tag-spacing
|
||||
{:padding-top 10
|
||||
:margin-right 8})
|
||||
|
||||
(defn token-row
|
||||
[padding?]
|
||||
(merge
|
||||
{:flex-direction :row
|
||||
:flex-wrap :wrap
|
||||
:align-items :center}
|
||||
(when padding?
|
||||
{:padding-horizontal 12})))
|
||||
|
||||
(defn token-row-or-text
|
||||
[padding? theme]
|
||||
(merge
|
||||
{:padding-top 4
|
||||
:margin-bottom -2
|
||||
:color (colors/theme-colors
|
||||
colors/neutral-50
|
||||
colors/neutral-40
|
||||
theme)}
|
||||
(when padding?
|
||||
{:padding-left 12})))
|
||||
|
||||
(defn token-row-or-border
|
||||
[theme]
|
||||
{:height 1
|
||||
:background-color (colors/theme-colors
|
||||
colors/neutral-20
|
||||
colors/neutral-80
|
||||
theme)})
|
||||
|
||||
(defn loading-card
|
||||
[width theme]
|
||||
(merge
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
(ns quo.components.community.token-gating
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[quo.components.community.style :as style]
|
||||
[quo.components.markdown.text :as text]
|
||||
[quo.components.tags.token-tag.view :as token-tag]
|
||||
[quo.theme :as quo.theme]
|
||||
[react-native.core :as rn]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(defn token-requirement-list-row
|
||||
[tokens padding?]
|
||||
[rn/view {:style (style/token-row padding?)}
|
||||
(map-indexed (fn [token-index {:keys [img-src amount sufficient? purchasable?] :as token}]
|
||||
^{:key token-index}
|
||||
[rn/view {:style style/token-tag-spacing}
|
||||
[token-tag/view
|
||||
{:token-symbol (:symbol token)
|
||||
:token-img-src img-src
|
||||
:token-value amount
|
||||
:size :size-24
|
||||
:options (cond
|
||||
sufficient? :hold
|
||||
purchasable? :add)}]])
|
||||
tokens)])
|
||||
|
||||
(defn token-requirement-list
|
||||
[{:keys [tokens padding?]}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[:<>
|
||||
(if (> (count tokens) 1)
|
||||
(map-indexed
|
||||
(fn [token-requirement-index tokens]
|
||||
^{:key token-requirement-index}
|
||||
[rn/view {:margin-bottom 12}
|
||||
(when-not (= token-requirement-index 0)
|
||||
[rn/view {:style (style/token-row-or-border theme)}])
|
||||
(when-not (= token-requirement-index 0)
|
||||
[text/text
|
||||
{:style (style/token-row-or-text padding? theme)
|
||||
:size :label} (string/lower-case (i18n/label :t/or))])
|
||||
[token-requirement-list-row tokens padding?]])
|
||||
tokens)
|
||||
[token-requirement-list-row (first tokens) padding?])]))
|
||||
@@ -9,18 +9,20 @@
|
||||
(merge {:padding-horizontal 20
|
||||
:padding-top 8
|
||||
:padding-bottom 16
|
||||
:height 48
|
||||
:flex-direction :row
|
||||
:align-items :flex-start}
|
||||
container-style))
|
||||
|
||||
(def buttons-container
|
||||
{:flex-direction :row
|
||||
:align-items :flex-start})
|
||||
:align-items :center
|
||||
:padding-top (when platform/android? 2)})
|
||||
|
||||
(def clear-icon-container
|
||||
{:justify-content :flex-start
|
||||
{:justify-content :center
|
||||
:align-items :center
|
||||
:padding-top (when platform/ios? 4)
|
||||
:padding-top (if platform/ios? 6 2)
|
||||
:height 24
|
||||
:width 20})
|
||||
|
||||
@@ -31,10 +33,9 @@
|
||||
nil)
|
||||
:flex 1
|
||||
:color (colors/theme-colors colors/neutral-100 colors/white theme)
|
||||
:margin-top -4
|
||||
:margin-top (if platform/ios? 0 -4)
|
||||
:margin-right 8
|
||||
:max-height 50
|
||||
:padding 0))
|
||||
:height (if platform/ios? 24 40)))
|
||||
|
||||
(defn accessory-button
|
||||
[blur? theme]
|
||||
|
||||
@@ -128,7 +128,6 @@
|
||||
:auto-capitalize :none
|
||||
:auto-correct false
|
||||
:spell-check false
|
||||
:multiline true
|
||||
:keyboard-appearance theme
|
||||
:on-focus on-focus
|
||||
:on-blur on-blur
|
||||
|
||||
@@ -13,12 +13,13 @@
|
||||
:align-items :center})
|
||||
|
||||
(defn center-content-container
|
||||
[centered?]
|
||||
[centered? center-opacity]
|
||||
{:flex 1
|
||||
:margin-horizontal 12
|
||||
:flex-direction :row
|
||||
:align-items :center
|
||||
:justify-content (if centered? :center :flex-start)})
|
||||
:justify-content (if centered? :center :flex-start)
|
||||
:opacity center-opacity})
|
||||
|
||||
(def right-actions-container
|
||||
{:flex-direction :row})
|
||||
|
||||
@@ -44,68 +44,62 @@
|
||||
|
||||
(defn- right-section-spacing [] [rn/view {:style style/right-actions-spacing}])
|
||||
|
||||
(defmulti add-button
|
||||
(fn [{:keys [button-props]}]
|
||||
(:content-type button-props)))
|
||||
|
||||
(defmethod add-button :account-switcher
|
||||
[{:keys [support-account-switcher? button-props]}]
|
||||
(when support-account-switcher?
|
||||
(let [{:keys [customization-color on-press emoji type]} button-props]
|
||||
[rn/pressable {:on-press on-press}
|
||||
[account-avatar/view
|
||||
{:emoji emoji
|
||||
:size 32
|
||||
:type (or type :default)
|
||||
:customization-color customization-color}]])))
|
||||
|
||||
(defmethod add-button :default
|
||||
[{:keys [background behind-overlay? button-props]}]
|
||||
(let [{:keys [label icon-name]} button-props]
|
||||
[button/button
|
||||
(assoc button-props
|
||||
:type (button-type background)
|
||||
:icon-only? (boolean icon-name)
|
||||
:size 32
|
||||
:accessible true
|
||||
:background (if behind-overlay?
|
||||
:blur
|
||||
(when (button-properties/backgrounds background) background)))
|
||||
(or label icon-name)]))
|
||||
|
||||
(defn- add-right-buttons-xf
|
||||
[max-actions background behind-overlay? support-account-switcher?]
|
||||
[max-actions background behind-overlay?]
|
||||
(comp (filter map?)
|
||||
(take max-actions)
|
||||
(map (fn [button-props]
|
||||
(add-button {:background background
|
||||
:behind-overlay? behind-overlay?
|
||||
:support-account-switcher? support-account-switcher?
|
||||
:button-props button-props})))
|
||||
(map (fn [{:keys [icon-name label] :as button-props}]
|
||||
[button/button
|
||||
(assoc button-props
|
||||
:type (button-type background)
|
||||
:icon-only? icon-name
|
||||
:size 32
|
||||
:accessible true
|
||||
:background (if behind-overlay?
|
||||
:blur
|
||||
(when (button-properties/backgrounds background) background)))
|
||||
(or label icon-name)]))
|
||||
(interpose [right-section-spacing])))
|
||||
|
||||
(defn- account-switcher-content
|
||||
[{:keys [customization-color on-press emoji type]}]
|
||||
[rn/pressable {:on-press on-press}
|
||||
[account-avatar/view
|
||||
{:emoji emoji
|
||||
:size 32
|
||||
:type (or type :default)
|
||||
:customization-color customization-color}]])
|
||||
|
||||
(defn- right-content
|
||||
[{:keys [background content max-actions min-size? support-account-switcher?
|
||||
[{:keys [background content max-actions min-size? support-account-switcher? account-switcher
|
||||
behind-overlay?]
|
||||
:or {support-account-switcher? true}}]
|
||||
[rn/view (when min-size? {:style style/right-content-min-size})
|
||||
(when (coll? content)
|
||||
(cond
|
||||
(and support-account-switcher? (= content :account-switcher))
|
||||
[account-switcher-content account-switcher]
|
||||
|
||||
(coll? content)
|
||||
(into [rn/view {:style style/right-actions-container}]
|
||||
(add-right-buttons-xf max-actions background behind-overlay? support-account-switcher?)
|
||||
content))])
|
||||
(add-right-buttons-xf max-actions background behind-overlay?)
|
||||
content)
|
||||
|
||||
:else
|
||||
nil)])
|
||||
|
||||
(def header-height 155)
|
||||
(def page-nav-height 25)
|
||||
(def threshold (- header-height page-nav-height))
|
||||
|
||||
(defn- title-center
|
||||
[{:keys [title scroll-y center-content-container-style]}]
|
||||
[{:keys [centered? title center-opacity scroll-y]}]
|
||||
(let [animated-style (when scroll-y
|
||||
(header-worklet/profile-header-animation scroll-y
|
||||
threshold
|
||||
page-nav-height))]
|
||||
[reanimated/view
|
||||
{:style [center-content-container-style animated-style]}
|
||||
{:style [(style/center-content-container centered? center-opacity)
|
||||
animated-style]}
|
||||
[text/text
|
||||
{:weight :medium
|
||||
:size :paragraph-1
|
||||
@@ -113,15 +107,14 @@
|
||||
title]]))
|
||||
|
||||
(defn- dropdown-center
|
||||
[{:keys [background dropdown-on-press dropdown-selected? dropdown-text
|
||||
center-content-container-style]}]
|
||||
[{:keys [background dropdown-on-press dropdown-selected? dropdown-text center-opacity]}]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
dropdown-type (cond
|
||||
(= background :photo) :grey
|
||||
(and (= theme :dark) (= background :blur)) :grey
|
||||
:else :ghost)
|
||||
dropdown-state (if dropdown-selected? :active :default)]
|
||||
[reanimated/view {:style center-content-container-style}
|
||||
[reanimated/view {:style (style/center-content-container true center-opacity)}
|
||||
[dropdown/view
|
||||
{:type dropdown-type
|
||||
:state dropdown-state
|
||||
@@ -131,9 +124,9 @@
|
||||
dropdown-text]]))
|
||||
|
||||
(defn- token-center
|
||||
[{:keys [background token-logo token-name token-abbreviation center-content-container-style]}]
|
||||
[{:keys [background token-logo token-name token-abbreviation center-opacity]}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[reanimated/view {:style center-content-container-style}
|
||||
[reanimated/view {:style (style/center-content-container false center-opacity)}
|
||||
[rn/image {:style style/token-logo :source token-logo}]
|
||||
[text/text
|
||||
{:style style/token-name
|
||||
@@ -149,9 +142,9 @@
|
||||
token-abbreviation]]))
|
||||
|
||||
(defn- channel-center
|
||||
[{:keys [background channel-emoji channel-name channel-icon center-content-container-style]}]
|
||||
[{:keys [background channel-emoji channel-name channel-icon center-opacity]}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[reanimated/view {:style center-content-container-style}
|
||||
[reanimated/view {:style (style/center-content-container false center-opacity)}
|
||||
[rn/text {:style style/channel-emoji}
|
||||
channel-emoji]
|
||||
[text/text
|
||||
@@ -163,9 +156,9 @@
|
||||
[icons/icon channel-icon {:size 16 :color (style/channel-icon-color theme background)}]]))
|
||||
|
||||
(defn- title-description-center
|
||||
[{:keys [background picture title description center-content-container-style]}]
|
||||
[{:keys [background picture title description center-opacity]}]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[reanimated/view {:style center-content-container-style}
|
||||
[reanimated/view {:style (style/center-content-container false center-opacity)}
|
||||
(when picture
|
||||
[rn/view {:style style/group-avatar-picture}
|
||||
[group-avatar/view {:picture picture :size :size-28}]])
|
||||
@@ -184,11 +177,11 @@
|
||||
description]]]))
|
||||
|
||||
(defn- community-network-center
|
||||
[{:keys [type community-logo network-logo community-name network-name center-content-container-style]}]
|
||||
[{:keys [type community-logo network-logo community-name network-name center-opacity]}]
|
||||
(let [community? (= type :community)
|
||||
shown-logo (if community? community-logo network-logo)
|
||||
shown-name (if community? community-name network-name)]
|
||||
[reanimated/view {:style center-content-container-style}
|
||||
[reanimated/view {:style (style/center-content-container false center-opacity)}
|
||||
[rn/image
|
||||
{:style style/community-network-logo
|
||||
:source shown-logo}]
|
||||
@@ -199,8 +192,8 @@
|
||||
shown-name]]))
|
||||
|
||||
(defn- wallet-networks-center
|
||||
[{:keys [networks networks-on-press background center-content-container-style]}]
|
||||
[reanimated/view {:style center-content-container-style}
|
||||
[{:keys [networks networks-on-press background center-opacity]}]
|
||||
[reanimated/view {:style (style/center-content-container true center-opacity)}
|
||||
[network-dropdown/view
|
||||
{:state :default
|
||||
:on-press networks-on-press
|
||||
@@ -215,11 +208,19 @@
|
||||
- on-press: callback for left button
|
||||
- icon-name: icon for left button
|
||||
- right-side (optional):
|
||||
- The `:account-switcher` keyword
|
||||
- vector of maps to render buttons, e.g.:
|
||||
{:icon-name :i/my-icon
|
||||
:on-press (fn callback [] nil)
|
||||
:accessibility-label \"an optional label\"}
|
||||
|
||||
- account-switcher (optional)
|
||||
- props to render dropdown component (emoji only) e.g.:
|
||||
{:customization-color :purple
|
||||
:on-press (fn [] nil)
|
||||
:state :default (inherit dropdown states)
|
||||
:emoji \"🍑\"}
|
||||
|
||||
Depending on the `type` selected, different properties are accepted:
|
||||
`:title`
|
||||
- title
|
||||
@@ -250,91 +251,86 @@
|
||||
`:network`
|
||||
- network-name
|
||||
- network-logo a valid rn/image `:source` value"
|
||||
[{:keys [type right-side background text-align behind-overlay? center-opacity]
|
||||
[{:keys [type right-side background text-align account-switcher behind-overlay?]
|
||||
:or {type :no-title
|
||||
text-align :center
|
||||
right-side :none
|
||||
background :white}
|
||||
:as props}]
|
||||
(let [center-content-container-style (reanimated/apply-animations-to-style
|
||||
(if center-opacity
|
||||
{:opacity center-opacity}
|
||||
nil)
|
||||
(style/center-content-container
|
||||
(and (= type :title) (= text-align :center))))
|
||||
props-with-style (assoc props
|
||||
:center-content-container-style
|
||||
center-content-container-style)]
|
||||
(case type
|
||||
:no-title
|
||||
(case type
|
||||
:no-title
|
||||
[page-nav-base props
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 3
|
||||
:behind-overlay? behind-overlay?
|
||||
:account-switcher account-switcher}]]
|
||||
|
||||
:title
|
||||
(let [centered? (= text-align :center)]
|
||||
[page-nav-base props
|
||||
[title-center (assoc props :centered? centered?)]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 3
|
||||
:behind-overlay? behind-overlay?}]]
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions (if centered? 1 3)
|
||||
:min-size? centered?
|
||||
:account-switcher account-switcher}]])
|
||||
|
||||
:title
|
||||
(let [centered? (= text-align :center)]
|
||||
[page-nav-base props
|
||||
[title-center props-with-style]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions (if centered? 1 3)
|
||||
:min-size? centered?}]])
|
||||
:dropdown
|
||||
[page-nav-base props
|
||||
[dropdown-center props]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 1
|
||||
:support-account-switcher? false}]]
|
||||
|
||||
:dropdown
|
||||
[page-nav-base props
|
||||
[dropdown-center props-with-style]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 1
|
||||
:support-account-switcher? false}]]
|
||||
:token
|
||||
[page-nav-base props
|
||||
[token-center props]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 3
|
||||
:account-switcher account-switcher}]]
|
||||
|
||||
:token
|
||||
[page-nav-base props
|
||||
[token-center props-with-style]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 3}]]
|
||||
:channel
|
||||
[page-nav-base props
|
||||
[channel-center props]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 3
|
||||
:support-account-switcher? false}]]
|
||||
|
||||
:channel
|
||||
[page-nav-base props
|
||||
[channel-center props-with-style]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 3
|
||||
:support-account-switcher? false}]]
|
||||
:title-description
|
||||
[page-nav-base props
|
||||
[title-description-center props]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 2
|
||||
:support-account-switcher? false}]]
|
||||
|
||||
:title-description
|
||||
[page-nav-base props
|
||||
[title-description-center props-with-style]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 2
|
||||
:support-account-switcher? false}]]
|
||||
:wallet-networks
|
||||
[page-nav-base props
|
||||
[wallet-networks-center props]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 1
|
||||
:min-size? true
|
||||
:account-switcher account-switcher}]]
|
||||
|
||||
:wallet-networks
|
||||
[page-nav-base props
|
||||
[wallet-networks-center props-with-style]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 3
|
||||
:min-size? true}]]
|
||||
(:community :network)
|
||||
[page-nav-base props
|
||||
[community-network-center props]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 3
|
||||
:support-account-switcher? false}]]
|
||||
|
||||
(:community :network)
|
||||
[page-nav-base props
|
||||
[community-network-center props-with-style]
|
||||
[right-content
|
||||
{:background background
|
||||
:content right-side
|
||||
:max-actions 3
|
||||
:support-account-switcher? false}]]
|
||||
|
||||
nil)))
|
||||
nil))
|
||||
|
||||
@@ -67,26 +67,27 @@
|
||||
|
||||
(defn toast
|
||||
"Options:
|
||||
|
||||
|
||||
:type => :neutral/:negative/:positive
|
||||
"
|
||||
[{:keys [type icon title text action undo-duration undo-on-press container-style user]
|
||||
[{:keys [type icon title text action undo-duration undo-on-press container-style theme user]
|
||||
:or {type :neutral icon :i/placeholder}}]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
icon-name (case type
|
||||
:positive (if (= theme :light)
|
||||
:i/correct
|
||||
:i/correct-dark)
|
||||
:negative (if (= theme :light)
|
||||
:i/incorrect
|
||||
:i/incorrect-dark)
|
||||
:neutral icon)]
|
||||
[quo.theme/provider theme
|
||||
(let [context-theme (quo.theme/use-theme)
|
||||
context-theme (or theme context-theme)
|
||||
icon-name (case type
|
||||
:positive (if (= theme :light)
|
||||
:i/correct
|
||||
:i/correct-dark)
|
||||
:negative (if (= theme :light)
|
||||
:i/incorrect
|
||||
:i/incorrect-dark)
|
||||
:neutral icon)]
|
||||
[quo.theme/provider context-theme
|
||||
[toast-container
|
||||
{:left (cond user
|
||||
[user-avatar/user-avatar user]
|
||||
icon-name
|
||||
[icon/icon icon-name (style/icon type theme)])
|
||||
[icon/icon icon-name (style/icon type context-theme)])
|
||||
:title title
|
||||
:text text
|
||||
:right (if undo-duration
|
||||
@@ -95,4 +96,3 @@
|
||||
:undo-on-press undo-on-press}]
|
||||
action)
|
||||
:container-style container-style}]]))
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
[:lower-case? :boolean]
|
||||
[:upper-case? :boolean]
|
||||
[:numbers? :boolean]
|
||||
[:symbols? :boolean]]]
|
||||
:any])
|
||||
[:symbols? :boolean]]
|
||||
[:any]]])
|
||||
|
||||
(defn- view-internal
|
||||
[{:keys [lower-case? upper-case? numbers? symbols?]}]
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
(ns quo.components.profile.expanded-collectible.style
|
||||
(:require [quo.foundations.colors :as colors]))
|
||||
(:require [quo.foundations.colors :as colors]
|
||||
[quo.foundations.shadows :as shadows]))
|
||||
|
||||
(def container
|
||||
{:align-items :center
|
||||
:justify-content :center
|
||||
:border-radius 16})
|
||||
(defn container
|
||||
[theme]
|
||||
(merge (shadows/get 2 theme)
|
||||
{:align-items :center
|
||||
:justify-content :center
|
||||
:border-radius 16}))
|
||||
|
||||
(defn image
|
||||
[square? aspect-ratio]
|
||||
|
||||
@@ -34,8 +34,7 @@
|
||||
label]])
|
||||
|
||||
(defn view-internal
|
||||
[{:keys [container-style square? on-press counter image-src native-ID supported-file?
|
||||
on-collectible-load]}]
|
||||
[{:keys [container-style square? on-press counter image-src native-ID supported-file?]}]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
[image-size set-image-size] (rn/use-state {})
|
||||
[image-error? set-image-error] (rn/use-state false)]
|
||||
@@ -49,7 +48,7 @@
|
||||
[rn/pressable
|
||||
{:on-press (when (and (not image-error?) supported-file?) on-press)
|
||||
:accessibility-label :expanded-collectible
|
||||
:style (merge container-style style/container)}
|
||||
:style (merge container-style (style/container theme))}
|
||||
(cond
|
||||
(not supported-file?)
|
||||
[fallback-view
|
||||
@@ -69,8 +68,7 @@
|
||||
{:style (style/image square? (:aspect-ratio image-size))
|
||||
:source image-src
|
||||
:native-ID native-ID
|
||||
:on-error #(set-image-error true)
|
||||
:on-load on-collectible-load}]
|
||||
:on-error #(set-image-error true)}]
|
||||
[counter-view counter]])]))
|
||||
|
||||
(def ?schema
|
||||
@@ -84,8 +82,7 @@
|
||||
[:native-ID {:optional true} [:maybe [:or string? keyword?]]]
|
||||
[:square? {:optional true} [:maybe boolean?]]
|
||||
[:counter {:optional true} [:maybe string?]]
|
||||
[:on-press {:optional true} [:maybe fn?]]
|
||||
[:on-collectible-load {:optional true} [:maybe fn?]]]]]
|
||||
[:on-press {:optional true} [:maybe fn?]]]]]
|
||||
:any])
|
||||
|
||||
(def view (schema/instrument #'view-internal ?schema))
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
[quo.foundations.colors :as colors]))
|
||||
|
||||
(defn container
|
||||
[{:keys [size card? blur? actionable? theme]}]
|
||||
[size card? blur? theme]
|
||||
{:flex-direction :row
|
||||
:justify-content :space-between
|
||||
:padding-vertical (when (= size :default) 8)
|
||||
@@ -11,11 +11,8 @@
|
||||
:border-radius 16
|
||||
:border-width (when (and card? (not= size :small)) 1)
|
||||
:background-color (if blur?
|
||||
(if actionable? :transparent colors/white-opa-5)
|
||||
(colors/theme-colors
|
||||
(if actionable? colors/white colors/neutral-2_5)
|
||||
(if actionable? colors/neutral-95 colors/neutral-90)
|
||||
theme))
|
||||
colors/white-opa-5
|
||||
(colors/theme-colors colors/white colors/neutral-95 theme))
|
||||
:border-color (if blur?
|
||||
colors/white-opa-10
|
||||
(colors/theme-colors colors/neutral-10
|
||||
|
||||
@@ -125,12 +125,7 @@
|
||||
{:accessibility-label :data-item
|
||||
:disabled (not icon-right?)
|
||||
:on-press on-press
|
||||
:style (merge (style/container {:size size
|
||||
:card? card?
|
||||
:blur? blur?
|
||||
:actionable? on-press
|
||||
:theme theme})
|
||||
container-style)}
|
||||
:style (merge (style/container size card? blur? theme) container-style)}
|
||||
[left-side props]
|
||||
(when (and (= :default status) (not= :small size))
|
||||
[right-side
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
(def container
|
||||
{:flex-direction :row
|
||||
:flex 1
|
||||
:justify-content :space-between})
|
||||
|
||||
(def right-counter
|
||||
|
||||
+2
-2
@@ -35,9 +35,9 @@
|
||||
quo.components.community.community-detail-token-gating.view
|
||||
quo.components.community.community-list-view
|
||||
quo.components.community.community-stat.view
|
||||
quo.components.community.community-token-gating.view
|
||||
quo.components.community.community-view
|
||||
quo.components.community.icon
|
||||
quo.components.community.token-gating
|
||||
quo.components.counter.collectible-counter.view
|
||||
quo.components.counter.counter.view
|
||||
quo.components.counter.step.view
|
||||
@@ -227,7 +227,6 @@
|
||||
;;;; Community
|
||||
(def community-card-view-item quo.components.community.community-card-view/view)
|
||||
(def community-detail-token-gating quo.components.community.community-detail-token-gating.view/view)
|
||||
(def community-token-gating quo.components.community.community-token-gating.view/view)
|
||||
(def communities-membership-list-item
|
||||
quo.components.community.community-list-view/communities-membership-list-item)
|
||||
(def community-stats-column quo.components.community.community-view/community-stats-column)
|
||||
@@ -237,6 +236,7 @@
|
||||
(def permission-tag-container quo.components.community.community-view/permission-tag-container)
|
||||
(def discover-card quo.components.community.banner.view/view)
|
||||
(def community-icon quo.components.community.icon/community-icon)
|
||||
(def token-requirement-list quo.components.community.token-gating/token-requirement-list)
|
||||
(def channel-action quo.components.community.channel-action.view/view)
|
||||
(def channel-actions quo.components.community.channel-actions.view/view)
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
quo.components.colors.color-picker.component-spec
|
||||
quo.components.community.community-detail-token-gating.component-spec
|
||||
quo.components.community.community-stat.component-spec
|
||||
quo.components.community.community-token-gating.component-spec
|
||||
quo.components.counter.collectible-counter.component-spec
|
||||
quo.components.counter.counter.component-spec
|
||||
quo.components.counter.step.component-spec
|
||||
|
||||
@@ -199,15 +199,6 @@
|
||||
[handler deps]
|
||||
(react/useMemo handler (get-js-deps deps)))
|
||||
|
||||
(defn delay-render
|
||||
[content]
|
||||
(let [[render? set-render] (use-state false)]
|
||||
(use-mount
|
||||
(fn []
|
||||
(js/setTimeout #(set-render true) 0)))
|
||||
(when render?
|
||||
content)))
|
||||
|
||||
(def layout-animation (.-LayoutAnimation ^js react-native))
|
||||
(def configure-next (.-configureNext ^js layout-animation))
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
[_]
|
||||
(let [loaded? (reagent/atom false)
|
||||
error? (reagent/atom false)]
|
||||
(fn [{:keys [source fallback-content] :as props}]
|
||||
(fn [{:keys [source] :as props}]
|
||||
[fast-image-class
|
||||
(merge
|
||||
props
|
||||
@@ -35,6 +35,6 @@
|
||||
(when (or @error? (not @loaded?))
|
||||
[placeholder (:style props)
|
||||
(if @error?
|
||||
(or fallback-content [rn/text "X"])
|
||||
[rn/text "X"]
|
||||
(when-not @loaded?
|
||||
[rn/activity-indicator {:animating true}]))])])))
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
(ns react-native.transparent-video
|
||||
(:require
|
||||
["react-native-transparent-video" :default TV]
|
||||
[reagent.core :as reagent]))
|
||||
|
||||
(def view (reagent/adapt-react-class TV))
|
||||
@@ -1,22 +0,0 @@
|
||||
(ns react-native.wallet-connect
|
||||
(:require
|
||||
["@walletconnect/core" :refer [Core]]
|
||||
["@walletconnect/utils" :refer [buildApprovedNamespaces]]
|
||||
["@walletconnect/web3wallet" :refer [Web3Wallet]]))
|
||||
|
||||
(defn- wallet-connect-core
|
||||
[project-id]
|
||||
(Core. #js {:projectId project-id}))
|
||||
|
||||
(defn init
|
||||
[project-id metadata]
|
||||
(let [core (wallet-connect-core project-id)]
|
||||
(Web3Wallet.init
|
||||
(clj->js {:core core
|
||||
:metadata metadata}))))
|
||||
|
||||
(defn build-approved-namespaces
|
||||
[proposal supported-namespaces]
|
||||
(buildApprovedNamespaces
|
||||
(clj->js {:proposal proposal
|
||||
:supportedNamespaces supported-namespaces})))
|
||||
+1
-1
@@ -19,5 +19,5 @@
|
||||
(catch js/Error e#
|
||||
(taoensso.timbre/error "Failed to instrument function"
|
||||
{:symbol ~sym :error e#})
|
||||
(throw e#)))
|
||||
~sym))
|
||||
~sym))
|
||||
|
||||
@@ -91,5 +91,5 @@
|
||||
{:schema-id schema-id
|
||||
:error e
|
||||
:function f})
|
||||
(throw e)))
|
||||
f))
|
||||
f)))
|
||||
|
||||
@@ -16,4 +16,4 @@
|
||||
|
||||
(def ^:const default-dimension 1000)
|
||||
|
||||
(def ^:const margin 16)
|
||||
(def ^:const margin 8)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
(ns status-im.common.parallax.blacklist
|
||||
(:require
|
||||
[native-module.core :as native-module]))
|
||||
|
||||
(def ^:private device-id (:device-id (native-module/get-device-model-info)))
|
||||
|
||||
(defn- get-model-code
|
||||
[model]
|
||||
(if-let [[_ code] (and model (re-find #"iPhone(\d+)" model))]
|
||||
(js/parseInt code 10)
|
||||
0))
|
||||
|
||||
(def ^:private minimum-device-code 11)
|
||||
|
||||
(def blacklisted?
|
||||
(-> device-id
|
||||
get-model-code
|
||||
(< minimum-device-code)))
|
||||
@@ -0,0 +1,26 @@
|
||||
(ns status-im.common.parallax.style
|
||||
(:require
|
||||
[react-native.core :as rn]
|
||||
[react-native.safe-area :as safe-area]))
|
||||
|
||||
(defn outer-container
|
||||
[container-style]
|
||||
(merge {:position :absolute
|
||||
:top (if rn/small-screen? (safe-area/get-top) 0)
|
||||
:left 0
|
||||
:right 0
|
||||
:bottom 0}
|
||||
container-style))
|
||||
|
||||
(def video
|
||||
{:position :absolute
|
||||
:top 0
|
||||
:left 0
|
||||
:right 0
|
||||
:bottom 0})
|
||||
|
||||
(defn container-view
|
||||
[width height]
|
||||
{:position :absolute
|
||||
:width width
|
||||
:height height})
|
||||
@@ -0,0 +1,54 @@
|
||||
(ns status-im.common.parallax.view
|
||||
(:require
|
||||
[react-native.core :as rn]
|
||||
[react-native.reanimated :as reanimated]
|
||||
[react-native.transparent-video :as transparent-video]
|
||||
[status-im.common.parallax.style :as style]
|
||||
[utils.worklets.parallax :as worklets.parallax]))
|
||||
|
||||
(defn f-sensor-animated-video
|
||||
[{:keys [offset stretch order source disable-parallax? enable-looping?]}]
|
||||
(let [double-stretch (* 2 stretch)
|
||||
{window-width :width
|
||||
window-height :height} (rn/get-window)
|
||||
image-style (if (not disable-parallax?)
|
||||
(worklets.parallax/sensor-animated-image order offset stretch)
|
||||
{:top 0
|
||||
:right 0
|
||||
:bottom 0
|
||||
:left 0})]
|
||||
(fn []
|
||||
[reanimated/view
|
||||
{:needsOffscreenAlphaCompositing true
|
||||
:style [(style/container-view
|
||||
(+ window-width double-stretch)
|
||||
(+ window-height double-stretch))
|
||||
image-style]}
|
||||
[transparent-video/view
|
||||
{:source source
|
||||
:style style/video
|
||||
:loop enable-looping?}]])))
|
||||
|
||||
(defn sensor-animated-video
|
||||
[props]
|
||||
[:f> f-sensor-animated-video props])
|
||||
|
||||
(defn f-video
|
||||
[{:keys [layers disable-parallax? offset stretch container-style enable-looping?]
|
||||
:or {offset 50 stretch 0}}]
|
||||
[rn/view
|
||||
{:style (style/outer-container container-style)}
|
||||
(map-indexed (fn [idx layer]
|
||||
[sensor-animated-video
|
||||
{:key (str layer idx)
|
||||
:source layer
|
||||
:offset offset
|
||||
:stretch stretch
|
||||
:order (inc idx)
|
||||
:disable-parallax? disable-parallax?
|
||||
:enable-looping? enable-looping?}])
|
||||
layers)])
|
||||
|
||||
(defn video
|
||||
[props]
|
||||
[:f> f-video props])
|
||||
@@ -1,10 +0,0 @@
|
||||
(ns status-im.common.refreshable-flat-list.view
|
||||
(:require [react-native.core :as rn]
|
||||
[reagent.core :as reagent]))
|
||||
|
||||
(defn view
|
||||
[{:keys [refresh-control] :as props}]
|
||||
[rn/flat-list
|
||||
(merge {:refresh-control (reagent/as-element
|
||||
refresh-control)}
|
||||
(dissoc props :refresh-control))])
|
||||
@@ -128,6 +128,19 @@
|
||||
:user-picture-male4 (js/require "../resources/images/mock2/user_picture_male4.png")
|
||||
:user-picture-male5 (js/require "../resources/images/mock2/user_picture_male5.png")})
|
||||
|
||||
(def parallax-video
|
||||
{:biometrics [(js/require "../resources/videos2/biometrics_01.mp4")
|
||||
(js/require "../resources/videos2/biometrics_02.mp4")
|
||||
(js/require "../resources/videos2/biometrics_03.mp4")
|
||||
(js/require "../resources/videos2/biometrics_04.mp4")]
|
||||
:generate-keys [(js/require "../resources/videos2/generating_keys_01.mp4")
|
||||
(js/require "../resources/videos2/generating_keys_02.mp4")
|
||||
(js/require "../resources/videos2/generating_keys_03.mp4")]
|
||||
:notifications [(js/require "../resources/videos2/notifications_01.mp4")
|
||||
(js/require "../resources/videos2/notifications_02.mp4")
|
||||
(js/require "../resources/videos2/notifications_03.mp4")
|
||||
(js/require "../resources/videos2/notifications_04.mp4")]})
|
||||
|
||||
(def services
|
||||
{:latamex (js/require "../resources/images/services/Latamex.png")
|
||||
:moonpay (js/require "../resources/images/services/Moonpay.png")
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
:height height
|
||||
:right 0
|
||||
:left 0
|
||||
:background-color (if platform/android?
|
||||
:background-color (if platform/ios?
|
||||
(colors/theme-colors
|
||||
colors/white-opa-70
|
||||
colors/neutral-95-opa-70
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
[:<>
|
||||
[reanimated/blur-view
|
||||
{:blur-amount 20
|
||||
:blur-type :ultraThinMaterial
|
||||
:blur-type :transparent
|
||||
:overlay-color :transparent
|
||||
:style (style/blur-slider translate-animation height theme)}]
|
||||
[rn/view
|
||||
@@ -64,8 +64,7 @@
|
||||
[quo/page-nav
|
||||
(cond-> {:margin-top (safe-area/get-top)
|
||||
:type :no-title
|
||||
:background (if (or (:blur? page-nav-props)
|
||||
(= 1 (reanimated/get-shared-value opacity-animation)))
|
||||
:background (if (= 1 (reanimated/get-shared-value opacity-animation))
|
||||
:blur
|
||||
:photo)
|
||||
:right-side page-nav-right-section-buttons
|
||||
@@ -108,7 +107,7 @@
|
||||
children]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[:<>
|
||||
[f-scroll-page-header
|
||||
[:f> f-scroll-page-header
|
||||
{:scroll-height @scroll-height
|
||||
:height height
|
||||
:sticky-header sticky-header
|
||||
@@ -119,8 +118,7 @@
|
||||
:page-nav-props page-nav-props
|
||||
:overlay-shown? overlay-shown?}]
|
||||
[rn/scroll-view
|
||||
{:bounces false
|
||||
:content-container-style {:flex-grow 1}
|
||||
{:content-container-style {:flex-grow 1}
|
||||
:content-inset-adjustment-behavior :never
|
||||
:shows-vertical-scroll-indicator false
|
||||
:scroll-event-throttle 16
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
(ns status-im.common.validation.keypair
|
||||
(:require [clojure.string :as string]
|
||||
[status-im.common.validation.general :as validators]
|
||||
[status-im.constants :as constants]
|
||||
utils.emojilib
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(defn keypair-too-short?
|
||||
[s]
|
||||
(< (-> s str string/trim count) constants/key-pair-name-min-length))
|
||||
|
||||
(defn keypair-too-long?
|
||||
[s]
|
||||
(> (-> s str string/trim count) constants/key-pair-name-max-length))
|
||||
|
||||
(defn validation-keypair-name
|
||||
[s]
|
||||
(cond
|
||||
(string/blank? s) nil
|
||||
(validators/has-emojis? s) (i18n/label :t/key-name-error-emoji)
|
||||
(validators/has-special-characters? s) (i18n/label :t/key-name-error-special-char)
|
||||
(keypair-too-short? s) (i18n/label :t/your-key-pair-name-is-too-short)
|
||||
(keypair-too-long? s) (i18n/label :t/your-key-pair-name-is-too-long)))
|
||||
@@ -1,27 +0,0 @@
|
||||
(ns status-im.common.validation.keypair-test
|
||||
(:require
|
||||
[cljs.test :refer-macros [deftest are]]
|
||||
[status-im.common.validation.keypair :as keypair-validator]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(deftest keypair-name-too-short-test
|
||||
(are [arg expected]
|
||||
(expected (keypair-validator/keypair-too-short? arg))
|
||||
"abc" true?
|
||||
"abcdef" false?))
|
||||
|
||||
(deftest keypair-name-too-long-test
|
||||
(are [arg expected]
|
||||
(expected (keypair-validator/keypair-too-long? arg))
|
||||
(apply str (repeat 25 "a")) true?
|
||||
"abcdef" false?))
|
||||
|
||||
(deftest validation-keypair-name-test
|
||||
(are [arg expected]
|
||||
(= (keypair-validator/validation-keypair-name arg) expected)
|
||||
nil nil
|
||||
"" nil
|
||||
"name !" (i18n/label :t/key-name-error-special-char)
|
||||
"Hello 😊" (i18n/label :t/key-name-error-emoji)
|
||||
"abc" (i18n/label :t/your-key-pair-name-is-too-short)
|
||||
(apply str (repeat 25 "a")) (i18n/label :t/your-key-pair-name-is-too-long)))
|
||||
@@ -77,9 +77,6 @@
|
||||
(def ^:const contact-request-message-state-declined 3)
|
||||
(def ^:const contact-request-message-max-length 280)
|
||||
|
||||
(def ^:const key-pair-name-max-length 20)
|
||||
(def ^:const key-pair-name-min-length 5)
|
||||
|
||||
(def request-to-join-pending-state 1)
|
||||
|
||||
(def reactions
|
||||
@@ -257,15 +254,6 @@
|
||||
(def regx-starts-with-uuid #"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}")
|
||||
(def regx-full-or-partial-address #"^0x[a-fA-F0-9]{1,40}$")
|
||||
|
||||
;; Wallet Connect
|
||||
(def ^:const wallet-connect-metadata-icon
|
||||
"https://res.cloudinary.com/dhgck7ebz/image/upload/f_auto,c_limit,w_1080,q_auto/Brand/Logo%20Section/Mark/Mark_01")
|
||||
(def ^:const wallet-connect-metadata-url "https://status.app")
|
||||
(def ^:const optimism-crosschain-id "eip155:10")
|
||||
(def ^:const wallet-connect-supported-methods ["eth_sendTransaction" "personal_sign"])
|
||||
(def ^:const wallet-connect-supported-events ["accountsChanged" "chainChanged"])
|
||||
(def ^:const wallet-connect-session-proposal-event "session_proposal")
|
||||
|
||||
(def ^:const dapp-permission-contact-code "contact-code")
|
||||
(def ^:const dapp-permission-web3 "web3")
|
||||
(def ^:const dapp-permission-qr-code "qr-code")
|
||||
@@ -467,7 +455,6 @@
|
||||
#{ethereum-sepolia-chain-id arbitrum-sepolia-chain-id optimism-sepolia-chain-id})
|
||||
|
||||
(def ^:const mainnet-short-name "eth")
|
||||
(def ^:const ethereum-short-name "eth")
|
||||
(def ^:const optimism-short-name "opt")
|
||||
(def ^:const arbitrum-short-name "arb1")
|
||||
|
||||
@@ -478,7 +465,6 @@
|
||||
(def ^:const arbitrum-abbreviated-name "Arb1.")
|
||||
|
||||
(def ^:const mainnet-network-name :mainnet)
|
||||
(def ^:const ethereum-network-name :ethereum)
|
||||
(def ^:const optimism-network-name :optimism)
|
||||
(def ^:const arbitrum-network-name :arbitrum)
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
item]))))
|
||||
|
||||
(defn add-manage-members
|
||||
[{:keys [scroll-enabled? on-scroll]}]
|
||||
[]
|
||||
(let [selected-participants (rf/sub [:group-chat/selected-participants])
|
||||
deselected-members (rf/sub [:group-chat/deselected-members])
|
||||
chat-id (rf/sub [:get-screen-params :group-add-manage-members])
|
||||
@@ -62,8 +62,6 @@
|
||||
(i18n/label :t/manage-members)]
|
||||
[gesture/section-list
|
||||
{:key-fn :title
|
||||
:scroll-enabled @scroll-enabled?
|
||||
:on-scroll on-scroll
|
||||
:sticky-section-headers-enabled false
|
||||
:sections (rf/sub [:contacts/grouped-by-first-letter])
|
||||
:render-section-header-fn contact-list/contacts-section-header
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
(:require
|
||||
[oops.core :as oops]
|
||||
[quo.core :as quo]
|
||||
[react-native.platform :as platform]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.common.lightbox.constants :as constants]
|
||||
[status-im.contexts.chat.messenger.messages.content.lightbox.style :as style]
|
||||
@@ -35,6 +36,7 @@
|
||||
[:lightbox/save-image-to-gallery
|
||||
uri
|
||||
#(rf/dispatch [:toasts/upsert
|
||||
{:id :random-id
|
||||
:type :positive
|
||||
:text (i18n/label :t/photo-saved)}])]))}]]]))
|
||||
{:id :random-id
|
||||
:type :positive
|
||||
:container-style {:bottom (when platform/android? 20)}
|
||||
:text (i18n/label :t/photo-saved)}])]))}]]]))
|
||||
|
||||
@@ -126,32 +126,25 @@
|
||||
(-> user-name
|
||||
(string/replace "<b>" "")
|
||||
(string/replace "</b>" "")))]
|
||||
(when (and user-name content)
|
||||
[rn/view
|
||||
{:style {:flex-direction :row
|
||||
:padding-horizontal 12
|
||||
:padding-top 4}}
|
||||
[fast-image/fast-image
|
||||
{:source {:uri user-avatar}
|
||||
:fallback-content [quo/user-avatar
|
||||
{:full-name user-name
|
||||
:ring? false
|
||||
:online? false
|
||||
:status-indicator? false
|
||||
:size :small}]
|
||||
:style {:width 32
|
||||
:margin-top 4
|
||||
:border-radius 16
|
||||
:height 32}}]
|
||||
[rn/view {:margin-left 8 :flex 1}
|
||||
[quo/author
|
||||
{:primary-name (str user-name)
|
||||
:short-chat-key (str "Bridged from " bridge-name)
|
||||
:time-str (datetime/timestamp->time timestamp)}]
|
||||
[quo/text
|
||||
{:size :paragraph-1
|
||||
:style {:line-height 22.75}}
|
||||
content]]])))
|
||||
[rn/view
|
||||
{:style {:flex-direction :row
|
||||
:padding-horizontal 12
|
||||
:padding-top 4}}
|
||||
[fast-image/fast-image
|
||||
{:source {:uri user-avatar}
|
||||
:style {:width 32
|
||||
:margin-top 4
|
||||
:border-radius 16
|
||||
:height 32}}]
|
||||
[rn/view {:margin-left 8 :flex 1}
|
||||
[quo/author
|
||||
{:primary-name (str user-name)
|
||||
:short-chat-key (str "Bridged from " bridge-name)
|
||||
:time-str (datetime/timestamp->time timestamp)}]
|
||||
[quo/text
|
||||
{:size :paragraph-1
|
||||
:style {:line-height 22.75}}
|
||||
content]]]))
|
||||
|
||||
(declare on-long-press)
|
||||
|
||||
|
||||
@@ -48,11 +48,10 @@
|
||||
{:transform [{:scale scale}]
|
||||
:top top
|
||||
:left left}
|
||||
{:position :absolute
|
||||
:border-width 4
|
||||
:border-radius 50
|
||||
:background-color (colors/theme-colors colors/white colors/neutral-95 theme)
|
||||
:border-color (colors/theme-colors colors/white colors/neutral-95 theme)}))
|
||||
{:position :absolute
|
||||
:border-width 4
|
||||
:border-radius 50
|
||||
:border-color (colors/theme-colors colors/white colors/neutral-95 theme)}))
|
||||
|
||||
(defn user-name-container
|
||||
[top left]
|
||||
|
||||
@@ -133,21 +133,15 @@
|
||||
community-channel? (= chat-type constants/community-chat-type)]
|
||||
[reanimated/view
|
||||
{:style (style/header-image scale top left theme)}
|
||||
(cond
|
||||
community-channel?
|
||||
[quo/channel-avatar
|
||||
{:size :size-80
|
||||
:full-name chat-name
|
||||
:customization-color color
|
||||
:emoji (when-not (string/blank? emoji)
|
||||
(string/trim emoji))}]
|
||||
group-chat
|
||||
(if group-chat
|
||||
[quo/group-avatar
|
||||
{:customization-color color
|
||||
:size :size-80
|
||||
:picture profile-picture
|
||||
:emoji (when (and (not (string/blank? emoji))
|
||||
community-channel?)
|
||||
(string/trim emoji))
|
||||
:chat-name chat-name}]
|
||||
:else
|
||||
[quo/user-avatar
|
||||
{:full-name display-name
|
||||
:online? online?
|
||||
|
||||
@@ -23,21 +23,17 @@
|
||||
|
||||
(defn lazy-chat-screen
|
||||
[chat-screen-layout-calculations-complete?]
|
||||
(let [screen-loaded? (rf/sub [:shell/chat-screen-loaded?])
|
||||
distance-from-list-top (reanimated/use-shared-value 0)
|
||||
chat-list-scroll-y (reanimated/use-shared-value 0)
|
||||
props {:insets (safe-area/get-insets)
|
||||
:content-height (atom 0)
|
||||
:layout-height (atom 0)
|
||||
:distance-atom (atom 0)
|
||||
:distance-from-list-top distance-from-list-top
|
||||
:chat-list-scroll-y chat-list-scroll-y
|
||||
:chat-screen-layout-calculations-complete?
|
||||
chat-screen-layout-calculations-complete?}]
|
||||
(let [screen-loaded? (rf/sub [:shell/chat-screen-loaded?])
|
||||
props {:insets (safe-area/get-insets)
|
||||
:content-height (atom 0)
|
||||
:layout-height (atom 0)
|
||||
:distance-atom (atom 0)
|
||||
:distance-from-list-top (reanimated/use-shared-value 0)
|
||||
:chat-list-scroll-y (reanimated/use-shared-value 0)
|
||||
:chat-screen-layout-calculations-complete?
|
||||
chat-screen-layout-calculations-complete?}]
|
||||
(when-not screen-loaded?
|
||||
(reanimated/set-shared-value chat-screen-layout-calculations-complete? false)
|
||||
(reanimated/set-shared-value distance-from-list-top 0)
|
||||
(reanimated/set-shared-value chat-list-scroll-y 0))
|
||||
(reanimated/set-shared-value chat-screen-layout-calculations-complete? false))
|
||||
(when screen-loaded?
|
||||
[chat-screen props])))
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
[status-im.common.muting.helpers :refer [format-mute-till]]
|
||||
[status-im.constants :as constants]
|
||||
[status-im.contexts.communities.actions.leave.view :as leave-menu]
|
||||
[status-im.contexts.communities.actions.permissions-sheet.view :as permissions-sheet]
|
||||
[status-im.contexts.communities.actions.see-rules.view :as see-rules]
|
||||
[status-im.contexts.communities.actions.token-gating.view :as token-gating]
|
||||
[status-im.feature-flags :as ff]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
@@ -39,7 +39,8 @@
|
||||
:right-icon :i/chevron-right
|
||||
:accessibility-label :view-token-gating
|
||||
:on-press #(rf/dispatch [:show-bottom-sheet
|
||||
{:content (fn [] [permissions-sheet/view id])
|
||||
{:content (fn [] [token-gating/token-requirements
|
||||
id])
|
||||
:padding-bottom-override 16}])
|
||||
:label (i18n/label :t/view-token-gating)})
|
||||
|
||||
|
||||
@@ -8,4 +8,5 @@
|
||||
[id]
|
||||
(let [permissions (rf/sub [:community/token-permissions id])]
|
||||
[gesture/scroll-view
|
||||
[quo/community-detail-token-gating {:permissions permissions}]]))
|
||||
[quo/community-detail-token-gating {:permissions permissions}]
|
||||
]))
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
(ns status-im.contexts.communities.actions.token-gating.view
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[react-native.core :as rn]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn token-requirements
|
||||
[]
|
||||
(fn [id]
|
||||
(let [{:keys [can-request-access? tokens]} (rf/sub [:community/token-gated-overview id])]
|
||||
[rn/view {:style {:padding-horizontal 20}}
|
||||
[quo/text {:weight :medium}
|
||||
(if can-request-access?
|
||||
(i18n/label :t/you-eligible-to-join)
|
||||
(i18n/label :t/you-not-eligible-to-join))]
|
||||
[quo/text {:style {:padding-bottom 8} :size :paragraph-2}
|
||||
(if can-request-access?
|
||||
(i18n/label :t/you-hodl)
|
||||
(i18n/label :t/you-must-hold))]
|
||||
[quo/token-requirement-list {:tokens tokens}]])))
|
||||
@@ -1,5 +1,6 @@
|
||||
(ns status-im.contexts.communities.overview.style
|
||||
(:require
|
||||
[quo.foundations.colors :as colors]
|
||||
[status-im.contexts.shell.jump-to.constants :as jump-to.constants]))
|
||||
|
||||
(def screen-horizontal-padding 20)
|
||||
@@ -15,10 +16,17 @@
|
||||
(def community-content-container
|
||||
{:padding-horizontal screen-horizontal-padding})
|
||||
|
||||
(defn fetching-placeholder
|
||||
[top-inset]
|
||||
{:flex 1
|
||||
:margin-top top-inset})
|
||||
(def preview-user
|
||||
{:flex-direction :row
|
||||
:align-items :center
|
||||
:margin-top 20})
|
||||
|
||||
(def fetching-placeholder
|
||||
{:align-items :center
|
||||
:justify-content :center
|
||||
:flex 1})
|
||||
|
||||
(def fetching-text {:color :red})
|
||||
|
||||
(def blur-channel-header
|
||||
{:position :absolute
|
||||
@@ -28,6 +36,12 @@
|
||||
:left 0
|
||||
:flex 1})
|
||||
|
||||
(def review-notice
|
||||
{:color colors/neutral-50
|
||||
:margin-top 12
|
||||
:margin-left :auto
|
||||
:margin-right :auto})
|
||||
|
||||
(def community-overview-container
|
||||
{:position :absolute
|
||||
:top 0
|
||||
@@ -44,3 +58,11 @@
|
||||
{:margin-top 8
|
||||
:margin-bottom (+ 21 jump-to.constants/floating-shell-button-height)
|
||||
:flex 1})
|
||||
|
||||
(defn token-gated-container
|
||||
[theme]
|
||||
{:border-radius 16
|
||||
:border-color (colors/theme-colors colors/neutral-20 colors/neutral-80 theme)
|
||||
:border-width 1
|
||||
:padding-top 10
|
||||
:margin-bottom 106})
|
||||
|
||||
@@ -6,10 +6,9 @@
|
||||
[quo.theme]
|
||||
[react-native.blur :as blur]
|
||||
[react-native.core :as rn]
|
||||
[react-native.safe-area :as safe-area]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.common.home.actions.view :as actions]
|
||||
[status-im.common.resources :as resources]
|
||||
[status-im.common.not-implemented :as not-implemented]
|
||||
[status-im.common.scroll-page.style :as scroll-page.style]
|
||||
[status-im.common.scroll-page.view :as scroll-page]
|
||||
[status-im.config :as config]
|
||||
@@ -73,26 +72,25 @@
|
||||
(into #{} (map (comp :name second) channels-list)))
|
||||
:style (style/channel-list-component)}
|
||||
(for [[category-id {:keys [chats name collapsed?]}] channels-list]
|
||||
(when (seq chats)
|
||||
[rn/view
|
||||
{:key category-id
|
||||
;; on-layout fires only when the component re-renders, so
|
||||
;; in case the category hasn't changed, it will not be fired
|
||||
:on-layout #(on-category-layout name category-id (int (layout-y %)))}
|
||||
(when-not (= constants/empty-category-id category-id)
|
||||
[quo/divider-label
|
||||
{:on-press #(collapse-category community-id category-id collapsed?)
|
||||
:chevron-icon (if collapsed? :i/chevron-right :i/chevron-down)
|
||||
:chevron :left}
|
||||
name])
|
||||
(when-not collapsed?
|
||||
[rn/view {:style {:padding-horizontal 8}}
|
||||
(let [last-item-index (dec (count chats))]
|
||||
(map-indexed
|
||||
(fn [index chat]
|
||||
^{:key (:id chat)}
|
||||
[channel-chat-item community-id chat (= index last-item-index)])
|
||||
chats))])]))])
|
||||
[rn/view
|
||||
{:key category-id
|
||||
;; on-layout fires only when the component re-renders, so
|
||||
;; in case the category hasn't changed, it will not be fired
|
||||
:on-layout #(on-category-layout name category-id (int (layout-y %)))}
|
||||
(when-not (= constants/empty-category-id category-id)
|
||||
[quo/divider-label
|
||||
{:on-press #(collapse-category community-id category-id collapsed?)
|
||||
:chevron-icon (if collapsed? :i/chevron-right :i/chevron-down)
|
||||
:chevron :left}
|
||||
name])
|
||||
(when-not collapsed?
|
||||
[rn/view {:style {:padding-horizontal 8}}
|
||||
(let [last-item-index (dec (count chats))]
|
||||
(map-indexed
|
||||
(fn [index chat]
|
||||
^{:key (:id chat)}
|
||||
[channel-chat-item community-id chat (= index last-item-index)])
|
||||
chats))])])])
|
||||
|
||||
(defn- get-access-type
|
||||
[access]
|
||||
@@ -102,6 +100,24 @@
|
||||
constants/community-on-request-access :request-access
|
||||
:unknown-access))
|
||||
|
||||
(defn- info-button
|
||||
[]
|
||||
(let [theme (quo.theme/use-theme)]
|
||||
[rn/pressable
|
||||
{:on-press
|
||||
#(rf/dispatch
|
||||
[:show-bottom-sheet
|
||||
{:content
|
||||
(fn []
|
||||
[quo/documentation-drawers
|
||||
{:title (i18n/label :t/token-gated-communities)
|
||||
:show-button? true
|
||||
:button-label (i18n/label :t/read-more)
|
||||
:button-icon :info}
|
||||
[quo/text {:size :paragraph-2} (i18n/label :t/token-gated-communities-info)]])}])}
|
||||
[rn/view
|
||||
[quo/icon :i/info {:color (colors/theme-colors colors/neutral-50 colors/neutral-40 theme)}]]]))
|
||||
|
||||
(defn- network-not-supported
|
||||
[]
|
||||
[quo/text (i18n/label :t/network-not-supported)])
|
||||
@@ -119,39 +135,19 @@
|
||||
:icon-left :i/communities}
|
||||
(i18n/label :t/request-to-join)])
|
||||
|
||||
(defn- info-button-handler
|
||||
[]
|
||||
(rf/dispatch
|
||||
[:show-bottom-sheet
|
||||
{:content
|
||||
(fn []
|
||||
[quo/documentation-drawers
|
||||
{:title (i18n/label :t/token-gated-communities)
|
||||
:show-button? true
|
||||
:button-label (i18n/label :t/read-more)
|
||||
:button-icon :info}
|
||||
[quo/text {:size :paragraph-2}
|
||||
(i18n/label :t/token-gated-communities-info)]])}]))
|
||||
|
||||
(defn- token-requirements
|
||||
[{:keys [id color role-permissions?]}]
|
||||
(let [{:keys [can-request-access?
|
||||
(let [theme (quo.theme/use-theme)
|
||||
{:keys [can-request-access?
|
||||
no-member-permission?
|
||||
tokens
|
||||
networks-not-supported?
|
||||
highest-permission-role]} (rf/sub [:community/token-gated-overview id])
|
||||
highest-role-text
|
||||
(i18n/label
|
||||
(communities.utils/role->translation-key highest-permission-role :t/member))
|
||||
on-press (rn/use-callback (fn []
|
||||
(if config/community-accounts-selection-enabled?
|
||||
(rf/dispatch [:open-modal :community-account-selection-sheet
|
||||
{:community-id id}])
|
||||
(rf/dispatch [:open-modal :community-requests-to-join
|
||||
{:id
|
||||
id}])))
|
||||
[id])]
|
||||
(communities.utils/role->translation-key highest-permission-role :t/member))]
|
||||
(cond
|
||||
|
||||
networks-not-supported?
|
||||
[network-not-supported]
|
||||
|
||||
@@ -159,14 +155,36 @@
|
||||
[request-access-button id color]
|
||||
|
||||
:else
|
||||
[quo/community-token-gating
|
||||
{:role highest-role-text
|
||||
:tokens tokens
|
||||
:community-color color
|
||||
:satisfied? can-request-access?
|
||||
:on-press on-press
|
||||
:on-press-info
|
||||
info-button-handler}])))
|
||||
[rn/view {:style (style/token-gated-container theme)}
|
||||
[rn/view
|
||||
{:style {:padding-horizontal 12
|
||||
:flex-direction :row
|
||||
:align-items :center
|
||||
:justify-content :space-between
|
||||
:flex 1}}
|
||||
[quo/text {:weight :medium}
|
||||
(if (and can-request-access? highest-permission-role)
|
||||
(i18n/label :t/you-eligible-to-join-as {:role highest-role-text})
|
||||
(i18n/label :t/you-not-eligible-to-join))]
|
||||
[info-button]]
|
||||
[quo/text {:style {:padding-horizontal 12 :padding-bottom 6} :size :paragraph-2}
|
||||
(if can-request-access?
|
||||
(i18n/label :t/you-hodl)
|
||||
(i18n/label :t/you-must-hold))]
|
||||
[quo/token-requirement-list
|
||||
{:tokens tokens
|
||||
:padding? true}]
|
||||
[quo/button
|
||||
{:on-press (if config/community-accounts-selection-enabled?
|
||||
#(rf/dispatch [:open-modal :community-account-selection-sheet
|
||||
{:community-id id}])
|
||||
#(rf/dispatch [:open-modal :community-requests-to-join {:id id}]))
|
||||
:accessibility-label :join-community-button
|
||||
:customization-color color
|
||||
:container-style {:margin-horizontal 12 :margin-top 8 :margin-bottom 12}
|
||||
:disabled? (not can-request-access?)
|
||||
:icon-left (if can-request-access? :i/unlocked :i/locked)}
|
||||
(i18n/label :t/request-to-join)]])))
|
||||
|
||||
(defn- join-community
|
||||
[{:keys [id joined permissions] :as community}]
|
||||
@@ -351,27 +369,18 @@
|
||||
|
||||
(defn- community-fetching-placeholder
|
||||
[id]
|
||||
(let [theme (quo.theme/use-theme)
|
||||
top-inset (safe-area/get-top)
|
||||
fetching? (rf/sub [:communities/fetching-community id])]
|
||||
(let [fetching? (rf/sub [:communities/fetching-community id])]
|
||||
[rn/view
|
||||
{:style (style/fetching-placeholder top-inset)
|
||||
{:style style/fetching-placeholder
|
||||
:accessibility-label (if fetching?
|
||||
:fetching-community-overview
|
||||
:failed-to-fetch-community-overview)}
|
||||
[quo/page-nav
|
||||
{:title (i18n/label :t/community-overview)
|
||||
:type :title
|
||||
:text-align :left
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[quo/empty-state
|
||||
{:image (resources/get-themed-image :cat-in-box theme)
|
||||
:description (when-not fetching? (i18n/label :t/here-is-a-cat-in-a-box-instead))
|
||||
:title (if fetching?
|
||||
(i18n/label :t/fetching-community)
|
||||
(i18n/label :t/failed-to-fetch-community))
|
||||
:container-style {:flex 1 :justify-content :center}}]]))
|
||||
[not-implemented/not-implemented
|
||||
[rn/text
|
||||
{:style style/fetching-text}
|
||||
(if fetching?
|
||||
"Fetching community..."
|
||||
"Failed to fetch community")]]]))
|
||||
|
||||
(defn- community-card-page-view
|
||||
[id]
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
[react-native.core :as rn]
|
||||
[react-native.safe-area :as safe-area]
|
||||
[status-im.common.biometric.utils :as biometric]
|
||||
[status-im.common.parallax.blacklist :as blacklist]
|
||||
[status-im.common.parallax.view :as parallax]
|
||||
[status-im.common.resources :as resources]
|
||||
[status-im.contexts.onboarding.enable-biometrics.style :as style]
|
||||
[status-im.navigation.state :as state]
|
||||
@@ -47,6 +49,16 @@
|
||||
:container-style {:margin-top 12}}
|
||||
(i18n/label :t/maybe-later)]]))
|
||||
|
||||
(defn enable-biometrics-parallax
|
||||
[]
|
||||
(let [stretch (if rn/small-screen? 25 40)]
|
||||
[rn/view
|
||||
{:position :absolute
|
||||
:top 12}
|
||||
[parallax/video
|
||||
{:layers (:biometrics resources/parallax-video)
|
||||
:stretch stretch}]]))
|
||||
|
||||
(defn enable-biometrics-simple
|
||||
[]
|
||||
(let [width (:width (rn/get-window))]
|
||||
@@ -55,10 +67,17 @@
|
||||
:style (style/page-illustration width)
|
||||
:source (resources/get-image :biometrics)}]))
|
||||
|
||||
(defn view
|
||||
(defn f-enable-biometrics
|
||||
[]
|
||||
(let [insets (safe-area/get-insets)]
|
||||
[rn/view {:style (style/page-container insets)}
|
||||
[page-title]
|
||||
[enable-biometrics-simple]
|
||||
(if blacklist/blacklisted?
|
||||
[enable-biometrics-simple]
|
||||
[enable-biometrics-parallax])
|
||||
[enable-biometrics-buttons insets]]))
|
||||
|
||||
(defn view
|
||||
[]
|
||||
[:f> f-enable-biometrics])
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
[react-native.core :as rn]
|
||||
[react-native.platform :as platform]
|
||||
[react-native.safe-area :as safe-area]
|
||||
[status-im.common.parallax.blacklist :as blacklist]
|
||||
[status-im.common.parallax.view :as parallax]
|
||||
[status-im.common.resources :as resources]
|
||||
[status-im.contexts.onboarding.enable-notifications.style :as style]
|
||||
[status-im.contexts.shell.jump-to.utils :as shell.utils]
|
||||
@@ -53,6 +55,13 @@
|
||||
:container-style {:margin-top 12}}
|
||||
(i18n/label :t/maybe-later)]]))
|
||||
|
||||
(defn enable-notifications-parallax
|
||||
[]
|
||||
(let [stretch (if rn/small-screen? -40 -25)]
|
||||
[parallax/video
|
||||
{:layers (:notifications resources/parallax-video)
|
||||
:stretch stretch}]))
|
||||
|
||||
(defn enable-notifications-simple
|
||||
[]
|
||||
(let [width (:width (rn/get-window))]
|
||||
@@ -61,7 +70,7 @@
|
||||
:style (style/page-illustration width)
|
||||
:source (resources/get-image :notifications)}]))
|
||||
|
||||
(defn view
|
||||
(defn f-enable-notifications
|
||||
[]
|
||||
(let [insets (safe-area/get-insets)]
|
||||
[rn/view {:style (style/page-container insets)}
|
||||
@@ -71,5 +80,11 @@
|
||||
:icon-name :i/arrow-left
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
[page-title]]
|
||||
[enable-notifications-simple]
|
||||
(if blacklist/blacklisted?
|
||||
[enable-notifications-simple]
|
||||
[enable-notifications-parallax])
|
||||
[enable-notification-buttons {:insets insets}]]))
|
||||
|
||||
(defn view
|
||||
[]
|
||||
[:f> f-enable-notifications])
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
[react-native.core :as rn]
|
||||
[react-native.reanimated :as reanimated]
|
||||
[react-native.safe-area :as safe-area]
|
||||
[status-im.common.parallax.blacklist :as blacklist]
|
||||
[status-im.common.parallax.view :as parallax]
|
||||
[status-im.common.resources :as resources]
|
||||
[status-im.contexts.onboarding.generating-keys.style :as style]
|
||||
[utils.i18n :as i18n]))
|
||||
@@ -60,7 +62,7 @@
|
||||
"easing" (:linear
|
||||
reanimated/easings))))))
|
||||
|
||||
(defn title
|
||||
(defn f-title
|
||||
[insets generate-keys-opacity saving-keys-opacity keys-saved-opacity]
|
||||
(let [top-insets (+ (if rn/small-screen? 62 112) (:insets insets))]
|
||||
[rn/view
|
||||
@@ -82,7 +84,15 @@
|
||||
{:position :absolute})}
|
||||
[keys-saved-title]]]))
|
||||
|
||||
(defn content
|
||||
(defn f-page-title
|
||||
[insets]
|
||||
(let [generate-keys-opacity (reanimated/use-shared-value 1)
|
||||
saving-keys-opacity (reanimated/use-shared-value 0)
|
||||
keys-saved-opacity (reanimated/use-shared-value 0)]
|
||||
(sequence-animation generate-keys-opacity saving-keys-opacity keys-saved-opacity)
|
||||
[:f> f-title insets generate-keys-opacity saving-keys-opacity keys-saved-opacity]))
|
||||
|
||||
(defn f-simple-page-content
|
||||
[generate-keys-opacity saving-keys-opacity keys-saved-opacity]
|
||||
(let [width (:width (rn/get-window))]
|
||||
[rn/view
|
||||
@@ -113,14 +123,36 @@
|
||||
:style (style/page-illustration width)
|
||||
:source (resources/get-image :generate-keys3)}]]]))
|
||||
|
||||
(defn view
|
||||
[]
|
||||
(let [insets (safe-area/get-insets)
|
||||
generate-keys-opacity (reanimated/use-shared-value 1)
|
||||
(defn parallax-page
|
||||
[insets]
|
||||
[:<>
|
||||
[parallax/video
|
||||
{:stretch -20
|
||||
:container-style {:top 40
|
||||
:left 20}
|
||||
:layers (:generate-keys resources/parallax-video)
|
||||
:disable-parallax? true
|
||||
:enable-looping? false}]
|
||||
[:f> f-page-title insets]])
|
||||
|
||||
(defn f-simple-page
|
||||
[insets]
|
||||
(let [generate-keys-opacity (reanimated/use-shared-value 1)
|
||||
saving-keys-opacity (reanimated/use-shared-value 0)
|
||||
keys-saved-opacity (reanimated/use-shared-value 0)]
|
||||
(sequence-animation generate-keys-opacity saving-keys-opacity keys-saved-opacity)
|
||||
[:<>
|
||||
[:f> f-title insets generate-keys-opacity saving-keys-opacity keys-saved-opacity]
|
||||
[:f> f-simple-page-content generate-keys-opacity saving-keys-opacity keys-saved-opacity]]))
|
||||
|
||||
(defn f-generating-keys
|
||||
[]
|
||||
(let [insets (safe-area/get-insets)]
|
||||
[rn/view {:style (style/page-container insets)}
|
||||
(sequence-animation generate-keys-opacity saving-keys-opacity keys-saved-opacity)
|
||||
[:<>
|
||||
[title insets generate-keys-opacity saving-keys-opacity keys-saved-opacity]
|
||||
[content generate-keys-opacity saving-keys-opacity keys-saved-opacity]]]))
|
||||
(if blacklist/blacklisted?
|
||||
[:f> f-simple-page insets]
|
||||
[parallax-page insets])]))
|
||||
|
||||
(defn generating-keys
|
||||
[]
|
||||
[:f> f-generating-keys])
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
(ns status-im.contexts.preview.feature-flags.style)
|
||||
|
||||
(def container
|
||||
{:flex 1
|
||||
:margin-left 20
|
||||
:margin-bottom 20})
|
||||
{:flex 1
|
||||
:margin-left 20})
|
||||
|
||||
@@ -15,28 +15,25 @@
|
||||
:text-align :left
|
||||
:title "Features Flags"
|
||||
:icon-name :i/arrow-left
|
||||
:on-press #(rf/dispatch [:navigate-back])
|
||||
:right-side [{:icon-name :i/rotate
|
||||
:on-press #(ff/reset-flags)}]}]
|
||||
[rn/scroll-view
|
||||
(doall
|
||||
(for [context-name ff/feature-flags-categories
|
||||
:let [context-flags (filter (fn [[k]]
|
||||
(= context-name
|
||||
(first (string/split (str (name k)) "."))))
|
||||
(ff/feature-flags))]]
|
||||
^{:key (str context-name)}
|
||||
[rn/view {:style style/container}
|
||||
[quo/text
|
||||
context-name]
|
||||
(doall
|
||||
(for [i (range (count context-flags))
|
||||
:let [[flag] (nth context-flags i)]]
|
||||
^{:key (str context-name flag i)}
|
||||
[rn/view {:style {:flex-direction :row}}
|
||||
[quo/selectors
|
||||
{:type :toggle
|
||||
:checked? (ff/enabled? flag)
|
||||
:container-style {:margin-right 8}
|
||||
:on-change #(ff/toggle flag)}]
|
||||
[quo/text (second (string/split (name flag) "."))]]))]))]])
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
(doall
|
||||
(for [context-name ff/feature-flags-categories
|
||||
:let [context-flags (filter (fn [[k]]
|
||||
(string/includes? (str k) context-name))
|
||||
(ff/feature-flags))]]
|
||||
^{:key (str context-name)}
|
||||
[rn/view {:style style/container}
|
||||
[quo/text
|
||||
context-name]
|
||||
(doall
|
||||
(for [i (range (count context-flags))
|
||||
:let [[flag] (nth context-flags i)]]
|
||||
^{:key (str context-name flag i)}
|
||||
[rn/view {:style {:flex-direction :row}}
|
||||
[quo/selectors
|
||||
{:type :toggle
|
||||
:checked? (ff/enabled? flag)
|
||||
:container-style {:margin-right 8}
|
||||
:on-change #(ff/toggle flag)}]
|
||||
[quo/text (second (string/split (name flag) "."))]]))]))])
|
||||
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
(ns status-im.contexts.preview.quo.community.community-token-gating
|
||||
(:require [quo.core :as quo]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.common.resources :as resources]
|
||||
[status-im.contexts.preview.quo.preview :as preview]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(def descriptor
|
||||
[{:key :role
|
||||
:type :select
|
||||
:options [{:key :member}
|
||||
{:key :admin}
|
||||
{:key :token-master}
|
||||
{:key :token-owner}]}
|
||||
{:key :satisfied?
|
||||
:type :boolean}
|
||||
(preview/customization-color-option {:key :community-color})])
|
||||
|
||||
(def tokens
|
||||
{:member
|
||||
[[{:symbol "ETH" :sufficient? true :collectible? false :amount "0.8" :img-src nil}]
|
||||
[{:symbol "ETH" :sufficient? false :collectible? false :amount "1" :img-src nil}
|
||||
{:symbol "STT" :sufficient? false :collectible? false :amount "10" :img-src nil}]]
|
||||
:admin
|
||||
[[{:symbol "ETH" :sufficient? true :collectible? false :amount "2" :img-src nil}]]
|
||||
:token-master
|
||||
[[{:symbol "TMANI"
|
||||
:sufficient? true
|
||||
:collectible? true
|
||||
:amount nil
|
||||
:img-src (resources/mock-images :collectible1)}]]
|
||||
:token-owner
|
||||
[[{:symbol "TOANI"
|
||||
:sufficient? true
|
||||
:collectible? true
|
||||
:amount nil
|
||||
:img-src (resources/mock-images :collectible)}]]})
|
||||
|
||||
(def role
|
||||
{:member (i18n/label :t/member)
|
||||
:admin (i18n/label :t/admin)
|
||||
:token-master (i18n/label :t/token-master)
|
||||
:token-owner (i18n/label :t/token-owner)})
|
||||
|
||||
(defn view
|
||||
[]
|
||||
(let [state (reagent/atom {:role :member
|
||||
:satisfied? true
|
||||
:community-color :blue})]
|
||||
(fn []
|
||||
[preview/preview-container
|
||||
{:state state
|
||||
:descriptor descriptor
|
||||
:show-blur-background? false}
|
||||
[quo/community-token-gating
|
||||
{:community-color (:community-color @state)
|
||||
:role ((:role @state) role)
|
||||
:satisfied? (:satisfied? @state)
|
||||
:on-press #(js/alert "On press 'Request to join'")
|
||||
:on-press-info #(js/alert "On press info")
|
||||
:tokens ((:role @state) tokens)}]])))
|
||||
@@ -0,0 +1,73 @@
|
||||
(ns status-im.contexts.preview.quo.community.token-gating
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.contexts.preview.quo.preview :as preview]))
|
||||
|
||||
(def descriptor
|
||||
[{:label "Tokens sufficient?"
|
||||
:key :sufficient?
|
||||
:type :boolean}
|
||||
{:key :many-tokens?
|
||||
:type :boolean}
|
||||
{:key :loading?
|
||||
:type :boolean}
|
||||
{:key :condition?
|
||||
:type :boolean}
|
||||
{:key :padding?
|
||||
:type :boolean}])
|
||||
|
||||
(defn join-gate-options-base
|
||||
[sufficient? many-tokens? loading?]
|
||||
(into
|
||||
[{:symbol "KNC"
|
||||
:amount 200
|
||||
:sufficient? true
|
||||
:loading? loading?}
|
||||
{:symbol "MANA"
|
||||
:amount 10
|
||||
:sufficient? sufficient?
|
||||
:purchasable? true
|
||||
:loading? loading?}
|
||||
{:symbol "RARE"
|
||||
:amount 10
|
||||
:sufficient? sufficient?
|
||||
:loading? loading?}]
|
||||
(when many-tokens?
|
||||
[{:symbol "FXC"
|
||||
:amount 20
|
||||
:sufficient? true
|
||||
:loading? loading?}
|
||||
{:symbol "SNT"
|
||||
:amount 10000
|
||||
:sufficient? sufficient?
|
||||
:loading? loading?}])))
|
||||
|
||||
(defn get-mocked-props
|
||||
[props]
|
||||
(let [{:keys [sufficient? condition? many-tokens? padding? loading?]} props]
|
||||
{:tokens
|
||||
(if condition?
|
||||
[(join-gate-options-base sufficient?
|
||||
many-tokens?
|
||||
loading?)
|
||||
[{:symbol "FXC"
|
||||
:amount 20
|
||||
:sufficient? true}
|
||||
{:symbol "USDT"
|
||||
:amount 20
|
||||
:sufficient? false}]]
|
||||
[(join-gate-options-base sufficient?
|
||||
many-tokens?
|
||||
loading?)])
|
||||
:padding? padding?}))
|
||||
|
||||
(defn view
|
||||
[]
|
||||
(let [state (reagent/atom {:sufficient? false
|
||||
:many-tokens? false
|
||||
:condition? false
|
||||
:padding? false})]
|
||||
(fn []
|
||||
[preview/preview-container {:state state :descriptor descriptor}
|
||||
[quo/token-requirement-list (get-mocked-props @state)]])))
|
||||
@@ -45,9 +45,9 @@
|
||||
[status-im.contexts.preview.quo.community.community-membership-list-view
|
||||
:as community-membership-list-view]
|
||||
[status-im.contexts.preview.quo.community.community-stat :as community-stat]
|
||||
[status-im.contexts.preview.quo.community.community-token-gating :as community-token-gating]
|
||||
[status-im.contexts.preview.quo.community.discover-card :as discover-card]
|
||||
[status-im.contexts.preview.quo.community.list-item :as community-list-item]
|
||||
[status-im.contexts.preview.quo.community.token-gating :as token-gating]
|
||||
[status-im.contexts.preview.quo.counter.collectible-counter :as collectible-counter]
|
||||
[status-im.contexts.preview.quo.counter.counter :as counter]
|
||||
[status-im.contexts.preview.quo.counter.step :as step]
|
||||
@@ -266,14 +266,15 @@
|
||||
:component community-card/view}
|
||||
{:name :community-detail-token-gating
|
||||
:component community-detail-token-gating/view}
|
||||
{:name :community-token-gating
|
||||
:component community-token-gating/view}
|
||||
{:name :community-membership-list-view
|
||||
:component community-membership-list-view/view}
|
||||
{:name :community-stat
|
||||
:component community-stat/view}
|
||||
{:name :discover-card
|
||||
:component discover-card/view}
|
||||
{:name :token-gating
|
||||
:options {:insets {:bottom? true}}
|
||||
:component token-gating/view}
|
||||
{:name :channel-action
|
||||
:options {:insets {:bottom? true}}
|
||||
:component channel-action/view}
|
||||
|
||||
@@ -41,12 +41,6 @@
|
||||
:value "Arrow left"}]}])
|
||||
|
||||
|
||||
(def account-switcher-option
|
||||
{:content-type :account-switcher
|
||||
:customization-color :purple
|
||||
:on-press #(js/alert "Pressed Account Switcher")
|
||||
:emoji "🍑"})
|
||||
|
||||
(def right-side-options
|
||||
(let [options [{:icon-name :i/save :on-press #(js/alert "SAVE")}
|
||||
{:icon-name :i/mark-as-read :on-press #(js/alert "MARK AS READ")}
|
||||
@@ -58,21 +52,20 @@
|
||||
{:key (take 2 options)
|
||||
:value "2 actions"}
|
||||
{:key (take 3 options)
|
||||
:value "3 actions"}
|
||||
{:key (conj (take 1 options) account-switcher-option)
|
||||
:value "1 action + account switcher"}
|
||||
{:key (conj (take 2 options) account-switcher-option)
|
||||
:value "2 actions + account switcher"}]))
|
||||
:value "3 actions"}]))
|
||||
|
||||
(def account-switcher
|
||||
{:key :account-switcher})
|
||||
|
||||
(def no-title-descriptor
|
||||
[{:key :right-side
|
||||
:type :select
|
||||
:options right-side-options}])
|
||||
:options (conj right-side-options account-switcher)}])
|
||||
|
||||
(def title-descriptor
|
||||
[{:key :right-side
|
||||
:type :select
|
||||
:options right-side-options}
|
||||
:options (conj right-side-options account-switcher)}
|
||||
{:key :title :type :text}
|
||||
{:key :text-align
|
||||
:type :select
|
||||
@@ -86,7 +79,7 @@
|
||||
(def token-descriptor
|
||||
[{:key :right-side
|
||||
:type :select
|
||||
:options right-side-options}
|
||||
:options (conj right-side-options account-switcher)}
|
||||
{:key :token-logo
|
||||
:type :select
|
||||
:options [{:key (resources/get-mock-image :status-logo)
|
||||
@@ -135,7 +128,7 @@
|
||||
(def wallet-networks-descriptor
|
||||
[{:key :right-side
|
||||
:type :select
|
||||
:options right-side-options}])
|
||||
:options (conj (take 2 right-side-options) account-switcher)}])
|
||||
|
||||
(def community-descriptor
|
||||
[{:key :right-side
|
||||
@@ -202,6 +195,9 @@
|
||||
:community-logo (resources/get-mock-image :coinbase)
|
||||
:network-name "Mainnet"
|
||||
:network-logo (resources/get-mock-image :diamond)
|
||||
:account-switcher {:customization-color :purple
|
||||
:on-press #(js/alert "Pressed Account Switcher")
|
||||
:emoji "🍑"}
|
||||
:networks networks})]
|
||||
(fn []
|
||||
[preview/preview-container
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
field-value (reagent/cursor state [(:key args)])
|
||||
active? @field-value]
|
||||
[rn/view {:style style/field-row}
|
||||
[label-view state label theme]
|
||||
[label-view state label]
|
||||
[rn/view {:style (style/boolean-container)}
|
||||
[rn/pressable
|
||||
{:style (style/boolean-button {:active? active? :left? true} theme)
|
||||
@@ -70,7 +70,7 @@
|
||||
(let [label (or label (key->text-label (:key args)))
|
||||
field-value (reagent/cursor state [(:key args)])]
|
||||
[rn/view {:style style/field-row}
|
||||
[label-view state label theme]
|
||||
[label-view state label]
|
||||
[rn/view {:style style/field-column}
|
||||
[rn/text-input
|
||||
(merge
|
||||
@@ -92,7 +92,7 @@
|
||||
(let [label (or label (key->text-label (:key args)))
|
||||
field-value (reagent/cursor state [(:key args)])]
|
||||
[rn/view {:style style/field-row}
|
||||
[label-view state label theme]
|
||||
[label-view state label]
|
||||
[rn/view {:style style/field-column}
|
||||
[rn/text-input
|
||||
(merge
|
||||
@@ -169,7 +169,7 @@
|
||||
field-value (reagent/cursor state [(:key args)])
|
||||
selected-option (find-selected-option @field-value options)]
|
||||
[rn/view {:style style/field-row}
|
||||
[label-view state label theme]
|
||||
[label-view state label]
|
||||
[rn/view {:style style/field-column}
|
||||
[customizer-select-modal
|
||||
{:open open
|
||||
@@ -252,7 +252,7 @@
|
||||
selected-keys (reagent/cursor state [(:key args)])
|
||||
selected-options (filter-by-keys options @selected-keys)]
|
||||
[rn/view {:style style/field-row}
|
||||
[label-view state label theme]
|
||||
[label-view state label]
|
||||
[rn/view {:style style/field-column}
|
||||
[customizer-multi-select-modal
|
||||
{:open-atom open
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
[status-im.constants :as constants]
|
||||
status-im.contexts.profile.login.effects
|
||||
[status-im.contexts.profile.rpc :as profile.rpc]
|
||||
[status-im.feature-flags :as ff]
|
||||
[taoensso.timbre :as log]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]
|
||||
@@ -105,8 +104,6 @@
|
||||
[:chat.ui/request-link-preview-whitelist]
|
||||
[:visibility-status-updates/fetch]
|
||||
[:switcher-cards/fetch]
|
||||
(when (ff/enabled? ::ff/wallet.wallet-connect)
|
||||
[:dispatch [:wallet-connect/init]])
|
||||
(when-not (:universal-links/handling db)
|
||||
[:effects.chat/open-last-chat key-uid])
|
||||
(when notifications-enabled?
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
(ns status-im.contexts.profile.settings.list-items
|
||||
(:require [status-im.common.not-implemented :as not-implemented]
|
||||
[status-im.config :as config]
|
||||
[status-im.feature-flags :as ff]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
@@ -35,13 +34,12 @@
|
||||
:image :icon
|
||||
:blur? true
|
||||
:action :arrow}
|
||||
{:title (i18n/label :t/wallet)
|
||||
:on-press #(rf/dispatch [:open-modal :screen/settings.wallet])
|
||||
:image-props :i/wallet
|
||||
:image :icon
|
||||
:blur? true
|
||||
:action :arrow
|
||||
:feature-flag ::ff/settings.wallet-settings}
|
||||
{:title (i18n/label :t/wallet)
|
||||
:on-press #(rf/dispatch [:open-modal :screen/settings.wallet])
|
||||
:image-props :i/wallet
|
||||
:image :icon
|
||||
:blur? true
|
||||
:action :arrow}
|
||||
(when config/show-not-implemented-features?
|
||||
{:title (i18n/label :t/dapps)
|
||||
:on-press not-implemented/alert
|
||||
|
||||
@@ -9,24 +9,18 @@
|
||||
[status-im.contexts.profile.settings.list-items :as settings.items]
|
||||
[status-im.contexts.profile.settings.style :as style]
|
||||
[status-im.contexts.profile.utils :as profile.utils]
|
||||
[status-im.feature-flags :as ff]
|
||||
[utils.debounce :as debounce]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn show-settings-item?
|
||||
[{:keys [feature-flag]}]
|
||||
(or (ff/enabled? feature-flag)
|
||||
(nil? feature-flag)))
|
||||
|
||||
(defn- settings-category-view
|
||||
(defn- settings-item-view
|
||||
[data]
|
||||
(rn/delay-render
|
||||
[rf/delay-render
|
||||
[quo/category
|
||||
{:list-type :settings
|
||||
:container-style {:padding-bottom 12}
|
||||
:blur? true
|
||||
:data (doall (filter show-settings-item? data))}]))
|
||||
:data data}]])
|
||||
|
||||
(defn scroll-handler
|
||||
[event scroll-y]
|
||||
@@ -35,9 +29,9 @@
|
||||
|
||||
(defn- footer
|
||||
[{:keys [bottom]} logout-press]
|
||||
(rn/delay-render
|
||||
[rf/delay-render
|
||||
[rn/view {:style (style/footer-container bottom)}
|
||||
[quo/logout-button {:on-press logout-press}]]))
|
||||
[quo/logout-button {:on-press logout-press}]]])
|
||||
|
||||
(defn- get-item-layout
|
||||
[_ index]
|
||||
@@ -58,7 +52,8 @@
|
||||
on-scroll (rn/use-callback #(scroll-handler % scroll-y))]
|
||||
[quo/overlay {:type :shell}
|
||||
[rn/view
|
||||
{:style (style/navigation-wrapper {:customization-color customization-color
|
||||
{:key :header
|
||||
:style (style/navigation-wrapper {:customization-color customization-color
|
||||
:inset (:top insets)
|
||||
:theme theme})}
|
||||
[quo/page-nav
|
||||
@@ -77,10 +72,11 @@
|
||||
{:options {:message (:universal-profile-url
|
||||
profile)}}])}]}]]
|
||||
[rn/flat-list
|
||||
{:header [settings.header/view {:scroll-y scroll-y}]
|
||||
{:key :list
|
||||
:header [settings.header/view {:scroll-y scroll-y}]
|
||||
:data (settings.items/items (boolean (:mnemonic profile)))
|
||||
:shows-vertical-scroll-indicator false
|
||||
:render-fn settings-category-view
|
||||
:render-fn settings-item-view
|
||||
:get-item-layout get-item-layout
|
||||
:footer [footer insets logout-press]
|
||||
:scroll-event-throttle 16
|
||||
@@ -88,7 +84,8 @@
|
||||
:bounces false
|
||||
:over-scroll-mode :never}]
|
||||
[quo/floating-shell-button
|
||||
{:jump-to
|
||||
{:key :shell
|
||||
:jump-to
|
||||
{:on-press #(rf/dispatch [:shell/navigate-to-jump-to])
|
||||
:customization-color customization-color
|
||||
:label (i18n/label :t/jump-to)}}
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
(ns status-im.contexts.settings.wallet.events
|
||||
(:require
|
||||
[taoensso.timbre :as log]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(rf/reg-event-fx
|
||||
:wallet/rename-keypair-success
|
||||
(fn [{:keys [db]} [key-uid name]]
|
||||
{:db (update-in db
|
||||
[:wallet :keypairs]
|
||||
(fn [keypairs]
|
||||
(map (fn [keypair]
|
||||
(if (= (keypair :key-uid) key-uid)
|
||||
(assoc keypair :name name)
|
||||
keypair))
|
||||
keypairs)))
|
||||
:fx [[:dispatch [:navigate-back]]
|
||||
[:dispatch
|
||||
[:toasts/upsert
|
||||
{:type :positive
|
||||
:text (i18n/label :t/key-pair-name-updated)}]]]}))
|
||||
|
||||
(defn rename-keypair
|
||||
[_ [{:keys [key-uid keypair-name]}]]
|
||||
{:fx [[:json-rpc/call
|
||||
[{:method "accounts_updateKeypairName"
|
||||
:params [key-uid keypair-name]
|
||||
:on-success [:wallet/rename-keypair-success key-uid keypair-name]
|
||||
:on-error #(log/info "failed to rename keypair " %)}]]]})
|
||||
|
||||
(rf/reg-event-fx :wallet/rename-keypair rename-keypair)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user