Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dab78312a5 |
@@ -33,8 +33,7 @@
|
||||
android:name=".MainApplication"
|
||||
android:largeHeap="true"
|
||||
android:usesCleartextTraffic="true"
|
||||
android:extractNativeLibs="true"
|
||||
android:requestLegacyExternalStorage="true">
|
||||
android:extractNativeLibs="true">
|
||||
<!-- After upgrading Android Gradle Plugin to 4.2.0 and above we must get rid of `extractNativeLibs="true"`
|
||||
and use`useLegacyPackaging` flag in our app's `build.gradle`-->
|
||||
<meta-data android:name="commitHash" android:value="${commitHash}"/>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
# Version requirements used throughout the Gradle scripts
|
||||
kotlinVersion=1.6.20
|
||||
minSdkVersion=24
|
||||
minSdkVersion=23
|
||||
compileSdkVersion=31
|
||||
targetSdkVersion=31
|
||||
buildToolsVersion=31.0.0
|
||||
|
||||
@@ -23,7 +23,7 @@ setups and runs the test suite once.
|
||||
setups and runs the test suite and watches for code changes will then retrigger the test suite.
|
||||
|
||||
## Writing Tests
|
||||
New test files will need their namespace added to either the file "src/quo/core_spec.cljs" or "src/status_im2/core_spec.cljs. These locations may update overtime but it is dependent on the entrypoint in shadow-cljs config discussed below.
|
||||
New test files will need their namespace added to either the file "src/quo2/core_spec.cljs" or "src/status_im2/core_spec.cljs. These locations may update overtime but it is dependent on the entrypoint in shadow-cljs config discussed below.
|
||||
|
||||
|
||||
### Best practices
|
||||
|
||||
+20
-20
@@ -76,7 +76,7 @@ It's important to name functional components with `f-` prefix.
|
||||
|
||||
### Component props and API scheme to match Figma as closely as possible
|
||||
|
||||
Ideally, the prop names for components (particularly in Quo Design System)
|
||||
Ideally, the prop names for components (particularly in quo2 Design System)
|
||||
should match the Figma properties as best as possible. This makes it easier for
|
||||
the developer using that component to configure it correctly for the screen it
|
||||
is being used on and avoids unnecessary overwrites and adjustments being made.
|
||||
@@ -134,7 +134,7 @@ For example if Figma has sizes `:small`, `:medium` and `:large`
|
||||
|
||||
Prefer to define styles in a separate file named `style.cljs`, colocated with
|
||||
the source file. For a real example, see
|
||||
[src//components/record_audio/record_audio/style.cljs](../src/quo/components/record_audio/record_audio/style.cljs).
|
||||
[src/quo2/components/record_audio/record_audio/style.cljs](../src/quo2/components/record_audio/record_audio/style.cljs).
|
||||
|
||||
```clojure
|
||||
;; bad
|
||||
@@ -528,27 +528,27 @@ due to performance constraints.
|
||||
(:preferred-name multiaccount)))
|
||||
```
|
||||
|
||||
### Requiring quo components
|
||||
### Requiring quo2 components
|
||||
|
||||
Consume `quo` components from `quo.core`, unless the namespace is also inside
|
||||
the `quo/` directory.
|
||||
Consume `quo2` components from `quo2.core`, unless the namespace is also inside
|
||||
the `quo2/` directory.
|
||||
|
||||
```clojure
|
||||
;; bad
|
||||
(ns my-namespace
|
||||
(:require [quo.components.icon :as icon]))
|
||||
(:require [quo2.components.icon :as icon]))
|
||||
|
||||
(icon/icon :i/verified)
|
||||
|
||||
;; good
|
||||
(ns my-namespace
|
||||
(:require [quo.core :as quo]))
|
||||
(:require [quo2.core :as quo]))
|
||||
|
||||
(quo/icon :i/verified)
|
||||
|
||||
;; also good because both namespaces are inside quo/
|
||||
(ns quo.components.tabs.account-selector
|
||||
(:require [quo.components.markdown.text :as text]))
|
||||
;; also good because both namespaces are inside quo2/
|
||||
(ns quo2.components.tabs.account-selector
|
||||
(:require [quo2.components.markdown.text :as text]))
|
||||
```
|
||||
|
||||
### Require/import
|
||||
@@ -615,12 +615,12 @@ Use the appropriate keyword qualification/namespace.
|
||||
|
||||
```clojure
|
||||
;; bad
|
||||
(require '[quo.components.icon :as icons])
|
||||
(require '[quo2.components.icon :as icons])
|
||||
(icons/icon :main-icons2/verified)
|
||||
|
||||
;; good
|
||||
(require '[quo.core :as quo])
|
||||
(quo/icon :i/verified)
|
||||
(require '[quo2.core :as quo2])
|
||||
(quo2/icon :i/verified)
|
||||
```
|
||||
|
||||
### Translations
|
||||
@@ -695,7 +695,7 @@ First, the bird's-eye view with some example ClojureScript files:
|
||||
src
|
||||
├── js/
|
||||
├── mocks/
|
||||
├── quo
|
||||
├── quo2
|
||||
│ ├── components/
|
||||
│ ├── foundations/
|
||||
│ └── theme.cljs
|
||||
@@ -716,7 +716,7 @@ src
|
||||
|
||||
- `src/js`: Raw Javascript files, e.g. React Native Reanimated worklets.
|
||||
- `src/mocks`: Plumbing configuration to be able to run tests.
|
||||
- `src/quo/`: The component library for Status Mobile.
|
||||
- `src/quo2/`: The component library for Status Mobile.
|
||||
- `src/react_native/`: Contains only low-level constructs to help React Native
|
||||
work in tandem with Clojure(Script).
|
||||
- `src/status_im2/`: Directory where we try to be as strict as possible about
|
||||
@@ -728,7 +728,7 @@ src
|
||||
of the directory tree. Just like directories named `utils`, their directory
|
||||
nesting level communicates their applicable limits.
|
||||
- `src/status_im2/common/components/`: Contains reusable components that are not
|
||||
part of the design system (Quo).
|
||||
part of the design system (quo2).
|
||||
- `src/status_im2/contexts/`: Contains [bounded contexts](#glossary), like
|
||||
`browser/`, `messaging/`, etc. As much as possible, _bounded contexts_ should
|
||||
not directly require each other's namespaces.
|
||||
@@ -743,9 +743,9 @@ directory nesting level precisely indicates its boundaries. For example, a
|
||||
`contexts/user_settings/utils/datetime.cljs` file communicates that it should
|
||||
only be used in the `user_settings` context.
|
||||
|
||||
### src/quo
|
||||
### src/quo2
|
||||
|
||||
The `src/quo/` directory holds all components for the new design system. As
|
||||
The `src/quo2/` directory holds all components for the new design system. As
|
||||
much as possible, its sub-directories and component names should reflect the
|
||||
same language used by designers.
|
||||
|
||||
@@ -753,14 +753,14 @@ Even though the directory lives alongside the rest of the codebase, we should
|
||||
think of it as an external entity that abstracts away particular Status domain
|
||||
knowledge.
|
||||
|
||||
Components inside `src/quo/` should not rely on re-frame, i.e. they should not
|
||||
Components inside `src/quo2/` should not rely on re-frame, i.e. they should not
|
||||
dispatch events or use subscriptions.
|
||||
|
||||
Example structure:
|
||||
|
||||
```
|
||||
src
|
||||
└── quo
|
||||
└── quo2
|
||||
├── components
|
||||
│ └── dropdown
|
||||
│ ├── style.cljs
|
||||
|
||||
@@ -75,13 +75,6 @@ abstract_target 'Status' do
|
||||
# TODO : remove after upgrading to react-native 0.72.x
|
||||
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', '_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION']
|
||||
end
|
||||
# We need to remove the predefinition of IPHONEOS_DEPLOYMENT_TARGET from RNCK lib to use our own.
|
||||
case target.name
|
||||
when 'ReactNativeCameraKit'
|
||||
target.build_configurations.each do |config|
|
||||
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+8
-8
@@ -247,7 +247,7 @@ PODS:
|
||||
- React-Core
|
||||
- react-native-blur (4.3.3):
|
||||
- React-Core
|
||||
- react-native-cameraroll (5.10.0):
|
||||
- react-native-cameraroll (4.0.4):
|
||||
- React-Core
|
||||
- react-native-config (1.5.0):
|
||||
- react-native-config/App (= 1.5.0)
|
||||
@@ -346,7 +346,7 @@ PODS:
|
||||
- React-perflogger (= 0.69.10)
|
||||
- ReactNativeAudioToolkit (2.0.3):
|
||||
- React
|
||||
- ReactNativeCameraKit (14.0.0-beta13):
|
||||
- ReactNativeCameraKit (13.0.0):
|
||||
- React-Core
|
||||
- ReactNativeNavigation (7.27.1):
|
||||
- HMSegmentedControl
|
||||
@@ -468,7 +468,7 @@ DEPENDENCIES:
|
||||
- react-native-background-timer (from `../node_modules/react-native-background-timer`)
|
||||
- react-native-blob-util (from `../node_modules/react-native-blob-util`)
|
||||
- "react-native-blur (from `../node_modules/@react-native-community/blur`)"
|
||||
- "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)"
|
||||
- "react-native-cameraroll (from `../node_modules/@react-native-community/cameraroll`)"
|
||||
- react-native-config (from `../node_modules/react-native-config`)
|
||||
- react-native-image-resizer (from `../node_modules/react-native-image-resizer`)
|
||||
- react-native-lottie-splash-screen (from `../node_modules/react-native-lottie-splash-screen`)
|
||||
@@ -584,7 +584,7 @@ EXTERNAL SOURCES:
|
||||
react-native-blur:
|
||||
:path: "../node_modules/@react-native-community/blur"
|
||||
react-native-cameraroll:
|
||||
:path: "../node_modules/@react-native-camera-roll/camera-roll"
|
||||
:path: "../node_modules/@react-native-community/cameraroll"
|
||||
react-native-config:
|
||||
:path: "../node_modules/react-native-config"
|
||||
react-native-image-resizer:
|
||||
@@ -723,7 +723,7 @@ SPEC CHECKSUMS:
|
||||
react-native-background-timer: 1f7d560647b40e6a60b01c452ba29c54bf581fc4
|
||||
react-native-blob-util: 600972b1782380a5a7d5db61a3817ea32349dae9
|
||||
react-native-blur: c6d0a1dc2b4b519f7afe3b14d8151998632b6d18
|
||||
react-native-cameraroll: 4701ae7c3dbcd3f5e9e150ca17f250a276154b35
|
||||
react-native-cameraroll: 88f4e62d9ecd0e1f253abe4f685474f2ea14bfa2
|
||||
react-native-config: 5330c8258265c1e5fdb8c009d2cabd6badd96727
|
||||
react-native-image-resizer: 2f1577efa3bc762597681f530c8e8d05ce0ceeb3
|
||||
react-native-lottie-splash-screen: 068688c15dd478301fda00f8d87d7fb7d5b9a93e
|
||||
@@ -750,7 +750,7 @@ SPEC CHECKSUMS:
|
||||
React-runtimeexecutor: 5ebf1ddaa706bf2986123f22d2cad905443c2c5f
|
||||
ReactCommon: 65754b8932ea80272714988268bbfb9f303264a5
|
||||
ReactNativeAudioToolkit: de9610f323e855ac6574be8c99621f3d57c5df06
|
||||
ReactNativeCameraKit: d95d3e19c514526a234d9f93c6db7e7f10eef9ea
|
||||
ReactNativeCameraKit: 9d46a5d7dd544ca64aa9c03c150d2348faf437eb
|
||||
ReactNativeNavigation: 94979dd1572a3f093fc85d4599360530a1bed8c8
|
||||
RNCAsyncStorage: b2489b49e38c85e10ed45a888d13a2a4c7b32ea1
|
||||
RNCClipboard: 8148e21ac347c51fd6cd4b683389094c216bb543
|
||||
@@ -765,7 +765,7 @@ SPEC CHECKSUMS:
|
||||
RNLanguages: 962e562af0d34ab1958d89bcfdb64fafc37c513e
|
||||
RNPermissions: ad71dd4f767ec254f2cd57592fbee02afee75467
|
||||
RNReactNativeHapticFeedback: 2566b468cc8d0e7bb2f84b23adc0f4614594d071
|
||||
RNReanimated: b2dc21e263319892469d656dc58fc26fb03eadab
|
||||
RNReanimated: cf1259a8cf8dfb1d7fa586ce02565fd0610da1d7
|
||||
RNShare: d82e10f6b7677f4b0048c23709bd04098d5aee6c
|
||||
RNStaticSafeAreaInsets: 055ddbf5e476321720457cdaeec0ff2ba40ec1b8
|
||||
RNSVG: 80584470ff1ffc7994923ea135a3e5ad825546b9
|
||||
@@ -777,6 +777,6 @@ SPEC CHECKSUMS:
|
||||
TouchID: ba4c656d849cceabc2e4eef722dea5e55959ecf4
|
||||
Yoga: d24d6184b6b85f742536bd93bd07d69d7b9bb4c1
|
||||
|
||||
PODFILE CHECKSUM: 6a5f0e6776ce4ef6193032d077947117ace77a87
|
||||
PODFILE CHECKSUM: 4d710b4207b0fb0f6ecef4aa92bb79b716a7d13c
|
||||
|
||||
COCOAPODS: 1.12.0
|
||||
|
||||
+115
-130
@@ -7932,16 +7932,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/adobe/xmp/xmpcore/6.1.11",
|
||||
"path": "com/adobe/xmp/xmpcore/6.0.6",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"xmpcore-6.1.11.pom": {
|
||||
"sha1": "9f2a56e38f04aa222f8d5436cb07529d80cf89d2",
|
||||
"sha256": "sha256-cZEYGCECwlM+kqL2fANRAmTmFgVxpzishj51cSQXMj0="
|
||||
"xmpcore-6.0.6.pom": {
|
||||
"sha1": "6a917e15f78165ed31482a339b9c6bd65900ebdd",
|
||||
"sha256": "sha256-/5kclKMi2JShufIhMW1UXHtH0LP4Uf438vpECHpIoFU="
|
||||
},
|
||||
"xmpcore-6.1.11.jar": {
|
||||
"sha1": "852f14101381e527e6d43339d7db1698c970436c",
|
||||
"sha256": "sha256-j3AzxXm5n6DZ1t3LlEiHW15LV3w1AAInjORpl9Z4tzc="
|
||||
"xmpcore-6.0.6.jar": {
|
||||
"sha1": "fb29d75ac313aed79013505b965d2378a87a9405",
|
||||
"sha256": "sha256-Qy95ojgKPmW+p1TI0L4MCcaTjfrqH25hsBeEytbBjP8="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -8931,16 +8931,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/drewnoakes/metadata-extractor/2.18.0",
|
||||
"path": "com/drewnoakes/metadata-extractor/2.12.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"metadata-extractor-2.18.0.pom": {
|
||||
"sha1": "8a253b5c301e2b71ddb0ad28f3d8656d34f8781f",
|
||||
"sha256": "sha256-p9E4Id81LFQz1QjswN6KDwSWOE6kggfYEhR8pZgqFZ4="
|
||||
"metadata-extractor-2.12.0.pom": {
|
||||
"sha1": "1e3a24770062e3f4d6fb9b9e80b64d7aa4fdb237",
|
||||
"sha256": "sha256-odxWCuxbZlaa7O5YUqun4F/iEX+660IakMXhyRJV+k4="
|
||||
},
|
||||
"metadata-extractor-2.18.0.jar": {
|
||||
"sha1": "fa9fd43a28b10333108c603819810d5176d2b092",
|
||||
"sha256": "sha256-R4k2H9Bji9skFVS3oMyuIF7SOWl+K3D6nK2t7WmEtWU="
|
||||
"metadata-extractor-2.12.0.jar": {
|
||||
"sha1": "30dce2429145a41770e0d2bd0a8e8ba63f2137c8",
|
||||
"sha256": "sha256-tlzqky+2RNl79mxrfUXmG2lnxyvsISb8PkyD9iWcHQU="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9545,20 +9545,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/core/jackson-annotations/2.16.0-rc1",
|
||||
"path": "com/fasterxml/jackson/core/jackson-annotations/2.15.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-annotations-2.16.0-rc1.pom": {
|
||||
"sha1": "a6e6361e5a7116cc24ae1cfbd76ec384b53fcc64",
|
||||
"sha256": "sha256-P/CYyUC37b4fTX8mIaaNtNaofqmSlRE5Vsccisl69nI="
|
||||
"jackson-annotations-2.15.3.pom": {
|
||||
"sha1": "ff14c9fbeaec5f25b2d61490621477f5197818a2",
|
||||
"sha256": "sha256-/6ZxZvvkz/NJfQzGKcIBnNDnzV7QG+xoOny/IT0DDsg="
|
||||
},
|
||||
"jackson-annotations-2.16.0-rc1.jar": {
|
||||
"sha1": "0aa7db9c1afcacf3fa2358107f2a82326aa15c64",
|
||||
"sha256": "sha256-24kpC38tI5Sg8EKNWpb0WprCrt/XMpM7TXdgNvbtWGg="
|
||||
"jackson-annotations-2.15.3.jar": {
|
||||
"sha1": "79baf4e605eb3bbb60b1c475d44a7aecceea1d60",
|
||||
"sha256": "sha256-quhlw9iCVtYbEVI8seiL1I1bmtWFX6H8hZUE/SIEcIo="
|
||||
},
|
||||
"jackson-annotations-2.16.0-rc1.module": {
|
||||
"sha1": "6b75ee9d686c52f7b7624bfceeacc5ca28a95c1b",
|
||||
"sha256": "sha256-YcrFZD9QeVIPTfBkQPC/SKkxRVwMRW8wnHVItEGKElI="
|
||||
"jackson-annotations-2.15.3.module": {
|
||||
"sha1": "7be6f491ea5707562778533e030f951c78f9a9b1",
|
||||
"sha256": "sha256-ZBDJSzk+SU1T1WncQZOnkYeEjdtu48LuHzkkd6IQWcs="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9579,20 +9579,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/core/jackson-core/2.16.0-rc1",
|
||||
"path": "com/fasterxml/jackson/core/jackson-core/2.15.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-core-2.16.0-rc1.pom": {
|
||||
"sha1": "be1f4e4e7d6b2c74859aa81edb8bbd00e701172f",
|
||||
"sha256": "sha256-wOXaP11xEWp/+0BgexwoXwv81kmXDk/qfEkb4N31cLM="
|
||||
"jackson-core-2.15.3.pom": {
|
||||
"sha1": "6291d6b0843755417d2bc20c2be4904dd467b836",
|
||||
"sha256": "sha256-zNUAkXSDshrhg135hFuRqxGsmroIt5PS7PgtKMBp7OI="
|
||||
},
|
||||
"jackson-core-2.16.0-rc1.jar": {
|
||||
"sha1": "dba6d80eb8bfc326eaa1e72483e6d80852503e29",
|
||||
"sha256": "sha256-3mlqkMaoGhFeJSu2pDkq85T6je9Da8f66CgL1mwccXI="
|
||||
"jackson-core-2.15.3.jar": {
|
||||
"sha1": "60d600567c1862840397bf9ff5a92398edc5797b",
|
||||
"sha256": "sha256-Ufq3qtUe1YhILtxQf9VCdHk2xQlNGrdu0h3bY7lrYQ0="
|
||||
},
|
||||
"jackson-core-2.16.0-rc1.module": {
|
||||
"sha1": "e948b398d5cc338a0f300fa633caf797bac121a7",
|
||||
"sha256": "sha256-qyE84ApdlT2sZVSlaOw1qPOFA4AMLOt21MzD6yiwwMI="
|
||||
"jackson-core-2.15.3.module": {
|
||||
"sha1": "cfe2c6fcdf029eb556be3e56ede868535112a856",
|
||||
"sha256": "sha256-E4ApvLMrC/pwENP2RmMr3lyYwYfi8aoSChzUE/I6bCg="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9613,20 +9613,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/core/jackson-databind/2.16.0-rc1",
|
||||
"path": "com/fasterxml/jackson/core/jackson-databind/2.15.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-databind-2.16.0-rc1.pom": {
|
||||
"sha1": "ffb4977a414eddab58b2d3e1fb21ab48657bcb8e",
|
||||
"sha256": "sha256-1r2DJq1W9dA5yQzF/qcxetqqUB+ybEMEDn6XsNrjgW4="
|
||||
"jackson-databind-2.15.3.pom": {
|
||||
"sha1": "0542b905f13dc61af5dd15d6cd9bb6cec2375d58",
|
||||
"sha256": "sha256-tuPNSud9D/lQfqsc55Szqp7ieCQcZUQzO9t++8Wi5Pk="
|
||||
},
|
||||
"jackson-databind-2.16.0-rc1.jar": {
|
||||
"sha1": "cb84bf813891fd3a6c04518f7dce66cb7f914c12",
|
||||
"sha256": "sha256-40+i+ah5zRD42Xfib4YK37XTKkxCCJRvTyPHucprgm0="
|
||||
"jackson-databind-2.15.3.jar": {
|
||||
"sha1": "a734bc2c47a9453c4efa772461a3aeb273c010d9",
|
||||
"sha256": "sha256-w8UzM6IXKoBni9oYA+Oc/0W+xq4+nH1PRKgexOKrGNw="
|
||||
},
|
||||
"jackson-databind-2.16.0-rc1.module": {
|
||||
"sha1": "9d6a30d78b30fea5a62cc629addef1dd2f8ffa21",
|
||||
"sha256": "sha256-wyMhPyOKnSQHiUQZW721rnteq9WNAfZ46HClETqgDiE="
|
||||
"jackson-databind-2.15.3.module": {
|
||||
"sha1": "d4d12bf39a3c3560d0a69b6b05adab2182f1da44",
|
||||
"sha256": "sha256-UbqNcfWgSudo6EyR1O3wmh/IvBJEsDvU+bBguPs5VhU="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9658,12 +9658,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/jackson-base/2.16.0-rc1",
|
||||
"path": "com/fasterxml/jackson/jackson-base/2.15.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-base-2.16.0-rc1.pom": {
|
||||
"sha1": "b0ea2e74cd9077f6394d6c745d84aab9d35436df",
|
||||
"sha256": "sha256-Xihgwy19do1PsQLQZz7D+aZ1NJBalQNh1yqKdkvPQXM="
|
||||
"jackson-base-2.15.3.pom": {
|
||||
"sha1": "0da5901e059a4accee9e1dbbe41f395a586fcad7",
|
||||
"sha256": "sha256-QpA0Kr8LDkVnMi/7LQw24lsKh6IXu1azVoCo3Y+NZuQ="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9680,12 +9680,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/jackson-bom/2.16.0-rc1",
|
||||
"path": "com/fasterxml/jackson/jackson-bom/2.15.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-bom-2.16.0-rc1.pom": {
|
||||
"sha1": "9f0aa2b767de8428e4151cc86793a6892cf0b22a",
|
||||
"sha256": "sha256-oNo29tts8XhCSM+qZ/HXxjNZYTdoEU4Q5MtImXBefZw="
|
||||
"jackson-bom-2.15.3.pom": {
|
||||
"sha1": "1b221d661c2943cccc45acfffd41c07d10963494",
|
||||
"sha256": "sha256-ZvyZRcFnFrwgL0udfm2WnfP1Cf7/vhrPGjFRG3U9XJ0="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9702,12 +9702,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/jackson-parent/2.16-rc1",
|
||||
"path": "com/fasterxml/jackson/jackson-parent/2.15",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-parent-2.16-rc1.pom": {
|
||||
"sha1": "b0b57e481f46e394aa45a2b164af9ad92dd4946b",
|
||||
"sha256": "sha256-y0Fkj+L5t6Sa19QTaK50D+iHvEs/NQJO2iUayQQ20ss="
|
||||
"jackson-parent-2.15.pom": {
|
||||
"sha1": "caffbeb9be9350780ad5407789f43664906042ec",
|
||||
"sha256": "sha256-bN+XvGbzifY+NoUNL1UtEhZoj45aWHJ9P2qY7fhnXN4="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9724,12 +9724,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/module/jackson-modules-base/2.16.0-rc1",
|
||||
"path": "com/fasterxml/jackson/module/jackson-modules-base/2.15.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-modules-base-2.16.0-rc1.pom": {
|
||||
"sha1": "449a9b459071042c2d5e3eef698b7435ec7a22d0",
|
||||
"sha256": "sha256-p7KoYdmdDHItUNIOnfQbO5XcXCMXXMpnK+zHqKPwIow="
|
||||
"jackson-modules-base-2.15.3.pom": {
|
||||
"sha1": "696c8c2635ca5e18809afc24b2c92cff0e930880",
|
||||
"sha256": "sha256-lhtdELjxVWdSYRkED+Jo9lXQwDF01awJpgJO3IMPWe4="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9750,20 +9750,20 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.16.0-rc1",
|
||||
"path": "com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.15.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jackson-module-jaxb-annotations-2.16.0-rc1.pom": {
|
||||
"sha1": "7cfdd570dea65bb1144cd3280ced0a3359c3a3b3",
|
||||
"sha256": "sha256-uKkIWZvE6M4xvGiR9cMyPkp6HEucG1kpueJWw0cQjv4="
|
||||
"jackson-module-jaxb-annotations-2.15.3.pom": {
|
||||
"sha1": "2d4fdcbe0f7dda2e7396f3757be75117112ba532",
|
||||
"sha256": "sha256-CUbzJZy+BHolxbVxl3AThdbnteWh+KVrml9dnLT/VYE="
|
||||
},
|
||||
"jackson-module-jaxb-annotations-2.16.0-rc1.jar": {
|
||||
"sha1": "04c27538836a829dcd0f38baf55b4b65eb34283b",
|
||||
"sha256": "sha256-bXNKNWyTupzAINnzsvgdaP2SUldbIepfLVWWlBbNAsg="
|
||||
"jackson-module-jaxb-annotations-2.15.3.jar": {
|
||||
"sha1": "74e8ef60b65b42051258465f06c06195e61e92f2",
|
||||
"sha256": "sha256-UqDcjpIm04QXmg6chORajQDNup6akvkT6z9PmdqDYno="
|
||||
},
|
||||
"jackson-module-jaxb-annotations-2.16.0-rc1.module": {
|
||||
"sha1": "65e9ab1a8205e6f8eb8d4652b52c321b2d8b2555",
|
||||
"sha256": "sha256-7CPt/ZsEE4S6IcZYxd7iiM5js21tdflUkb+lEPMyDPg="
|
||||
"jackson-module-jaxb-annotations-2.15.3.module": {
|
||||
"sha1": "23d97c5e6a045d87c06e10ae16e0fb57e8367846",
|
||||
"sha256": "sha256-sbbt714pCVO5k/JYnOUSC+XLBPObuUwZZ376q5ZQ9FI="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -9795,12 +9795,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/fasterxml/oss-parent/55",
|
||||
"path": "com/fasterxml/oss-parent/50",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"oss-parent-55.pom": {
|
||||
"sha1": "24ad110e0e507856ae662736d6c6ef5b101a1689",
|
||||
"sha256": "sha256-D14Y8rNev22Dn3/VSZcog/aWwhD5rjIwr9LCC6iGwE0="
|
||||
"oss-parent-50.pom": {
|
||||
"sha1": "2e5ec5928fa4a136254d3dfeb8c56f47b049d8ed",
|
||||
"sha256": "sha256-9dpV3XuI+xcMRoAdF3dKZS+y9FgftbHQpfyGqhgrhXc="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12027,12 +12027,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/sun/xml/bind/jaxb-bom-ext/4.0.4",
|
||||
"path": "com/sun/xml/bind/jaxb-bom-ext/4.0.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jaxb-bom-ext-4.0.4.pom": {
|
||||
"sha1": "43e647d464b91a7a232e6c49510598d1476cdfe1",
|
||||
"sha256": "sha256-AMvdv+7k5Y3pmhnrbrBCS5K8YBttoP+JXcAYPpbsdLM="
|
||||
"jaxb-bom-ext-4.0.3.pom": {
|
||||
"sha1": "5838d8e4fa9335d67d5b9c092a4a80c1e67b2dad",
|
||||
"sha256": "sha256-SkQftgU/yfRooSve6hy48Efq9kNzA34/BJrUMEJ/0PA="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12071,12 +12071,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/sun/xml/bind/mvn/jaxb-parent/4.0.4",
|
||||
"path": "com/sun/xml/bind/mvn/jaxb-parent/4.0.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jaxb-parent-4.0.4.pom": {
|
||||
"sha1": "2846b11dfea85e485a63ce6cbc1c30bf4fdd812e",
|
||||
"sha256": "sha256-5+klMqRcmhpIc2y2goem8e97ey/u1ljUmf3M18ofqts="
|
||||
"jaxb-parent-4.0.3.pom": {
|
||||
"sha1": "ce4f3532ee7c0e092605b7b43cc3640999927af7",
|
||||
"sha256": "sha256-6WIwlX8fVlh/nP25dKNr7XcH6JYWtakKknss99NHZ28="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12148,12 +12148,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/sun/xml/bind/mvn/jaxb-txw-parent/4.0.4",
|
||||
"path": "com/sun/xml/bind/mvn/jaxb-txw-parent/4.0.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jaxb-txw-parent-4.0.4.pom": {
|
||||
"sha1": "e2f336db2b61a4474b0363c6a86a8bca4342deb8",
|
||||
"sha256": "sha256-4ROP8PpMBot6RjWoE5ZkKuDgdRqSGj/aE8QenwL7I6w="
|
||||
"jaxb-txw-parent-4.0.3.pom": {
|
||||
"sha1": "be33bd0d60d44f50811c22405c29e56f82d7ecd0",
|
||||
"sha256": "sha256-hU4ErXwT/9tlUbKQ6apsCN10JQdTvMgB4HZVB9EYfXw="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12204,16 +12204,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/sun/xml/fastinfoset/FastInfoset/2.1.1",
|
||||
"path": "com/sun/xml/fastinfoset/FastInfoset/2.1.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"FastInfoset-2.1.1.pom": {
|
||||
"sha1": "85420a8093b72919bd47f0e4ca8abf2274c3797c",
|
||||
"sha256": "sha256-Sf3LDhtzh1Ln2kuljnpenkhskI8ZuFNTVQadrvq3On4="
|
||||
"FastInfoset-2.1.0.pom": {
|
||||
"sha1": "8a3328cc394e06c71de7147d4b8954f5fb3c4326",
|
||||
"sha256": "sha256-kLnl6oTboVRq9G+7YyYZ8llaMvwGCQ0uwJXao7MtqZc="
|
||||
},
|
||||
"FastInfoset-2.1.1.jar": {
|
||||
"sha1": "650c84348bbcf4461bd24d38e67f7a7ce687de24",
|
||||
"sha256": "sha256-ddZjXgkQHvFUXZpZu02VJOxr8VJGVAr1Q1dQ8nFhJ2U="
|
||||
"FastInfoset-2.1.0.jar": {
|
||||
"sha1": "cd92e93ef4ee608bffe4ba41b1247846a3d42227",
|
||||
"sha256": "sha256-uWgWGqtr6x6hpKYqPYS112LWJoH3ziPPAwSZFdl0jSE="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12252,12 +12252,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "com/sun/xml/fastinfoset/fastinfoset-project/2.1.1",
|
||||
"path": "com/sun/xml/fastinfoset/fastinfoset-project/2.1.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"fastinfoset-project-2.1.1.pom": {
|
||||
"sha1": "64c42818f61c961fd357788a0e8287369358258d",
|
||||
"sha256": "sha256-HoDvsaCRWw+GJrp11ylrXxuwJpoKL51zh62Zh/duTAk="
|
||||
"fastinfoset-project-2.1.0.pom": {
|
||||
"sha1": "170bbdc773e5317f258728a71a4629e6ee17a0d1",
|
||||
"sha256": "sha256-zCQMIUxrJpsvx459lRp1YRd5X0PRUts686i+shjve+o="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -15599,12 +15599,12 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/glassfish/jaxb/jaxb-bom/4.0.4",
|
||||
"path": "org/glassfish/jaxb/jaxb-bom/4.0.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jaxb-bom-4.0.4.pom": {
|
||||
"sha1": "d1830dd5724a8e016bc02f09b67da8d92def48af",
|
||||
"sha256": "sha256-FuRpMAtWNmdun7N52twbuY9B98O4ajCuSTjp5NSBLfw="
|
||||
"jaxb-bom-4.0.3.pom": {
|
||||
"sha1": "53d62c7214b0bece9a644e50df2a7d2aa37e0db8",
|
||||
"sha256": "sha256-Zg8EhAYlliYXiumpcrA86VFmXDPDM8q0U7EXi40NJBU="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -15625,16 +15625,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/glassfish/jaxb/jaxb-core/4.0.4",
|
||||
"path": "org/glassfish/jaxb/jaxb-core/4.0.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"jaxb-core-4.0.4.pom": {
|
||||
"sha1": "bebde7111ac1bc5789b3bdd1cbbe779ca536a727",
|
||||
"sha256": "sha256-TpWVc9NJxkOGq2ayYB7etV008XURTVvIKdi2gXU1+pQ="
|
||||
"jaxb-core-4.0.3.pom": {
|
||||
"sha1": "0ed53eb2323c424a024c5b87c7a217f282d43dda",
|
||||
"sha256": "sha256-crhKVGcO3sRAUgH3Heo7C/aYJbrkFjNtfzFAbGnHoyc="
|
||||
},
|
||||
"jaxb-core-4.0.4.jar": {
|
||||
"sha1": "2d5aadd02af86f1e9d8c6f7e8501673f915d4e25",
|
||||
"sha256": "sha256-ARKiZiNGD7TfWgoptmPyrf5+lYTrE4rgR7WiHJRX8Nc="
|
||||
"jaxb-core-4.0.3.jar": {
|
||||
"sha1": "e9093b4a82069a1d78ee9a3233ca387bca88861f",
|
||||
"sha256": "sha256-1tdcQidSaE+/BN10ohaY/q4OSkBsKJK1rwLSPcl7KsY="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -15730,16 +15730,16 @@
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/glassfish/jaxb/txw2/4.0.4",
|
||||
"path": "org/glassfish/jaxb/txw2/4.0.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"txw2-4.0.4.pom": {
|
||||
"sha1": "8202a6876a73122a6349569a327508713d849fcf",
|
||||
"sha256": "sha256-rPArplfsukbSZyFAfOj3Vl1NBPpFwTt0QXoVT7Qm9SA="
|
||||
"txw2-4.0.3.pom": {
|
||||
"sha1": "998f7a3836d5e44d6fdce01e3c67d8fe01ca6f43",
|
||||
"sha256": "sha256-i4TetIZ5zAQrPL7GjXA9+c6May+SOdqKKOPKqp7a1Nk="
|
||||
},
|
||||
"txw2-4.0.4.jar": {
|
||||
"sha1": "cfd2bcf08782673ac370694fdf2cf76dbaa607ef",
|
||||
"sha256": "sha256-Mue9UXjinyKU0D0nk8QeVOUjWLarlc0TQ/JsHCsnQic="
|
||||
"txw2-4.0.3.jar": {
|
||||
"sha1": "47b8fe31c6d1a3382203af919400527389e01e9c",
|
||||
"sha256": "sha256-3welGAG5leRK7JqV74ddlfu43ih0QX3mBm2E9zHLnpw="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -18162,21 +18162,6 @@
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/junit/junit-bom/5.9.3",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
"files": {
|
||||
"junit-bom-5.9.3.pom": {
|
||||
"sha1": "b1874b6a66656e4f5e4b492ab321249bcb749dc7",
|
||||
"sha256": "sha256-TQMpzZ5y8kIOXKFXJMv+b/puX9KIg2FRYnEZD9w0Ltc="
|
||||
},
|
||||
"junit-bom-5.9.3.module": {
|
||||
"sha1": "d70d3d9a503c573e648ef70fb2e211fbe44aa63e",
|
||||
"sha256": "sha256-tAH9JZAeWCpSSqU0PEs54ovFbiSWHBBpvytLv87ka5M="
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "org/junit/junit-bom/5.10.0",
|
||||
"repo": "https://repo.maven.apache.org/maven2",
|
||||
|
||||
@@ -117,7 +117,7 @@ commons-codec:commons-codec:1.11
|
||||
commons-io:commons-io:2.4
|
||||
commons-logging:commons-logging:1.1.1
|
||||
commons-logging:commons-logging:1.2
|
||||
com.adobe.xmp:xmpcore:6.1.11
|
||||
com.adobe.xmp:xmpcore:6.0.6
|
||||
com.afollestad.material-dialogs:commons:0.9.6.0
|
||||
com.afollestad.material-dialogs:core:0.9.6.0
|
||||
com.airbnb.android:lottie:3.4.4
|
||||
@@ -444,7 +444,7 @@ com.diffplug.durian:durian-io:1.2.0
|
||||
com.diffplug.spotless:spotless-lib-extra:2.30.0
|
||||
com.diffplug.spotless:spotless-lib:2.30.0
|
||||
com.diffplug.spotless:spotless-plugin-gradle:6.11.0
|
||||
com.drewnoakes:metadata-extractor:2.18.0
|
||||
com.drewnoakes:metadata-extractor:2.12.0
|
||||
com.facebook.conceal:conceal:1.1.3
|
||||
com.facebook.fbjni:fbjni-java-only:0.2.2
|
||||
com.facebook.fresco:animated-base:2.5.0
|
||||
|
||||
+19
-20
@@ -498,7 +498,7 @@ https://repo.maven.apache.org/maven2/commons-codec/commons-codec/1.16.0/commons-
|
||||
https://repo.maven.apache.org/maven2/commons-io/commons-io/2.4/commons-io-2.4.pom
|
||||
https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
|
||||
https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/adobe/xmp/xmpcore/6.1.11/xmpcore-6.1.11.pom
|
||||
https://repo.maven.apache.org/maven2/com/adobe/xmp/xmpcore/6.0.6/xmpcore-6.0.6.pom
|
||||
https://repo.maven.apache.org/maven2/com/afollestad/material-dialogs/commons/0.9.6.0/commons-0.9.6.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/afollestad/material-dialogs/core/0.9.6.0/core-0.9.6.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/airbnb/android/lottie/3.4.4/lottie-3.4.4.pom
|
||||
@@ -563,7 +563,7 @@ https://repo.maven.apache.org/maven2/com/diffplug/durian/durian-io/1.2.0/durian-
|
||||
https://repo.maven.apache.org/maven2/com/diffplug/spotless/spotless-lib-extra/2.30.0/spotless-lib-extra-2.30.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/diffplug/spotless/spotless-lib/2.30.0/spotless-lib-2.30.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/diffplug/spotless/spotless-plugin-gradle/6.11.0/spotless-plugin-gradle-6.11.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/drewnoakes/metadata-extractor/2.18.0/metadata-extractor-2.18.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/drewnoakes/metadata-extractor/2.12.0/metadata-extractor-2.12.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/facebook/conceal/conceal/1.1.3/conceal-1.1.3.pom
|
||||
https://repo.maven.apache.org/maven2/com/facebook/fbjni/fbjni-java-only/0.2.2/fbjni-java-only-0.2.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/facebook/fresco/animated-base/2.5.0/animated-base-2.5.0.pom
|
||||
@@ -593,25 +593,25 @@ 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.3/soloader-0.10.3.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.16.0-rc1/jackson-annotations-2.16.0-rc1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.15.3/jackson-annotations-2.15.3.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.16.0-rc1/jackson-core-2.16.0-rc1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-core/2.15.3/jackson-core-2.15.3.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.16.0-rc1/jackson-databind-2.16.0-rc1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.15.3/jackson-databind-2.15.3.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.16.0-rc1/jackson-base-2.16.0-rc1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-base/2.15.3/jackson-base-2.15.3.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.16.0-rc1/jackson-bom-2.16.0-rc1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-bom/2.15.3/jackson-bom-2.15.3.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.16-rc1/jackson-parent-2.16-rc1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/jackson-parent/2.15/jackson-parent-2.15.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.16.0-rc1/jackson-modules-base-2.16.0-rc1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-modules-base/2.15.3/jackson-modules-base-2.15.3.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.16.0-rc1/jackson-module-jaxb-annotations-2.16.0-rc1.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.15.3/jackson-module-jaxb-annotations-2.15.3.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/55/oss-parent-55.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/oss-parent/50/oss-parent-50.pom
|
||||
https://repo.maven.apache.org/maven2/com/fasterxml/woodstox/woodstox-core/6.2.1/woodstox-core-6.2.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/annotations/4.12.0/annotations-4.12.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/compiler/4.12.0/compiler-4.12.0.pom
|
||||
@@ -771,26 +771,26 @@ https://repo.maven.apache.org/maven2/com/sun/istack/istack-commons/4.2.0/istack-
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/jaxb-bom-ext/2.2.11/jaxb-bom-ext-2.2.11.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/jaxb-bom-ext/2.3.1/jaxb-bom-ext-2.3.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/jaxb-bom-ext/2.3.2/jaxb-bom-ext-2.3.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/jaxb-bom-ext/4.0.4/jaxb-bom-ext-4.0.4.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/jaxb-bom-ext/4.0.3/jaxb-bom-ext-4.0.3.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-parent/2.2.11/jaxb-parent-2.2.11.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-parent/2.3.1/jaxb-parent-2.3.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-parent/2.3.2/jaxb-parent-2.3.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-parent/4.0.4/jaxb-parent-4.0.4.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-parent/4.0.3/jaxb-parent-4.0.3.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-runtime-parent/2.2.11/jaxb-runtime-parent-2.2.11.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-runtime-parent/2.3.1/jaxb-runtime-parent-2.3.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-runtime-parent/2.3.2/jaxb-runtime-parent-2.3.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-txw-parent/2.2.11/jaxb-txw-parent-2.2.11.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-txw-parent/2.3.1/jaxb-txw-parent-2.3.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-txw-parent/2.3.2/jaxb-txw-parent-2.3.2.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-txw-parent/4.0.4/jaxb-txw-parent-4.0.4.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/bind/mvn/jaxb-txw-parent/4.0.3/jaxb-txw-parent-4.0.3.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/FastInfoset/1.2.13/FastInfoset-1.2.13.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/FastInfoset/1.2.15/FastInfoset-1.2.15.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/FastInfoset/1.2.16/FastInfoset-1.2.16.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/FastInfoset/2.1.1/FastInfoset-2.1.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/FastInfoset/2.1.0/FastInfoset-2.1.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/fastinfoset-project/1.2.13/fastinfoset-project-1.2.13.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/fastinfoset-project/1.2.15/fastinfoset-project-1.2.15.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/fastinfoset-project/1.2.16/fastinfoset-project-1.2.16.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/fastinfoset-project/2.1.1/fastinfoset-project-2.1.1.pom
|
||||
https://repo.maven.apache.org/maven2/com/sun/xml/fastinfoset/fastinfoset-project/2.1.0/fastinfoset-project-2.1.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/tunnelvisionlabs/antlr4-annotations/4.5/antlr4-annotations-4.5.pom
|
||||
https://repo.maven.apache.org/maven2/com/tunnelvisionlabs/antlr4-annotations/4.9.0/antlr4-annotations-4.9.0.pom
|
||||
https://repo.maven.apache.org/maven2/com/tunnelvisionlabs/antlr4-master/4.5/antlr4-master-4.5.pom
|
||||
@@ -1031,16 +1031,16 @@ https://repo.maven.apache.org/maven2/org/eclipse/jgit/org.eclipse.jgit/5.13.1.20
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-bom/2.2.11/jaxb-bom-2.2.11.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-bom/2.3.1/jaxb-bom-2.3.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-bom/2.3.2/jaxb-bom-2.3.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-bom/4.0.4/jaxb-bom-4.0.4.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-bom/4.0.3/jaxb-bom-4.0.3.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-core/2.2.11/jaxb-core-2.2.11.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-core/4.0.4/jaxb-core-4.0.4.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-core/4.0.3/jaxb-core-4.0.3.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-runtime/2.2.11/jaxb-runtime-2.2.11.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-runtime/2.3.1/jaxb-runtime-2.3.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/jaxb-runtime/2.3.2/jaxb-runtime-2.3.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/txw2/2.2.11/txw2-2.2.11.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/txw2/2.3.1/txw2-2.3.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/txw2/2.3.2/txw2-2.3.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/txw2/4.0.4/txw2-4.0.4.pom
|
||||
https://repo.maven.apache.org/maven2/org/glassfish/jaxb/txw2/4.0.3/txw2-4.0.3.pom
|
||||
https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
|
||||
https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
|
||||
@@ -1199,7 +1199,6 @@ https://repo.maven.apache.org/maven2/org/json/json/20180813/json-20180813.pom
|
||||
https://repo.maven.apache.org/maven2/org/json/json/20231013/json-20231013.pom
|
||||
https://repo.maven.apache.org/maven2/org/jsoup/jsoup/1.13.1/jsoup-1.13.1.pom
|
||||
https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.9.2/junit-bom-5.9.2.pom
|
||||
https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.9.3/junit-bom-5.9.3.pom
|
||||
https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.10.0/junit-bom-5.10.0.pom
|
||||
https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.7.7/stax-ex-1.7.7.pom
|
||||
https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8.1/stax-ex-1.8.1.pom
|
||||
|
||||
+2
-2
@@ -10,9 +10,9 @@
|
||||
"dependencies": {
|
||||
"@babel/preset-typescript": "^7.17.12",
|
||||
"@react-native-async-storage/async-storage": "^1.17.9",
|
||||
"@react-native-camera-roll/camera-roll": "git+https://github.com/status-im/react-native-camera-roll.git#refs/tags/v5.1.1.1",
|
||||
"@react-native-community/audio-toolkit": "git+https://github.com/tbenr/react-native-audio-toolkit.git#refs/tags/v2.0.3-status-v6",
|
||||
"@react-native-community/blur": "git+https://github.com/status-im/react-native-blur#refs/tags/v4.3.3-status",
|
||||
"@react-native-community/cameraroll": "git+https://github.com/status-im/react-native-cameraroll.git#refs/tags/v4.0.4-status.0",
|
||||
"@react-native-community/clipboard": "^1.2.2",
|
||||
"@react-native-community/hooks": "^3.0.0",
|
||||
"@react-native-community/masked-view": "^0.1.6",
|
||||
@@ -34,7 +34,7 @@
|
||||
"react-native": "0.69.10",
|
||||
"react-native-background-timer": "^2.1.1",
|
||||
"react-native-blob-util": "^0.13.18",
|
||||
"react-native-camera-kit": "14.0.0-beta13",
|
||||
"react-native-camera-kit": "^13.0.0",
|
||||
"react-native-config": "^1.5.0",
|
||||
"react-native-dialogs": "^1.0.4",
|
||||
"react-native-draggable-flatlist": "^4.0.1",
|
||||
|
||||
Binary file not shown.
@@ -346,8 +346,7 @@
|
||||
(clj->js {:BlurView {}}))
|
||||
|
||||
(def react-native-camera-roll
|
||||
(clj->js {:default #js {}
|
||||
:CameraRoll #js {}}))
|
||||
(clj->js {:default #js {}}))
|
||||
|
||||
(def react-native-orientation-locker
|
||||
(clj->js {:default #js {}
|
||||
@@ -411,7 +410,7 @@
|
||||
"react-native-navigation" react-native-navigation
|
||||
"@react-native-community/push-notification-ios" push-notification-ios
|
||||
"@react-native-community/blur" react-native-blur
|
||||
"@react-native-camera-roll/camera-roll" react-native-camera-roll
|
||||
"@react-native-community/cameraroll" react-native-camera-roll
|
||||
"react-native-camera-kit" react-native-camera-kit
|
||||
"react-native-permissions" react-native-permissions
|
||||
"rn-emoji-keyboard" rn-emoji-keyboard
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
(defn- view-internal
|
||||
"params, first name, last name, customization-color, size
|
||||
and if it's dark or not!"
|
||||
[{:keys [f-name l-name customization-color size theme monospace? uppercase? container-style]
|
||||
[{:keys [f-name l-name customization-color size theme monospace? uppercase?]
|
||||
:or {f-name "John"
|
||||
l-name "Doe"
|
||||
size :x-large
|
||||
@@ -50,14 +50,13 @@
|
||||
(colors/resolve-color customization-color theme)
|
||||
(colors/theme-colors colors/neutral-80-opa-70 colors/white-opa-70 theme))]
|
||||
[rn/view
|
||||
{:style (merge {:width circle-size
|
||||
:height circle-size
|
||||
:border-radius circle-size
|
||||
:text-align :center
|
||||
:justify-content :center
|
||||
:align-items :center
|
||||
:background-color circle-color}
|
||||
container-style)}
|
||||
{:style {:width circle-size
|
||||
:height circle-size
|
||||
:border-radius circle-size
|
||||
:text-align :center
|
||||
:justify-content :center
|
||||
:align-items :center
|
||||
:background-color circle-color}}
|
||||
[text/text
|
||||
{:size (size font-sizes)
|
||||
:weight (if monospace? :monospace (size font-weights))
|
||||
|
||||
@@ -95,12 +95,25 @@
|
||||
notification-count
|
||||
activity-center-on-press
|
||||
scan-on-press
|
||||
qr-code-on-press]
|
||||
qr-code-on-press
|
||||
for-qa-only-cellular-network
|
||||
for-qa-only-no-network
|
||||
for-qa-only-network-type]
|
||||
:as props}]
|
||||
(let [button-common-props (get-button-common-props {:theme theme
|
||||
:jump-to? jump-to?
|
||||
:blur? blur?})]
|
||||
[rn/view {:style style/right-section}
|
||||
(when (= for-qa-only-network-type "cellular")
|
||||
[button/button
|
||||
(merge (dissoc button-common-props :icon-only?)
|
||||
for-qa-only-cellular-network)
|
||||
"🦄"])
|
||||
(when (= for-qa-only-network-type "none")
|
||||
[button/button
|
||||
(merge (dissoc button-common-props :icon-only?)
|
||||
for-qa-only-no-network)
|
||||
"💀"])
|
||||
[button/button
|
||||
(assoc button-common-props :accessibility-label :open-scanner-button :on-press scan-on-press)
|
||||
:i/scan]
|
||||
@@ -147,5 +160,8 @@
|
||||
:qr-code-on-press callback
|
||||
:notification-count number
|
||||
:max-unread-notifications used to specify max number for counter
|
||||
:for-qa-only-cellular-network used for testing purposed
|
||||
:for-qa-only-no-network used for testing purposed
|
||||
:for-qa-only-network-type used for testing purposed
|
||||
"
|
||||
(quo.theme/with-theme view-internal))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
(ns react-native.cameraroll
|
||||
(:require
|
||||
["@react-native-camera-roll/camera-roll" :refer [CameraRoll]]
|
||||
["@react-native-community/cameraroll" :as CameraRoll]
|
||||
[react-native.fs :as fs]
|
||||
[taoensso.timbre :as log]
|
||||
[utils.transforms :as transforms]))
|
||||
@@ -22,9 +22,3 @@
|
||||
(-> (.save CameraRoll (clj->js path))
|
||||
(.then #(fs/unlink path))
|
||||
(.catch #(fs/unlink path))))
|
||||
|
||||
(defn get-photos-count-ios
|
||||
[cb]
|
||||
(-> (.getPhotosCountiOS CameraRoll)
|
||||
(.then #(cb %))
|
||||
(.catch #(js/console.error %))))
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
(map? view)
|
||||
(merge view)
|
||||
|
||||
(= view :mobile-network)
|
||||
(merge mobile-network-settings/settings-sheet)
|
||||
|
||||
(= view :mobile-network-offline)
|
||||
(merge mobile-network-settings/offline-sheet)
|
||||
|
||||
|
||||
@@ -29,6 +29,15 @@
|
||||
cofx
|
||||
{:db (assoc db :network-status/initialized? true)}
|
||||
(cond
|
||||
(and logged-in?
|
||||
(utils/cellular? (:network/type db))
|
||||
(not remember-syncing-choice?)
|
||||
(not= :create-multiaccount (:view-id db)))
|
||||
|
||||
[(bottom-sheet/show-bottom-sheet-old
|
||||
{:view :mobile-network})
|
||||
(sheet-defaults)]
|
||||
|
||||
;; NOTE(rasom): When we log into account on-network-status-change is
|
||||
;; dispatched, but that doesn't mean there was a status change, thus
|
||||
;; no reason to restart wallet.
|
||||
|
||||
@@ -67,17 +67,18 @@
|
||||
:else theme)
|
||||
{:keys [icon-color background-color text-color border-color]}
|
||||
(themes theme')]
|
||||
|
||||
(println "theme" theme' background-color)
|
||||
[rn/touchable-without-feedback
|
||||
(merge {:disabled disabled
|
||||
:accessibility-label accessibility-label}
|
||||
(when on-press
|
||||
(merge (when on-press
|
||||
{:on-press on-press})
|
||||
(when on-long-press
|
||||
{:on-long-press on-long-press}))
|
||||
[rn/view
|
||||
(merge {:background-color background-color
|
||||
:border-radius border-radius}
|
||||
(merge {:background-color background-color
|
||||
:border-radius border-radius
|
||||
:type type
|
||||
:disabled disabled
|
||||
:accessibility-label accessibility-label}
|
||||
(when border-color
|
||||
{:border-color border-color
|
||||
:border-width 1}))
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
(ns status-im.ui.components.text
|
||||
(:require
|
||||
[react-native.core :as rn]
|
||||
[react-native.reanimated :as animated]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.ui.components.colors :as colors]
|
||||
[status-im.ui.components.typography :as typography]))
|
||||
@@ -43,7 +44,7 @@
|
||||
[]
|
||||
(let [this (reagent/current-component)
|
||||
props (reagent/props this)
|
||||
component rn/text]
|
||||
component (if (:animated? props) animated/text rn/text)]
|
||||
(into [component
|
||||
(merge {:style (text-style props)}
|
||||
(dissoc props
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
(ns status-im.ui.screens.mobile-network-settings.sheets
|
||||
(:require-macros [status-im.utils.views :as views])
|
||||
(:require [re-frame.core :as re-frame]
|
||||
[status-im.ui.components.list.item :as list.item]
|
||||
[status-im.ui.components.react :as react]
|
||||
[status-im.ui.screens.mobile-network-settings.sheets-styles :as styles]
|
||||
[utils.i18n :as i18n]))
|
||||
(:require
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.ui.components.checkbox.view :as checkbox]
|
||||
[status-im.ui.components.list.item :as list.item]
|
||||
[status-im.ui.components.react :as react]
|
||||
[status-im.ui.screens.mobile-network-settings.sheets-styles :as styles]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(defn title
|
||||
[label]
|
||||
@@ -34,6 +36,65 @@
|
||||
:on-press #(re-frame/dispatch [:mobile-network/navigate-to-settings])}
|
||||
(i18n/label :t/mobile-network-go-to-settings)]])
|
||||
|
||||
(views/defview checkbox
|
||||
[]
|
||||
(views/letsubs [checked? [:mobile-network/remember-choice?]]
|
||||
[react/view
|
||||
{:style styles/checkbox-line-container
|
||||
:accessibility-label "remember-choice"}
|
||||
[checkbox/checkbox
|
||||
{:checked? checked?
|
||||
:style styles/checkbox
|
||||
:icon-style styles/checkbox-icon
|
||||
:on-value-change #(re-frame/dispatch [:mobile-network/remember-choice? %])}]
|
||||
[react/view
|
||||
{:style styles/checkbox-text-container}
|
||||
[react/text (i18n/label :t/mobile-network-sheet-remember-choice)]]]))
|
||||
|
||||
(defn settings
|
||||
[]
|
||||
[react/view
|
||||
{:style styles/settings-container}
|
||||
[react/nested-text
|
||||
{:style styles/settings-text
|
||||
:on-press #(re-frame/dispatch [:mobile-network/navigate-to-settings])}
|
||||
(i18n/label :t/mobile-network-sheet-configure)
|
||||
[{:style styles/settings-link}
|
||||
(str " " (i18n/label :t/mobile-network-sheet-settings))]]])
|
||||
|
||||
(defn hide-sheet-and-dispatch
|
||||
[event]
|
||||
(re-frame/dispatch [:bottom-sheet/hide-old])
|
||||
(re-frame/dispatch event))
|
||||
|
||||
(views/defview settings-sheet
|
||||
[]
|
||||
[react/view {:flex 1}
|
||||
[react/view {:align-items :center}
|
||||
[title :mobile-syncing-sheet-title]
|
||||
[details :mobile-syncing-sheet-details]]
|
||||
[list.item/list-item
|
||||
{:theme :accent
|
||||
:accessibility-label "mobile-network-continue-syncing"
|
||||
:title (i18n/label :t/mobile-network-continue-syncing)
|
||||
:subtitle (i18n/label :t/mobile-network-continue-syncing-details)
|
||||
:subtitle-max-lines 2
|
||||
:icon :main-icons/network
|
||||
:on-press #(hide-sheet-and-dispatch [:mobile-network/continue-syncing])}]
|
||||
[list.item/list-item
|
||||
{:theme :negative
|
||||
:accessibility-label "mobile-network-stop-syncing"
|
||||
:title (i18n/label :t/mobile-network-stop-syncing)
|
||||
:subtitle (i18n/label :t/mobile-network-stop-syncing-details)
|
||||
:icon :main-icons/cancel
|
||||
:on-press #(hide-sheet-and-dispatch [:mobile-network/stop-syncing])}]
|
||||
[separator]
|
||||
[react/view
|
||||
{:flex 1
|
||||
:align-self :stretch}
|
||||
[checkbox]
|
||||
[settings]]])
|
||||
|
||||
(views/defview offline-sheet
|
||||
[]
|
||||
[react/view {:flex 1}
|
||||
|
||||
@@ -53,5 +53,8 @@
|
||||
:on-press #(hide-sheet-and-dispatch [:mobile-network/restore-defaults])}
|
||||
(i18n/label :t/restore-defaults)]]]))
|
||||
|
||||
(def settings-sheet
|
||||
{:content sheets/settings-sheet})
|
||||
|
||||
(def offline-sheet
|
||||
{:content sheets/offline-sheet})
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
:component wallet.account/account}
|
||||
{:name :add-new-account
|
||||
;;TODO dynamic title
|
||||
:options {:insets {:top? true :bottom? true}}
|
||||
:options {:insets {:top? true}}
|
||||
:component add-account/add-account-view}
|
||||
{:name :add-new-account-pin
|
||||
;;TODO dynamic title
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
{:style styles/round-action-button
|
||||
:on-press on-press}
|
||||
(icons/icon icon {:color colors/white})]
|
||||
[components.core/text
|
||||
[quo/text
|
||||
{:color :secondary
|
||||
:size :small
|
||||
:style {:margin-top (:tiny spacing/spacing)}}
|
||||
@@ -348,7 +348,7 @@
|
||||
:margin-top 8
|
||||
:margin-horizontal 67.5
|
||||
:text-align :center}}
|
||||
[components.core/text
|
||||
[quo/text
|
||||
{:color :secondary
|
||||
:size :small
|
||||
:style {:text-align :center}}
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
:justify-content :center
|
||||
:left 0
|
||||
:right 0
|
||||
:bottom 56
|
||||
:bottom 16
|
||||
:height 40})
|
||||
|
||||
(defn send-button
|
||||
|
||||
@@ -244,11 +244,10 @@
|
||||
to to-wallet to-contact
|
||||
gas-limit gas-price-gwei gas-price-eth gas-used
|
||||
fee-cap-gwei tip-cap-gwei
|
||||
cost nonce data]
|
||||
:as tx}]
|
||||
cost nonce data]}]
|
||||
[react/view {:style styles/details-block}
|
||||
[details-list-row :t/block block]
|
||||
[details-list-row :t/hash (:hash tx)]
|
||||
[details-list-row :t/hash hash]
|
||||
[details-list-row :t/from-capitalized
|
||||
[{:accessibility-label (if from-wallet :sender-name-text :sender-address-text)}
|
||||
(or from-wallet from-contact from)]
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
(ns status-im2.common.floating-button-page.constants)
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
(ns status-im2.common.floating-button-page.floating-container.style
|
||||
(:require [quo.foundations.colors :as colors]
|
||||
[react-native.platform :as platform]))
|
||||
|
||||
;; TODO: consider modals and customizable props
|
||||
(defn container
|
||||
[{:keys [top]} button-height theme background-shown? blur?]
|
||||
{:width "100%"
|
||||
:padding-left 20
|
||||
:padding-right 20
|
||||
:padding-top 12
|
||||
:padding-bottom 12
|
||||
:align-self :flex-end
|
||||
;; :margin-bottom (+ top 10)
|
||||
:background-color (when (and background-shown? (not blur?))
|
||||
(colors/theme-colors colors/white colors/neutral-70 theme))})
|
||||
|
||||
|
||||
(defn view-container
|
||||
[keyboard-shown? insets button-height theme background-shown?]
|
||||
(container insets button-height theme background-shown? false))
|
||||
|
||||
(defn blur-container
|
||||
[_ insets button-height theme background-shown?]
|
||||
(merge (container insets button-height theme background-shown? true)
|
||||
(when platform/android? {:padding-bottom 12})))
|
||||
@@ -1,47 +0,0 @@
|
||||
(ns status-im2.common.floating-button-page.floating-container.view
|
||||
(:require [quo.foundations.colors :as colors]
|
||||
[react-native.blur :as blur]
|
||||
[react-native.core :as rn]
|
||||
[react-native.platform :as platform]
|
||||
[react-native.safe-area :as safe-area]
|
||||
[status-im2.common.floating-button-page.floating-container.style :as style]))
|
||||
|
||||
(def blur-container-props
|
||||
{:blur-amount 36
|
||||
:blur-radius 25
|
||||
:blur-type :light ;:transparent
|
||||
;:overlay-color (colors/theme-colors colors/black colors/neutral-70 theme)
|
||||
|
||||
:background-color (if platform/android? colors/neutral-100 colors/neutral-80-opa-1-blur)})
|
||||
|
||||
|
||||
(defn- blur-container
|
||||
[props & children]
|
||||
[rn/view
|
||||
(merge props
|
||||
{:width "100%"
|
||||
:padding-horizontal 20
|
||||
:padding-vertical 12
|
||||
:overflow :hidden})
|
||||
;; TODO: add theme to blur props
|
||||
(into [blur/view blur-container-props] children)])
|
||||
|
||||
"
|
||||
- on-layout will trigger to dynamically get the height of the container to screen using it.
|
||||
"
|
||||
(defn view
|
||||
[{:keys [on-layout blur? container-style child-height theme show-background?
|
||||
floating?]}
|
||||
children]
|
||||
(let [insets (safe-area/get-insets)
|
||||
blur-active? (and blur? show-background?)
|
||||
container-view (if blur-active? blur-container rn/view)
|
||||
inline-container-style (if blur-active? style/blur-container style/view-container)]
|
||||
|
||||
[container-view
|
||||
{:on-layout on-layout
|
||||
:style (merge container-style
|
||||
(inline-container-style floating? insets child-height theme show-background?))}
|
||||
children]))
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
(ns status-im2.common.floating-button-page.style)
|
||||
|
||||
(def page-container
|
||||
{:position :absolute
|
||||
:top 0
|
||||
:bottom 0
|
||||
:left 0
|
||||
:right 0})
|
||||
|
||||
(defn keyboard-view-style
|
||||
[keyboard-shown?]
|
||||
{:border-width 1
|
||||
:border-color :yellow
|
||||
;:padding-bottom (if-not keyboard-shown? 12 0)
|
||||
})
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
(ns status-im2.common.floating-button-page.style2
|
||||
(:require [react-native.platform :as platform]
|
||||
[status-im2.common.floating-button-page.constants :as constants]))
|
||||
|
||||
(def page-container
|
||||
{:position :absolute
|
||||
:top 0
|
||||
:bottom 0
|
||||
:left 0
|
||||
:right 0
|
||||
:z-index 100})
|
||||
|
||||
(def keyboard-view-style
|
||||
{:position :absolute
|
||||
:left 0
|
||||
:right 0
|
||||
:top 0
|
||||
:bottom 0
|
||||
:border-width 1
|
||||
:border-color :blue
|
||||
})
|
||||
|
||||
(defn button-container
|
||||
[{:keys [top]}]
|
||||
{:width "100%"
|
||||
:padding-left 20
|
||||
:padding-right 20
|
||||
:padding-top 12
|
||||
:align-self :flex-end
|
||||
:margin-bottom (+ top 10) ;; this value is needed for the modal page - perhaps dynamically adjusted
|
||||
;; based on page type
|
||||
:height constants/button-height})
|
||||
|
||||
(defn view-button-container
|
||||
[keyboard-shown? insets]
|
||||
(merge (button-container insets)
|
||||
(if platform/ios?
|
||||
{:margin-bottom (if keyboard-shown? 0 34)}
|
||||
{:margin-bottom (if keyboard-shown? 12 34)})))
|
||||
|
||||
(defn blur-button-container
|
||||
[insets]
|
||||
(merge (button-container insets)
|
||||
(when platform/android? {:padding-bottom 12})))
|
||||
@@ -1,161 +0,0 @@
|
||||
(ns status-im2.common.floating-button-page.view
|
||||
(:require
|
||||
[oops.core :as oops]
|
||||
[quo.theme :as quo.theme]
|
||||
[react-native.core :as rn]
|
||||
[react-native.hooks :as hooks]
|
||||
[react-native.platform :as platform]
|
||||
[react-native.safe-area :as safe-area]
|
||||
[reagent.core :as reagent]
|
||||
[status-im2.common.floating-button-page.floating-container.view :as floating-container]
|
||||
[status-im2.common.floating-button-page.style :as style]))
|
||||
|
||||
(defn show-button-background?
|
||||
[{:keys [keyboard-shown? available-space content-height] :as props}]
|
||||
(when keyboard-shown?
|
||||
(< available-space content-height)))
|
||||
|
||||
#_(when keyboard-shown
|
||||
(cond
|
||||
platform/android?
|
||||
(< (- @scroll-view-height button-container-height) @content-container-height)
|
||||
|
||||
platform/ios?
|
||||
(< (- @scroll-view-height keyboard-view-height) (- @content-container-height content-scroll-y))
|
||||
|
||||
:else
|
||||
false))
|
||||
|
||||
(defonce scroll-view-ref (atom nil))
|
||||
|
||||
(defn f-view
|
||||
[{:keys [blur?]} header page-content footer]
|
||||
(reagent/with-let [theme (quo.theme/use-theme-value)
|
||||
window-height (:height (rn/get-window))
|
||||
header-height (reagent/atom 0)
|
||||
footer-height (reagent/atom 0)
|
||||
floating-container-height (reagent/atom 0)
|
||||
content-container-height (reagent/atom 0)
|
||||
content-scroll-y (reagent/atom 0)
|
||||
;;
|
||||
|
||||
#_#_show-listener (oops/ocall rn/keyboard
|
||||
"addListener"
|
||||
"keyboardDidShow"
|
||||
(fn [e]
|
||||
(prn e)
|
||||
(js/setTimeout
|
||||
(fn []
|
||||
(println "LAST SCROLL POSITION: " @content-scroll-y)
|
||||
(println "FINAL SHOULD BE:" (+ @content-scroll-y @footer-height))
|
||||
|
||||
(some-> @scroll-view-ref
|
||||
(.scrollTo #js {:x 0
|
||||
:y (+ @content-scroll-y @footer-height)
|
||||
:animated true})))
|
||||
(+ (oops/oget e "duration") 300))))]
|
||||
(let [{:keys [keyboard-shown
|
||||
keyboard-height]} (hooks/use-keyboard)
|
||||
show-background? (show-button-background?
|
||||
{:keyboard-shown? keyboard-shown
|
||||
:available-space (- window-height
|
||||
keyboard-height
|
||||
@floating-container-height
|
||||
(safe-area/get-top)
|
||||
50)
|
||||
:content-height (+ @content-scroll-y
|
||||
@content-container-height
|
||||
@header-height)})]
|
||||
[rn/view {:style {:flex 1} ; style/page-container
|
||||
}
|
||||
[rn/keyboard-avoiding-view
|
||||
{:behavior :position
|
||||
:style {:background-color :goldenrod
|
||||
:flex 1}
|
||||
:content-container-style {:position :absolute
|
||||
:top 0
|
||||
:bottom 0
|
||||
:left 0
|
||||
:right 0}}
|
||||
[rn/view {:style {:position :absolute
|
||||
:top 0
|
||||
:bottom 0
|
||||
:left 0
|
||||
:right 0
|
||||
:flex 1
|
||||
:height 700
|
||||
:border-width 1
|
||||
:border-color :red}
|
||||
:on-layout (fn [event]
|
||||
(let [height (oops/oget event "nativeEvent.layout.height")]
|
||||
(reset! content-container-height height)))}
|
||||
|
||||
[rn/view
|
||||
{:on-layout (fn [event]
|
||||
(let [height (oops/oget event "nativeEvent.layout.height")]
|
||||
(reset! header-height height)))}
|
||||
header]
|
||||
|
||||
[rn/scroll-view {:ref #(reset! scroll-view-ref %)
|
||||
:on-scroll (fn [event]
|
||||
(let [y (oops/oget event "nativeEvent.contentOffset.y")]
|
||||
(prn y)
|
||||
(reset! content-scroll-y y)))
|
||||
:scroll-event-throttle 64
|
||||
:content-container-style {:flex-grow 1
|
||||
:background-color :grey
|
||||
;:padding-bottom @footer-height
|
||||
}}
|
||||
|
||||
page-content]]
|
||||
#_[rn/view {:style {:border-width 1
|
||||
:border-color :red
|
||||
:background-color :lightblue}
|
||||
:on-layout (fn [event]
|
||||
(let [height (oops/oget event "nativeEvent.layout.height")]
|
||||
(reset! content-container-height height)))}
|
||||
page-content]
|
||||
|
||||
|
||||
#_(when keyboard-shown
|
||||
[rn/view {:style {:height 100
|
||||
:background-color :orange}}])]
|
||||
|
||||
|
||||
#_[rn/view {:style (cond-> {:position :absolute
|
||||
:left 0
|
||||
:right 0
|
||||
:bottom 0})
|
||||
:on-layout (fn [event]
|
||||
(let [height (oops/oget event "nativeEvent.layout.height")]
|
||||
(reset! footer-height height)))}
|
||||
[rn/view {:style {:padding-vertical 16
|
||||
:padding-horizontal 20
|
||||
:background-color (if show-background?
|
||||
;"rgba(67, 90, 183, 1)"
|
||||
"rgba(67, 90, 183, 0.4352)"
|
||||
"rgba(67, 90, 183, 0.4352)")}}
|
||||
footer]]
|
||||
|
||||
|
||||
#_[floating-container/view
|
||||
{:theme theme
|
||||
:blur? blur?
|
||||
:floating? keyboard-shown
|
||||
:show-background? show-background?
|
||||
:on-layout (fn [event]
|
||||
(let [height (oops/oget event "nativeEvent.layout.height")]
|
||||
(prn height "height height height")
|
||||
(reset! floating-container-height height)))}
|
||||
footer
|
||||
;[ button-props button-label]
|
||||
]
|
||||
|
||||
])
|
||||
(finally
|
||||
;(oops/ocall show-listener "remove")
|
||||
)))
|
||||
|
||||
(defn view
|
||||
[props header page-content button-component]
|
||||
[:f> f-view props header page-content button-component])
|
||||
@@ -1,110 +0,0 @@
|
||||
(ns status-im2.common.floating-button-page.view2
|
||||
(:require
|
||||
[oops.core :as oops]
|
||||
[quo.core :as quo]
|
||||
[quo.foundations.colors :as colors]
|
||||
[react-native.blur :as blur]
|
||||
[react-native.core :as rn]
|
||||
[react-native.hooks :as hooks]
|
||||
[react-native.platform :as platform]
|
||||
[react-native.safe-area :as safe-area]
|
||||
[reagent.core :as reagent]
|
||||
[status-im2.common.floating-button-page.constants :as constants]
|
||||
[status-im2.common.floating-button-page.style :as style]))
|
||||
|
||||
(defn show-button-background
|
||||
[keyboard-height keyboard-shown content-scroll-y scroll-view-height content-container-height]
|
||||
(let [button-container-height constants/button-height
|
||||
keyboard-view-height (+ keyboard-height button-container-height)]
|
||||
(when keyboard-shown
|
||||
(if
|
||||
platform/android?
|
||||
(< (- scroll-view-height button-container-height) content-container-height)
|
||||
(< (- scroll-view-height keyboard-view-height) (- content-container-height content-scroll-y))))))
|
||||
|
||||
(defn button-container
|
||||
[{:keys [show-keyboard? keyboard-shown show-background? keyboard-height]} children]
|
||||
(let [insets (safe-area/get-insets)
|
||||
height (reagent/atom 0)]
|
||||
(reset! height (if show-keyboard? (if keyboard-shown keyboard-height 0) 0))
|
||||
[rn/view {:style {:margin-top :auto}}
|
||||
(cond
|
||||
(and (> @height 0) show-background?)
|
||||
[blur/view
|
||||
(when keyboard-shown
|
||||
{:blur-amount 34
|
||||
:blur-type :transparent
|
||||
:overlay-color :transparent
|
||||
:background-color (if platform/android? colors/neutral-100 colors/neutral-80-opa-1-blur)
|
||||
:style (style/blur-button-container insets)})
|
||||
children]
|
||||
|
||||
(and (> @height 0) (not show-background?))
|
||||
[rn/view {:style (style/view-button-container true insets)}
|
||||
children]
|
||||
|
||||
(not show-keyboard?)
|
||||
[rn/view {:style (style/view-button-container false insets)}
|
||||
children])]))
|
||||
|
||||
(defn f-view
|
||||
[{:keys [button-props button-label]} header children]
|
||||
(reagent/with-let [scroll-view-height (reagent/atom 0)
|
||||
content-container-height (reagent/atom 0)
|
||||
show-keyboard? (reagent/atom false)
|
||||
content-scroll-y (reagent/atom 0)
|
||||
show-listener (oops/ocall rn/keyboard
|
||||
"addListener"
|
||||
(if platform/android?
|
||||
"keyboardDidShow"
|
||||
"keyboardWillShow")
|
||||
#(reset! show-keyboard? true))
|
||||
hide-listener (oops/ocall rn/keyboard
|
||||
"addListener"
|
||||
(if platform/android?
|
||||
"keyboardDidHide"
|
||||
"keyboardWillHide")
|
||||
#(reset! show-keyboard? false))]
|
||||
|
||||
(let [{:keys [keyboard-shown
|
||||
keyboard-height]} (hooks/use-keyboard)
|
||||
show-background? (show-button-background keyboard-height
|
||||
keyboard-shown
|
||||
@content-scroll-y
|
||||
@scroll-view-height
|
||||
@content-container-height)]
|
||||
|
||||
[rn/view {:style style/page-container}
|
||||
header
|
||||
[rn/scroll-view
|
||||
{:on-layout (fn [event]
|
||||
(let [height (oops/oget event "nativeEvent.layout.height")]
|
||||
(reset! scroll-view-height height)
|
||||
(reset! content-scroll-y 0)))
|
||||
:on-scroll (fn [event]
|
||||
(let [y (oops/oget event "nativeEvent.contentOffset.y")]
|
||||
(reset! content-scroll-y y)))
|
||||
:scroll-event-throttle 64
|
||||
:content-container-style {:flexGrow 1}}
|
||||
[rn/view
|
||||
{:on-layout (fn [event]
|
||||
(let [height (oops/oget event "nativeEvent.layout.height")]
|
||||
(reset! content-container-height height)))}
|
||||
[rn/view
|
||||
children]]]
|
||||
[rn/keyboard-avoiding-view
|
||||
{:style style/keyboard-view-style
|
||||
:pointer-events :box-none}
|
||||
[button-container
|
||||
{:show-keyboard? @show-keyboard?
|
||||
:keyboard-shown keyboard-shown
|
||||
:show-background? show-background?
|
||||
:keyboard-height keyboard-height}
|
||||
[quo/button button-props button-label]]]])
|
||||
(finally
|
||||
(oops/ocall show-listener "remove")
|
||||
(oops/ocall hide-listener "remove"))))
|
||||
|
||||
(defn view
|
||||
[props header children]
|
||||
[:f> f-view props header children])
|
||||
@@ -1,12 +1,21 @@
|
||||
(ns status-im2.common.home.top-nav.view
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[react-native.core :as rn]
|
||||
[status-im.multiaccounts.core :as multiaccounts]
|
||||
[status-im2.common.home.top-nav.style :as style]
|
||||
[status-im2.constants :as constants]
|
||||
[utils.debounce :refer [dispatch-and-chill]]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(defn connectivity-sheet
|
||||
[]
|
||||
(let [peers-count (rf/sub [:peers-count])
|
||||
network-type (rf/sub [:network/type])]
|
||||
[rn/view
|
||||
[quo/text {:accessibility-label :peers-network-type-text} (str "NETWORK TYPE: " network-type)]
|
||||
[quo/text {:accessibility-label :peers-count-text} (str "PEERS COUNT: " peers-count)]]))
|
||||
|
||||
(defn view
|
||||
"[top-nav props]
|
||||
props
|
||||
@@ -21,6 +30,7 @@
|
||||
avatar {:online? online?
|
||||
:full-name (multiaccounts/displayed-name account)
|
||||
:profile-picture (multiaccounts/displayed-photo account)}
|
||||
network-type (rf/sub [:network/type])
|
||||
unread-count (rf/sub [:activity-center/unread-count])
|
||||
indicator (rf/sub [:activity-center/unread-indicator])
|
||||
notification-type (case indicator
|
||||
@@ -31,15 +41,22 @@
|
||||
; https://github.com/status-im/status-mobile/issues/17102
|
||||
nil)]
|
||||
[quo/top-nav
|
||||
{:avatar-on-press #(rf/dispatch [:navigate-to :my-profile])
|
||||
:scan-on-press #(js/alert "to be implemented")
|
||||
:activity-center-on-press #(rf/dispatch [:activity-center/open])
|
||||
:qr-code-on-press #(dispatch-and-chill [:open-modal :share-shell] 1000)
|
||||
:container-style (merge style/top-nav-container container-style)
|
||||
:blur? blur?
|
||||
:jump-to? jump-to?
|
||||
:customization-color customization-color
|
||||
:avatar-props avatar
|
||||
:max-unread-notifications constants/activity-center-max-unread-count
|
||||
:notification-count unread-count
|
||||
:notification notification-type}]))
|
||||
{:avatar-on-press #(rf/dispatch [:navigate-to :my-profile])
|
||||
:scan-on-press #(js/alert "to be implemented")
|
||||
:activity-center-on-press #(rf/dispatch [:activity-center/open])
|
||||
:qr-code-on-press #(dispatch-and-chill [:open-modal :share-shell] 1000)
|
||||
:container-style (merge style/top-nav-container container-style)
|
||||
:blur? blur?
|
||||
:jump-to? jump-to?
|
||||
:customization-color customization-color
|
||||
:avatar-props avatar
|
||||
:max-unread-notifications constants/activity-center-max-unread-count
|
||||
:notification-count unread-count
|
||||
:notification notification-type
|
||||
:for-qa-only-cellular-network {:accessibility-label :on-cellular-network
|
||||
:on-press #(rf/dispatch [:show-bottom-sheet
|
||||
{:content connectivity-sheet}])}
|
||||
:for-qa-only-no-network {:accessibility-label :no-network-connection
|
||||
:on-press #(rf/dispatch [:show-bottom-sheet
|
||||
{:content connectivity-sheet}])}
|
||||
:for-qa-only-network-type network-type}]))
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
(ns status-im2.contexts.chat.camera.view
|
||||
(:require
|
||||
[oops.core :refer [oget]]
|
||||
[quo.core :as quo]
|
||||
[quo.foundations.colors :as colors]
|
||||
[react-native.camera-kit :as camera-kit]
|
||||
@@ -71,12 +70,13 @@
|
||||
|
||||
(defn zoom-buttons
|
||||
[]
|
||||
(fn [top insets rotate current-zoom]
|
||||
[rn/view {:style (style/zoom-container top insets)}
|
||||
[zoom-button {:value 0.5 :current-zoom current-zoom :rotate rotate}]
|
||||
[zoom-button {:value 1 :current-zoom current-zoom :rotate rotate}]
|
||||
[zoom-button {:value 2 :current-zoom current-zoom :rotate rotate}]
|
||||
[zoom-button {:value 3 :current-zoom current-zoom :rotate rotate}]]))
|
||||
(let [current-zoom (reagent/atom 1)]
|
||||
(fn [top insets rotate]
|
||||
[rn/view {:style (style/zoom-container top insets)}
|
||||
[zoom-button {:value 0.5 :current-zoom current-zoom :rotate rotate}]
|
||||
[zoom-button {:value 1 :current-zoom current-zoom :rotate rotate}]
|
||||
[zoom-button {:value 2 :current-zoom current-zoom :rotate rotate}]
|
||||
[zoom-button {:value 3 :current-zoom current-zoom :rotate rotate}]])))
|
||||
|
||||
|
||||
(defn- f-bottom-area
|
||||
@@ -108,7 +108,7 @@
|
||||
[:f> f-bottom-area args back flip-camera]))
|
||||
|
||||
(defn- f-camera-screen
|
||||
[{:keys [camera-ref uri camera-type current-orientation flash toggle-flash current-zoom]}]
|
||||
[{:keys [camera-ref uri camera-type current-orientation flash toggle-flash]}]
|
||||
(let [window (rn/get-window)
|
||||
{:keys [width height]} window
|
||||
camera-window-height (* width 1.33)
|
||||
@@ -140,13 +140,9 @@
|
||||
{:ref #(reset! camera-ref %)
|
||||
:style (style/camera-window width camera-window-height top)
|
||||
:flash-mode (if @flash :on :off)
|
||||
:camera-type @camera-type
|
||||
:zoom @current-zoom
|
||||
:max-zoom 3
|
||||
:on-zoom (fn [event]
|
||||
(reset! current-zoom (oget event "nativeEvent.zoom")))}])
|
||||
:camera-type @camera-type}])
|
||||
(when-not @uri
|
||||
[zoom-buttons top insets rotate current-zoom])
|
||||
[zoom-buttons top insets rotate])
|
||||
[rn/view {:style (style/confirmation-container insets @uri)}
|
||||
[quo/text
|
||||
{:on-press on-press
|
||||
@@ -175,6 +171,5 @@
|
||||
:camera-type (reagent/atom camera-kit/camera-type-back)
|
||||
:current-orientation (atom orientation/portrait)
|
||||
:flash flash
|
||||
:toggle-flash #(swap! flash not)
|
||||
:current-zoom (reagent/atom 1)}]
|
||||
:toggle-flash #(swap! flash not)}]
|
||||
[:f> f-camera-screen args]))
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
[quo.foundations.colors :as colors]
|
||||
[react-native.core :as rn]
|
||||
[react-native.gesture :as gesture]
|
||||
[react-native.platform :as platform]
|
||||
[react-native.reanimated :as reanimated]
|
||||
[status-im2.contexts.chat.photo-selector.album-selector.style :as style]
|
||||
[utils.i18n :as i18n]
|
||||
@@ -62,25 +61,15 @@
|
||||
|
||||
(defn- f-album-selector
|
||||
[{:keys [scroll-enabled on-scroll]} album? selected-album top]
|
||||
(let [albums (rf/sub [:camera-roll/albums])
|
||||
total-photos-count-android (rf/sub [:camera-roll/total-photos-count-android])
|
||||
total-photos-count-ios (rf/sub [:camera-roll/total-photos-count-ios])
|
||||
albums-sections [{:title no-title
|
||||
:data [(assoc (:smart-album albums)
|
||||
:count
|
||||
(if platform/ios?
|
||||
total-photos-count-ios
|
||||
total-photos-count-android))]}
|
||||
{:title (i18n/label :t/my-albums)
|
||||
:data (:my-albums albums)}]
|
||||
window-height (:height (rn/get-window))]
|
||||
(let [albums (rf/sub [:camera-roll/albums])
|
||||
albums-sections [{:title no-title :data (:smart-albums albums)}
|
||||
{:title (i18n/label :t/my-albums) :data (:my-albums albums)}]
|
||||
window-height (:height (rn/get-window))]
|
||||
[reanimated/view {:style (style/selector-container top)}
|
||||
[gesture/section-list
|
||||
{:data albums-sections
|
||||
:sections albums-sections
|
||||
:render-data {:album? album?
|
||||
:selected-album selected-album
|
||||
:top top}
|
||||
:render-data {:album? album? :selected-album selected-album :top top}
|
||||
:render-fn render-album
|
||||
:sticky-section-headers-enabled false
|
||||
:render-section-header-fn section-header
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
[react-native.core :as rn]
|
||||
[react-native.image-resizer :as image-resizer]
|
||||
[react-native.permissions :as permissions]
|
||||
[react-native.platform :as platform]
|
||||
[status-im2.constants :as constants]
|
||||
[taoensso.timbre :as log]
|
||||
[utils.i18n :as i18n]
|
||||
@@ -57,25 +56,25 @@
|
||||
|
||||
(defn get-albums
|
||||
[callback]
|
||||
(let [albums (atom {:smart-album []
|
||||
:my-albums []})]
|
||||
(let [albums (atom {:smart-albums []
|
||||
:my-albums []})]
|
||||
;; Get the "recent" album first
|
||||
(cameraroll/get-photos
|
||||
{:first 1 :groupTypes "All" :assetType "Photos"}
|
||||
{:first 1 :groupTypes "All"}
|
||||
(fn [res-recent]
|
||||
(swap! albums assoc
|
||||
:smart-album
|
||||
{:title (i18n/label :t/recent)
|
||||
:uri (get-in (first (:edges res-recent)) [:node :image :uri])})
|
||||
:smart-albums
|
||||
[{:title (i18n/label :t/recent)
|
||||
:uri (get-in (first (:edges res-recent)) [:node :image :uri])}])
|
||||
;; Get albums, then loop over albums and get each one's cover (first photo)
|
||||
(cameraroll/get-albums
|
||||
{:assetType "Photos"}
|
||||
{:assetType :Photos}
|
||||
(fn [res-albums]
|
||||
(let [response-count (count res-albums)]
|
||||
(if (pos? response-count)
|
||||
(doseq [album res-albums]
|
||||
(cameraroll/get-photos
|
||||
{:first 1 :groupTypes "Albums" :groupName (:title album) :assetType "Photos"}
|
||||
{:first 1 :groupTypes "Albums" :groupName (:title album)}
|
||||
(fn [res]
|
||||
(let [uri (get-in (first (:edges res)) [:node :image :uri])]
|
||||
(swap! albums update :my-albums conj (merge album {:uri uri}))
|
||||
@@ -84,42 +83,21 @@
|
||||
(callback @albums))))))
|
||||
(callback @albums)))))))))
|
||||
|
||||
(defn get-photos-count-ios-fx
|
||||
[cb]
|
||||
(cameraroll/get-photos-count-ios cb))
|
||||
|
||||
(re-frame/reg-fx
|
||||
:camera-roll-get-albums
|
||||
(fn []
|
||||
(get-albums #(re-frame/dispatch [:on-camera-roll-get-albums %]))))
|
||||
|
||||
(re-frame/reg-fx
|
||||
:camera-roll-get-photos-count-ios
|
||||
(fn []
|
||||
(when platform/ios?
|
||||
(get-photos-count-ios-fx #(re-frame/dispatch [:on-camera-roll-get-images-count-ios %])))))
|
||||
|
||||
(rf/defn on-camera-roll-get-albums
|
||||
{:events [:on-camera-roll-get-albums]}
|
||||
[{:keys [db]} albums]
|
||||
{:db (assoc db :camera-roll/albums albums)
|
||||
:dispatch [:photo-selector/camera-roll-get-ios-photo-count]})
|
||||
|
||||
(rf/defn get-photos-count-ios
|
||||
{:events [:on-camera-roll-get-images-count-ios]}
|
||||
[{:keys [db]} count]
|
||||
{:db (assoc db :camera-roll/ios-images-count count)})
|
||||
{:db (assoc db :camera-roll/albums albums)})
|
||||
|
||||
(rf/defn camera-roll-get-albums
|
||||
{:events [:photo-selector/camera-roll-get-albums]}
|
||||
[_]
|
||||
{:camera-roll-get-albums nil})
|
||||
|
||||
(rf/defn camera-roll-get-ios-photo-count
|
||||
{:events [:photo-selector/camera-roll-get-ios-photo-count]}
|
||||
[_]
|
||||
{:camera-roll-get-photos-count-ios nil})
|
||||
|
||||
(rf/defn camera-roll-select-album
|
||||
{:events [:chat.ui/camera-roll-select-album]}
|
||||
[{:keys [db]} album]
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
[album-selector/album-selector sheet album? selected-album top])
|
||||
[:<>
|
||||
[gesture/flat-list
|
||||
{:key-fn #(hash (:uri %))
|
||||
{:key-fn identity
|
||||
:render-fn render-image
|
||||
:render-data {:window-width window-width :selected selected-images}
|
||||
:data camera-roll-photos
|
||||
|
||||
@@ -190,16 +190,16 @@
|
||||
:icon-color (when (= :default info-type) colors/white-70-blur)
|
||||
:style style/info-message}
|
||||
info-message]
|
||||
[rn/view {:style {:margin-top 80}}
|
||||
[quo/text
|
||||
{:size :paragraph-2
|
||||
:weight :medium
|
||||
:style style/color-title}
|
||||
(i18n/label :t/accent-colour)]]
|
||||
[quo/text
|
||||
{:size :paragraph-2
|
||||
:weight :medium
|
||||
:style style/color-title}
|
||||
(i18n/label :t/accent-colour)]
|
||||
[quo/color-picker
|
||||
{:blur? true
|
||||
:default-selected :blue
|
||||
:on-change on-change}]]]]]
|
||||
|
||||
[rn/keyboard-avoiding-view
|
||||
{:style {:position :absolute
|
||||
:top 0
|
||||
|
||||
@@ -119,7 +119,6 @@
|
||||
numbered-keyboard]
|
||||
[status-im2.contexts.quo-preview.onboarding.small-option-card :as
|
||||
small-option-card]
|
||||
[status-im2.contexts.quo-preview.other-components.view :as other-components]
|
||||
[status-im2.contexts.quo-preview.password.tips :as tips]
|
||||
[status-im2.contexts.quo-preview.profile.collectible :as collectible]
|
||||
[status-im2.contexts.quo-preview.profile.profile-card :as profile-card]
|
||||
@@ -175,9 +174,7 @@
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
(def screens-categories
|
||||
{:other-components [{:name :other-components
|
||||
:component other-components/view}]
|
||||
:foundations [{:name :shadows
|
||||
{:foundations [{:name :shadows
|
||||
:component shadows/view}]
|
||||
:animated-list [{:name :animated-header-list
|
||||
:component animated-header-list/mock-screen}]
|
||||
@@ -411,13 +408,13 @@
|
||||
:switchers [{:name :group-messaging-card
|
||||
:component group-messaging-card/view}
|
||||
{:name :switcher-cards
|
||||
:component switcher-cards/view}]
|
||||
:component switcher-cards/preview-switcher-cards}]
|
||||
:tabs [{:name :segmented
|
||||
:component segmented/view}
|
||||
:component segmented/preview-segmented}
|
||||
{:name :tabs
|
||||
:component tabs/view}
|
||||
:component tabs/preview-tabs}
|
||||
{:name :account-selector
|
||||
:component account-selector/view}]
|
||||
:component account-selector/preview-this}]
|
||||
:tags [{:name :context-tags
|
||||
:component context-tags/preview-context-tags}
|
||||
{:name :network-tags
|
||||
@@ -435,7 +432,7 @@
|
||||
{:name :token-tag
|
||||
:component token-tag/preview-token-tag}]
|
||||
:text-combinations [{:name :text-combinations
|
||||
:component text-combinations/view}]
|
||||
:component text-combinations/preview}]
|
||||
:wallet [{:name :account-card :component account-card/preview-account-card}
|
||||
{:name :account-origin :component account-origin/view}
|
||||
{:name :account-overview
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
(ns status-im2.contexts.quo-preview.other-components.style)
|
||||
@@ -1,116 +0,0 @@
|
||||
(ns status-im2.contexts.quo-preview.other-components.view
|
||||
(:require [quo.core :as quo]
|
||||
[re-frame.core :as rf]
|
||||
[react-native.core :as rn]
|
||||
[react-native.safe-area :as safe-area]
|
||||
[reagent.core :as reagent]
|
||||
[status-im2.common.floating-button-page.view :as floating-button-page]))
|
||||
|
||||
(defn view
|
||||
[]
|
||||
(let [button-pressed? (reagent/atom false)
|
||||
acc-height (reagent/atom 300)]
|
||||
(fn []
|
||||
[rn/view
|
||||
{:margin-top (safe-area/get-top)
|
||||
:flex 1
|
||||
:border-width 1
|
||||
:border-color :green}
|
||||
|
||||
#_[rn/view
|
||||
{:style {:position :absolute
|
||||
:top 0
|
||||
:bottom 0
|
||||
:left 0
|
||||
:right 0}}
|
||||
|
||||
[rn/image
|
||||
{:style {:flex 1}
|
||||
:source (resources/get-mock-image :dark-blur-bg)}]]
|
||||
#_[rn/view
|
||||
{:style {:position :absolute
|
||||
:top 10
|
||||
:left 10
|
||||
:right 10
|
||||
:background-color :yellow
|
||||
:height 730
|
||||
:z-index 10}}]
|
||||
|
||||
[floating-button-page/view
|
||||
{:blur? false}
|
||||
#_#_:button-props
|
||||
{:container-style {:z-index 2}
|
||||
:customization-color :army
|
||||
:on-press #(js/alert "to be implemented")}
|
||||
;:button-label "Save address"
|
||||
|
||||
[quo/page-nav
|
||||
{:type :no-title
|
||||
:text-align :left
|
||||
:right-side []
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:navigate-back])}]
|
||||
|
||||
[rn/view
|
||||
{:style {:flex 1
|
||||
;:height @acc-height
|
||||
:overflow :hidden}}
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]
|
||||
[quo/input
|
||||
{:label "label"
|
||||
:value "value"}]]
|
||||
[quo/button
|
||||
{:container-style {:z-index 2}
|
||||
:customization-color (if @button-pressed? :army :blue)
|
||||
:on-press (fn []
|
||||
(prn @acc-height)
|
||||
(swap! acc-height + 20)
|
||||
(swap! button-pressed? not))} ;#(js/alert "to be implemented")
|
||||
"Save address"]
|
||||
|
||||
]
|
||||
#_[rn/view
|
||||
{:position :absolute
|
||||
:top -44
|
||||
:bottom 0
|
||||
:left 10
|
||||
:right 200
|
||||
:height 460
|
||||
:border-width 1
|
||||
:border-color :purple
|
||||
:background-color :yellow
|
||||
:z-index 50}]
|
||||
])))
|
||||
@@ -58,7 +58,6 @@
|
||||
:type :text}
|
||||
(preview/customization-color-option)])
|
||||
|
||||
|
||||
(defn view
|
||||
[]
|
||||
(let [media-server-port (rf/sub [:mediaserver/port])
|
||||
|
||||
@@ -6,27 +6,46 @@
|
||||
[status-im2.contexts.quo-preview.preview :as preview]))
|
||||
|
||||
(def descriptor
|
||||
[{:key :title :type :text}
|
||||
{:key :status
|
||||
[{:label "Title"
|
||||
:key :title
|
||||
:type :text}
|
||||
{:label "Status"
|
||||
:key :status
|
||||
:type :select
|
||||
:options [{:key :read}
|
||||
{:key :unread}
|
||||
{:key :mention}]}
|
||||
{:key :counter-label :type :text}
|
||||
{:key :type
|
||||
:options [{:key :read
|
||||
:value :read}
|
||||
{:key :unread
|
||||
:value :unread}
|
||||
{:key :mention
|
||||
:value :mention}]}
|
||||
{:label "Counter Label"
|
||||
:key :counter-label
|
||||
:type :text}
|
||||
{:label "Type"
|
||||
:key :type
|
||||
:type :select
|
||||
:options [{:key :message
|
||||
:value :text}
|
||||
{:key :photo}
|
||||
{:key :sticker}
|
||||
{:key :gif}
|
||||
{:key :audio}
|
||||
{:key :community}
|
||||
{:key :link}
|
||||
{:key :photo
|
||||
:value :photo}
|
||||
{:key :sticker
|
||||
:value :sticker}
|
||||
{:key :gif
|
||||
:value :gif}
|
||||
{:key :audio
|
||||
:value :audio}
|
||||
{:key :community
|
||||
:value :community}
|
||||
{:key :link
|
||||
:value :link}
|
||||
{:key :code
|
||||
:value :code-snippet}]}
|
||||
{:key :last-message :type :text}
|
||||
{:key :avatar? :type :boolean}
|
||||
{:label "Last Message"
|
||||
:key :last-message
|
||||
:type :text}
|
||||
{:label "Avatar:"
|
||||
:key :avatar?
|
||||
:type :boolean}
|
||||
(preview/customization-color-option)])
|
||||
|
||||
;; Mock data
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
(ns status-im2.contexts.quo-preview.switcher.switcher-cards
|
||||
(:require
|
||||
[quo.foundations.colors :as colors]
|
||||
[react-native.core :as rn]
|
||||
[reagent.core :as reagent]
|
||||
[status-im2.common.resources :as resources]
|
||||
[status-im2.constants :as constants]
|
||||
@@ -9,7 +10,8 @@
|
||||
[status-im2.contexts.shell.jump-to.constants :as shell.constants]))
|
||||
|
||||
(def descriptor
|
||||
[{:key :type
|
||||
[{:label "Type"
|
||||
:key :type
|
||||
:type :select
|
||||
:options [{:key shell.constants/communities-discover
|
||||
:value "Communities Discover"}
|
||||
@@ -31,15 +33,27 @@
|
||||
:value "Wallet Graph"}
|
||||
{:key shell.constants/empty-card
|
||||
:value "Empty Card"}]}
|
||||
{:key :title :type :text}
|
||||
{:key :new-notifications? :type :boolean}
|
||||
{:key :banner? :type :boolean}
|
||||
{:key :notification-indicator
|
||||
{:label "Title"
|
||||
:key :title
|
||||
:type :text}
|
||||
{:label "New Notifications?"
|
||||
:key :new-notifications?
|
||||
:type :boolean}
|
||||
{:label "Banner?"
|
||||
:key :banner?
|
||||
:type :boolean}
|
||||
{:label "Notification Indicator"
|
||||
:key :notification-indicator
|
||||
:type :select
|
||||
:options [{:key :counter}
|
||||
{:key :unread-dot}]}
|
||||
{:key :counter-label :type :text}
|
||||
{:key :content-type
|
||||
:options [{:key :counter
|
||||
:value :counter}
|
||||
{:key :unread-dot
|
||||
:value :unread-dot}]}
|
||||
{:label "Counter Label"
|
||||
:key :counter-label
|
||||
:type :text}
|
||||
{:label "Content Type"
|
||||
:key :content-type
|
||||
:type :select
|
||||
:options [{:key constants/content-type-text
|
||||
:value :text}
|
||||
@@ -55,10 +69,21 @@
|
||||
:value :community}
|
||||
{:key constants/content-type-link
|
||||
:value :link}]}
|
||||
{:key :last-message :type :text}
|
||||
(preview/customization-color-option)])
|
||||
{:label "Last Message"
|
||||
:key :last-message
|
||||
:type :text}
|
||||
{:label "Customization"
|
||||
:key :customization-color
|
||||
:type :select
|
||||
:options
|
||||
(map
|
||||
(fn [c]
|
||||
{:key c
|
||||
:value c})
|
||||
(keys colors/customization))}])
|
||||
|
||||
;; Mocked Data
|
||||
|
||||
(def banner (resources/get-mock-image :community-banner))
|
||||
(def sticker {:source (resources/get-mock-image :sticker)})
|
||||
(def community-avatar {:source (resources/get-mock-image :community-logo)})
|
||||
@@ -126,7 +151,7 @@
|
||||
:else
|
||||
{})))
|
||||
|
||||
(defn view
|
||||
(defn preview-switcher-cards
|
||||
[]
|
||||
(let [state (reagent/atom {:type shell.constants/private-group-chat-card
|
||||
:title "Alisher Yakupov"
|
||||
@@ -140,7 +165,10 @@
|
||||
:preview-label-color colors/white})]
|
||||
(fn []
|
||||
[preview/preview-container
|
||||
{:state state
|
||||
:descriptor descriptor
|
||||
:component-container-style {:padding-vertical 60}}
|
||||
[switcher-cards/card (get-mock-data @state)]])))
|
||||
{:state state
|
||||
:descriptor descriptor}
|
||||
[rn/view {:padding-bottom 150}
|
||||
[rn/view
|
||||
{:padding-vertical 60
|
||||
:align-items :center}
|
||||
[switcher-cards/card (get-mock-data @state)]]]])))
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
(ns status-im2.contexts.quo-preview.tabs.account-selector
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[quo.components.tabs.account-selector :as quo]
|
||||
[react-native.core :as rn]
|
||||
[reagent.core :as reagent]
|
||||
[status-im2.contexts.quo-preview.preview :as preview]))
|
||||
|
||||
(def descriptor
|
||||
[{:key :show-label? :type :boolean}
|
||||
{:key :transparent? :type :boolean}
|
||||
{:key :account-text :type :text}
|
||||
{:key :label-text :type :text}])
|
||||
[{:label "Show Label?:"
|
||||
:key :show-label?
|
||||
:type :boolean}
|
||||
{:label "Transparent Background?:"
|
||||
:key :transparent?
|
||||
:type :boolean}
|
||||
{:label "Account Text"
|
||||
:key :account-text
|
||||
:type :text}
|
||||
{:label "Label Text"
|
||||
:key :label-text
|
||||
:type :text}])
|
||||
|
||||
;; keeping this unused data structure in the code for now
|
||||
;; will reference them when I introduce multiple account support
|
||||
@@ -37,7 +46,7 @@
|
||||
:account-emoji "🍟"
|
||||
:label-text "Label 3"}])
|
||||
|
||||
(defn view
|
||||
(defn preview-this
|
||||
[]
|
||||
(let [state (reagent/atom {:show-label? true
|
||||
:transparent? false
|
||||
@@ -47,7 +56,10 @@
|
||||
:label-text "Label"})]
|
||||
(fn []
|
||||
[preview/preview-container
|
||||
{:state state
|
||||
:descriptor descriptor
|
||||
:component-container-style {:padding-vertical 60}}
|
||||
[quo/account-selector @state]])))
|
||||
{:state state
|
||||
:descriptor descriptor}
|
||||
[rn/view {:padding-bottom 150}
|
||||
[rn/view
|
||||
{:padding-vertical 60
|
||||
:align-items :center}
|
||||
[quo/account-selector @state]]]])))
|
||||
|
||||
@@ -1,44 +1,50 @@
|
||||
(ns status-im2.contexts.quo-preview.tabs.segmented-tab
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[quo.components.tabs.segmented-tab :as quo]
|
||||
[quo.theme :as theme]
|
||||
[react-native.core :as rn]
|
||||
[reagent.core :as reagent]
|
||||
[status-im2.contexts.quo-preview.preview :as preview]))
|
||||
|
||||
(def descriptor
|
||||
[{:key :size
|
||||
[{:label "Size:"
|
||||
:key :size
|
||||
:type :select
|
||||
:options [{:key 28
|
||||
:value "28"}
|
||||
{:key 20
|
||||
:value "20"}]}
|
||||
{:key :blur?
|
||||
:type :boolean}])
|
||||
{:label "Blur?"
|
||||
:key :blur?
|
||||
:type :boolean}])
|
||||
|
||||
(defn view
|
||||
(defn preview-segmented
|
||||
[]
|
||||
(let [state (reagent/atom {:size 32
|
||||
:blur? false})]
|
||||
(fn []
|
||||
[preview/preview-container
|
||||
{:state state
|
||||
:descriptor descriptor
|
||||
:blur? (:blur? @state)
|
||||
:show-blur-background? true
|
||||
:component-container-style {:padding-vertical 60}}
|
||||
[:<>
|
||||
[quo/segmented-control
|
||||
(assoc @state
|
||||
:default-active 1
|
||||
:data [{:id 1 :label "Tab 1"}
|
||||
{:id 2 :label "Tab 2"}
|
||||
{:id 3 :label "Tab 3"}
|
||||
{:id 4 :label "Tab 4"}]
|
||||
:on-change #(println "Active tab" %))]
|
||||
[rn/view {:style {:padding-top 24}}
|
||||
[quo/segmented-control
|
||||
(assoc @state
|
||||
:default-active 1
|
||||
:data [{:id 1 :label "Tab 1"}
|
||||
{:id 2 :label "Tab 2"}]
|
||||
:on-change #(println "Active tab" %))]]]])))
|
||||
{:state state
|
||||
:descriptor descriptor}
|
||||
[rn/view {:padding-bottom 150}
|
||||
[preview/blur-view
|
||||
{:show-blur-background? (:blur? @state)
|
||||
:height 200
|
||||
:style {:width "100%"}
|
||||
:blur-view-props {:blur-type (theme/get-theme)}}
|
||||
[:<>
|
||||
[quo/segmented-control
|
||||
(merge @state
|
||||
{:default-active 1
|
||||
:data [{:id 1 :label "Tab 1"}
|
||||
{:id 2 :label "Tab 2"}
|
||||
{:id 3 :label "Tab 3"}
|
||||
{:id 4 :label "Tab 4"}]
|
||||
:on-change #(println "Active tab" %)})]
|
||||
[rn/view {:style {:padding-top 24}}
|
||||
[quo/segmented-control
|
||||
(merge @state
|
||||
{:default-active 1
|
||||
:data [{:id 1 :label "Tab 1"}
|
||||
{:id 2 :label "Tab 2"}]
|
||||
:on-change #(println "Active tab" %)})]]]]]])))
|
||||
|
||||
@@ -1,18 +1,24 @@
|
||||
(ns status-im2.contexts.quo-preview.tabs.tabs
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[react-native.core :as rn]
|
||||
[reagent.core :as reagent]
|
||||
[status-im2.contexts.quo-preview.preview :as preview]))
|
||||
|
||||
(def descriptor
|
||||
[{:key :size
|
||||
[{:label "Size:"
|
||||
:key :size
|
||||
:type :select
|
||||
:options [{:key 32
|
||||
:value "32"}
|
||||
{:key 24
|
||||
:value "24"}]}
|
||||
{:key :unread-indicators? :type :boolean}
|
||||
{:key :scrollable? :type :boolean}])
|
||||
{:label "Show unread indicators?"
|
||||
:key :unread-indicators?
|
||||
:type :boolean}
|
||||
{:label "Scrollable:"
|
||||
:key :scrollable?
|
||||
:type :boolean}])
|
||||
|
||||
(defn generate-tab-items
|
||||
[length unread-indicators?]
|
||||
@@ -22,25 +28,27 @@
|
||||
:label (str "Tab " (inc index))
|
||||
:notification-dot? (and unread-indicators? (zero? (rem index 2)))}))
|
||||
|
||||
(defn view
|
||||
(defn preview-tabs
|
||||
[]
|
||||
(let [state (reagent/atom {:size 32
|
||||
:scrollable? false})]
|
||||
(fn []
|
||||
[preview/preview-container
|
||||
{:state state
|
||||
:descriptor descriptor
|
||||
:component-container-style {:padding-vertical 60
|
||||
:padding-horizontal 20
|
||||
:flex-direction :row
|
||||
:justify-content :center}}
|
||||
[quo/tabs
|
||||
(merge @state
|
||||
{:default-active 1
|
||||
:data (generate-tab-items (if (:scrollable? @state) 15 4)
|
||||
(:unread-indicators? @state))
|
||||
:on-change #(println "Active tab" %)}
|
||||
(when (:scrollable? @state)
|
||||
{:scroll-on-press? true
|
||||
:fade-end-percentage 0.4
|
||||
:fade-end? true}))]])))
|
||||
{:state state
|
||||
:descriptor descriptor}
|
||||
[rn/view {:padding-bottom 150}
|
||||
[rn/view
|
||||
{:padding-vertical 60
|
||||
:padding-horizontal 20
|
||||
:flex-direction :row
|
||||
:justify-content :center}
|
||||
[quo/tabs
|
||||
(merge @state
|
||||
{:default-active 1
|
||||
:data (generate-tab-items (if (:scrollable? @state) 15 4)
|
||||
(:unread-indicators? @state))
|
||||
:on-change #(println "Active tab" %)}
|
||||
(when (:scrollable? @state)
|
||||
{:scroll-on-press? true
|
||||
:fade-end-percentage 0.4
|
||||
:fade-end? true}))]]]])))
|
||||
|
||||
@@ -1,15 +1,28 @@
|
||||
(ns status-im2.contexts.quo-preview.text-combinations.preview
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[quo.components.text-combinations.view :as quo]
|
||||
[react-native.core :as rn]
|
||||
[reagent.core :as reagent]
|
||||
[status-im2.common.resources :as resources]
|
||||
[status-im2.contexts.quo-preview.preview :as preview]))
|
||||
|
||||
(def descriptor
|
||||
[{:key :title :type :text}
|
||||
{:key :avatar :type :boolean}
|
||||
{:key :description
|
||||
:type :text}])
|
||||
[{:label "Title"
|
||||
:key :title
|
||||
:type :text}
|
||||
{:label :avatar
|
||||
:key :avatar
|
||||
:type :boolean}
|
||||
{:label "Description type:"
|
||||
:key :description
|
||||
:type :select
|
||||
:options [{:key :none
|
||||
:value nil}
|
||||
{:key :description
|
||||
:value :description}]}
|
||||
{:label "Description text"
|
||||
:key :description-props
|
||||
:type :text}])
|
||||
|
||||
(defn state->text-combinations-props
|
||||
[state]
|
||||
@@ -17,15 +30,20 @@
|
||||
(assoc state :avatar (resources/get-mock-image :user-picture-male4))
|
||||
state))
|
||||
|
||||
(defn view
|
||||
(defn preview
|
||||
[]
|
||||
(let [state (reagent/atom {:title "Title"
|
||||
:title-accessibility-label :title
|
||||
:description ""
|
||||
:description nil
|
||||
:description-props ""
|
||||
:description-accessibility-label :subtitle})]
|
||||
(fn []
|
||||
[preview/preview-container
|
||||
{:state state
|
||||
:descriptor descriptor
|
||||
:component-container-style {:padding-vertical 60}}
|
||||
[quo/text-combinations (state->text-combinations-props @state)]])))
|
||||
{:state state
|
||||
:descriptor descriptor}
|
||||
[rn/view {:padding-bottom 150}
|
||||
[rn/view
|
||||
{:padding-vertical 60
|
||||
:align-items :center}
|
||||
[quo/view
|
||||
(state->text-combinations-props @state)]]]])))
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
(ns status-im2.contexts.wallet.common.account-subtitle.view
|
||||
(:require [quo.core :as quo]
|
||||
[quo.foundations.colors :as colors]))
|
||||
|
||||
(defn view
|
||||
[{:keys [address theme networks]}]
|
||||
[quo/text {:size :paragraph-2}
|
||||
(map (fn [{:keys [short-name network-name]}]
|
||||
^{:key (str network-name)}
|
||||
[quo/text
|
||||
{:size :paragraph-2
|
||||
:weight :medium
|
||||
:style {:color (colors/resolve-color network-name theme)}}
|
||||
(str short-name ":")])
|
||||
networks)
|
||||
[quo/text
|
||||
{:size :paragraph-2
|
||||
:weight :monospace}
|
||||
address]])
|
||||
@@ -7,7 +7,6 @@
|
||||
[status-im2.common.resources :as status.resources]
|
||||
[status-im2.constants :as constants]
|
||||
[status-im2.contexts.wallet.common.utils :as utils]
|
||||
[status-im2.contexts.wallet.save-address.view :as save-address]
|
||||
[utils.i18n :as i18n]
|
||||
[utils.re-frame :as rf]))
|
||||
|
||||
@@ -27,14 +26,8 @@
|
||||
"Navigate to Account"]
|
||||
[quo/button {:on-press #(rf/dispatch [:navigate-to :wallet-create-account])}
|
||||
"Create Account"]
|
||||
[quo/button
|
||||
{:on-press #(rf/dispatch [:open-modal :wallet-save-address
|
||||
{:sheet? true
|
||||
:theme :light
|
||||
:gradient-cover? true
|
||||
:customization-color :blue
|
||||
:content save-address/view}])}
|
||||
"Save Address Bottom Sheet"]])
|
||||
[quo/button {:on-press #(rf/dispatch [:navigate-to :wallet-saved-addresses])}
|
||||
"Saved Addresses"]])
|
||||
|
||||
(def wallet-overview-state
|
||||
{:state :default
|
||||
@@ -89,28 +82,29 @@
|
||||
:id 6}])
|
||||
|
||||
(def collectible-details
|
||||
{:name "#5946"
|
||||
:description "Bored Ape Yacht Club"
|
||||
:image (status.resources/get-mock-image :collectible-monkey)
|
||||
:collection-image (status.resources/get-mock-image :bored-ape)
|
||||
:traits [{:title "Background"
|
||||
:subtitle "Blue"
|
||||
:id 1}
|
||||
{:title "Clothes"
|
||||
:subtitle "Bayc T Black"
|
||||
:id 2}
|
||||
{:title "Eyes"
|
||||
:subtitle "Sleepy"
|
||||
:id 3}
|
||||
{:title "Fur"
|
||||
:subtitle "Black"
|
||||
:id 4}
|
||||
{:title "Hat"
|
||||
:subtitle "Beanie"
|
||||
:id 5}
|
||||
{:title "Mouth"
|
||||
:subtitle "Bored Pipe"
|
||||
:id 6}]})
|
||||
nil
|
||||
#_{:name "#5946"
|
||||
:description "Bored Ape Yacht Club"
|
||||
:image (status.resources/get-mock-image :collectible-monkey)
|
||||
:collection-image (status.resources/get-mock-image :bored-ape)
|
||||
:traits [{:title "Background"
|
||||
:subtitle "Blue"
|
||||
:id 1}
|
||||
{:title "Clothes"
|
||||
:subtitle "Bayc T Black"
|
||||
:id 2}
|
||||
{:title "Eyes"
|
||||
:subtitle "Sleepy"
|
||||
:id 3}
|
||||
{:title "Fur"
|
||||
:subtitle "Black"
|
||||
:id 4}
|
||||
{:title "Hat"
|
||||
:subtitle "Beanie"
|
||||
:id 5}
|
||||
{:title "Mouth"
|
||||
:subtitle "Bored Pipe"
|
||||
:id 6}]})
|
||||
|
||||
(def account-overview-state
|
||||
{:current-value "€0.00"
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
(ns status-im2.contexts.wallet.save-address.style
|
||||
(:require
|
||||
[quo.foundations.colors :as colors]))
|
||||
|
||||
(def color-picker-container
|
||||
{:padding-vertical 12})
|
||||
|
||||
(defn color-label
|
||||
[theme]
|
||||
{:color (colors/theme-colors colors/neutral-50 colors/neutral-40 theme)
|
||||
:padding-bottom 4
|
||||
:padding-horizontal 20})
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
(ns status-im2.contexts.wallet.save-address.view
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[quo.theme :as quo.theme]
|
||||
[re-frame.core :as rf]
|
||||
[react-native.core :as rn]
|
||||
[reagent.core :as reagent]
|
||||
[status-im2.common.floating-button-page.view :as floating-button-page]
|
||||
[status-im2.contexts.wallet.common.account-subtitle.view :as subtitle]
|
||||
[status-im2.contexts.wallet.save-address.style :as style]
|
||||
[utils.i18n :as i18n]))
|
||||
|
||||
(defn- f-view
|
||||
[_]
|
||||
(let [account-color (reagent/atom :blue)
|
||||
address-name (reagent/atom "")
|
||||
address (reagent/atom "0x39cf6E0Ba4C4530735616e1Ee7ff5FbCB726fBd2")]
|
||||
(fn [{:keys [theme]}]
|
||||
[floating-button-page/view
|
||||
[quo/page-nav
|
||||
{:type :no-title
|
||||
:text-align :left
|
||||
:right-side []
|
||||
:background :blur
|
||||
:icon-name :i/close
|
||||
:on-press #(rf/dispatch [:dismiss-modal :wallet-save-address])}]
|
||||
|
||||
[rn/view {:style {:flex 1}}
|
||||
[quo/wallet-user-avatar
|
||||
{:container-style {:margin-bottom 12
|
||||
:margin-horizontal 20}
|
||||
:f-name @address-name
|
||||
:l-name @address-name
|
||||
:customization-color @account-color}]
|
||||
[quo/title-input
|
||||
{:blur? true
|
||||
:on-change-text #(reset! address-name %)
|
||||
:auto-focus true
|
||||
:placeholder "Address Name"
|
||||
:max-length 24
|
||||
:container-style {:margin-bottom 16
|
||||
:margin-horizontal 20}}]
|
||||
[quo/divider-line]
|
||||
[rn/view
|
||||
{:style style/color-picker-container}
|
||||
[quo/text
|
||||
{:size :paragraph-2
|
||||
:weight :medium
|
||||
:style (style/color-label theme)}
|
||||
(i18n/label :t/colour)]
|
||||
[quo/color-picker
|
||||
{:default-selected @account-color
|
||||
:on-change #(reset! account-color %)
|
||||
:container-style {:padding-horizontal 12
|
||||
:padding-vertical 12}}]]
|
||||
[quo/divider-line]
|
||||
[quo/data-item
|
||||
{:container-style {:margin-top 20
|
||||
:margin-horizontal 20}
|
||||
:description :default
|
||||
:on-press #(js/alert "to be implemented")
|
||||
:icon-right? true
|
||||
:right-icon :i/advanced
|
||||
:card? true
|
||||
:label :none
|
||||
:status :default
|
||||
:size :default
|
||||
:title "Address"
|
||||
:customization-color @account-color
|
||||
:custom-subtitle (fn [] [subtitle/view
|
||||
{:networks [{:short-name "eth"
|
||||
:network-name :ethereum}
|
||||
{:short-name "arb1"
|
||||
:network-name :arbitrum}
|
||||
{:short-name "opt"
|
||||
:network-name :optimism}]
|
||||
:address @address}])}]]
|
||||
|
||||
[quo/button
|
||||
{:container-style {:z-index 2}
|
||||
:customization-color @account-color
|
||||
:on-press #(js/alert "to be implemented")}
|
||||
"Save address"]])))
|
||||
|
||||
(defn view-internal [props] [:f> f-view props])
|
||||
|
||||
(def view (quo.theme/with-theme view-internal))
|
||||
@@ -0,0 +1,16 @@
|
||||
(ns status-im2.contexts.wallet.saved-address.view
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[re-frame.core :as rf]
|
||||
[react-native.core :as rn]))
|
||||
|
||||
(defn view
|
||||
[]
|
||||
[rn/view
|
||||
{:style {:flex 1
|
||||
:align-items :center
|
||||
:justify-content :center}}
|
||||
|
||||
[quo/text {} "SAVED ADDRESS"]
|
||||
[quo/button {:on-press #(rf/dispatch [:navigate-back])}
|
||||
"NAVIGATE BACK"]])
|
||||
@@ -14,5 +14,6 @@
|
||||
[quo/text {} "SAVED ADDRESSES"]
|
||||
[quo/button {:on-press #(rf/dispatch [:navigate-to :wallet-saved-address])}
|
||||
"NAVIGATE TO SAVED ADDRESS"]
|
||||
[quo/divider-label]
|
||||
[quo/button {:on-press #(rf/dispatch [:navigate-back])}
|
||||
"NAVIGATE BACK"]])
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
[status-im2.contexts.wallet.collectible.view :as wallet-collectible]
|
||||
[status-im2.contexts.wallet.create-account.view :as wallet-create-account]
|
||||
[status-im2.contexts.wallet.edit-account.view :as wallet-edit-account]
|
||||
[status-im2.contexts.wallet.save-address.view :as wallet-save-address]
|
||||
[status-im2.contexts.wallet.saved-address.view :as wallet-saved-address]
|
||||
[status-im2.contexts.wallet.saved-addresses.view :as wallet-saved-addresses]
|
||||
[status-im2.contexts.wallet.scan-account.view :as scan-address]
|
||||
[status-im2.contexts.wallet.send.select-address.view :as wallet-select-address]
|
||||
@@ -256,8 +256,8 @@
|
||||
{:name :wallet-create-account
|
||||
:component wallet-create-account/view}
|
||||
|
||||
{:name :wallet-save-address
|
||||
:component wallet-save-address/view}
|
||||
{:name :wallet-saved-address
|
||||
:component wallet-saved-address/view}
|
||||
|
||||
{:name :wallet-saved-addresses
|
||||
:component wallet-saved-addresses/view}
|
||||
|
||||
@@ -454,18 +454,3 @@
|
||||
[(re-frame/subscribe [:chats/chat (str community-id channel-id)])])
|
||||
(fn [[chat]]
|
||||
(:muted? chat)))
|
||||
|
||||
(re-frame/reg-sub
|
||||
:camera-roll/total-photos-count-android
|
||||
(fn [{:keys [camera-roll/albums]}]
|
||||
(->> albums
|
||||
:my-albums
|
||||
(reduce
|
||||
(fn [total-album-count current-album]
|
||||
(+ total-album-count (:count current-album)))
|
||||
0))))
|
||||
|
||||
(re-frame/reg-sub
|
||||
:camera-roll/total-photos-count-ios
|
||||
(fn [{:keys [camera-roll/ios-images-count]}]
|
||||
ios-images-count))
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"_comment": "Instead use: scripts/update-status-go.sh <rev>",
|
||||
"owner": "status-im",
|
||||
"repo": "status-go",
|
||||
"version": "v0.171.1",
|
||||
"commit-sha1": "3326362b90ba3b853118ac0aa3be8502fc1aed4f",
|
||||
"src-sha256": "1npjwhvckmldjy1p7mc6rml8i21mb23409mgl13dzysmlqkppqb1"
|
||||
"version": "build_test_b",
|
||||
"commit-sha1": "472374bb39824afefa11adc153387557fc36bd7a",
|
||||
"src-sha256": "1srysz1y2l4jcdmcs0aa3qp7q6qn2pdfmqd8znnbz18mcjdhm9i5"
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@ class TestActivityCenterContactRequestMultipleDevicePR(MultipleSharedDeviceTestC
|
||||
self.device_2.create_user(third_user=True, username=new_username_2)
|
||||
|
||||
self.device_2.just_fyi('Device2 sends a contact request to Device1 using his profile link')
|
||||
self.home_2.driver.set_clipboard_text("https://status.app/u/" + self.public_key_1)
|
||||
self.home_2.driver.set_clipboard_text("https://join.status.im/u/" + self.public_key_1)
|
||||
self.home_2.chats_tab.click()
|
||||
self.home_2.new_chat_button.click_until_presence_of_element(self.home_2.add_a_contact_chat_bottom_sheet_button)
|
||||
self.home_2.add_a_contact_chat_bottom_sheet_button.click()
|
||||
|
||||
@@ -2188,10 +2188,6 @@
|
||||
dependencies:
|
||||
merge-options "^3.0.4"
|
||||
|
||||
"@react-native-camera-roll/camera-roll@git+https://github.com/status-im/react-native-camera-roll.git#refs/tags/v5.1.1.1":
|
||||
version "5.10.0"
|
||||
resolved "git+https://github.com/status-im/react-native-camera-roll.git#174f8c6ad88e5bad9d9bd207f42173e567ec3138"
|
||||
|
||||
"@react-native-community/audio-toolkit@git+https://github.com/tbenr/react-native-audio-toolkit.git#refs/tags/v2.0.3-status-v6":
|
||||
version "2.0.3"
|
||||
resolved "git+https://github.com/tbenr/react-native-audio-toolkit.git#7ae9055cf6169b30f5089bda7bfcfc1c40a715e5"
|
||||
@@ -2204,6 +2200,10 @@
|
||||
version "4.3.3"
|
||||
resolved "git+https://github.com/status-im/react-native-blur#c140cc8e7d54e3318af0a7c149b5d64b54de3419"
|
||||
|
||||
"@react-native-community/cameraroll@git+https://github.com/status-im/react-native-cameraroll.git#refs/tags/v4.0.4-status.0":
|
||||
version "4.0.4"
|
||||
resolved "git+https://github.com/status-im/react-native-cameraroll.git#337c5a515e9b0f0728882f73568075553415f523"
|
||||
|
||||
"@react-native-community/cli-clean@^8.0.4":
|
||||
version "8.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-8.0.4.tgz#97e16a20e207b95de12e29b03816e8f2b2c80cc7"
|
||||
@@ -7018,6 +7018,11 @@ lodash@^3.10.0:
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
|
||||
integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
|
||||
|
||||
lodash@^4.14.2:
|
||||
version "4.17.19"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
|
||||
integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
|
||||
|
||||
lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15:
|
||||
version "4.17.15"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
|
||||
@@ -8769,10 +8774,12 @@ react-native-blob-util@^0.13.18:
|
||||
base-64 "0.1.0"
|
||||
glob "^7.1.6"
|
||||
|
||||
react-native-camera-kit@14.0.0-beta13:
|
||||
version "14.0.0-beta13"
|
||||
resolved "https://registry.yarnpkg.com/react-native-camera-kit/-/react-native-camera-kit-14.0.0-beta13.tgz#7d1c40571e7e7ce2c4b6bd6f58807f7573217c3c"
|
||||
integrity sha512-49q6l/Y3j1QMUDPGqIqkUzdraNtKWVQz5X4U8qfixSe+MeWe0N1vWlWWr8iH1apxQCS5v0dKPlYot0e3VKy05g==
|
||||
react-native-camera-kit@^13.0.0:
|
||||
version "13.0.0"
|
||||
resolved "https://registry.yarnpkg.com/react-native-camera-kit/-/react-native-camera-kit-13.0.0.tgz#983d9146cdeb0ec0cb0c0a86b7fa5f7690df08f6"
|
||||
integrity sha512-fnkyivCG2xzS+14/doP8pCAYNafYaTyg5J0t+JJltJdgKSHf328OG44Rd+fnbbEOydZxgy/bcuLB24R0kCbynw==
|
||||
dependencies:
|
||||
lodash "^4.14.2"
|
||||
|
||||
react-native-codegen@^0.69.2:
|
||||
version "0.69.2"
|
||||
|
||||
Reference in New Issue
Block a user