mirror of
https://github.com/status-im/status-mobile.git
synced 2025-01-13 10:16:01 +00:00
Mobile UI on desktop can be enabled in .env file
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
This commit is contained in:
parent
e6bd5c5016
commit
32f7f91e32
1
.env
1
.env
@ -20,3 +20,4 @@ RPC_NETWORKS_ONLY=0
|
|||||||
STICKERS_ENABLED=1
|
STICKERS_ENABLED=1
|
||||||
PARTITIONED_TOPIC=0
|
PARTITIONED_TOPIC=0
|
||||||
CONTRACT_NODES=1
|
CONTRACT_NODES=1
|
||||||
|
MOBILE_UI_FOR_DESKTOP=0
|
||||||
|
@ -83,6 +83,7 @@
|
|||||||
"text-encoding"
|
"text-encoding"
|
||||||
"js-sha3"
|
"js-sha3"
|
||||||
"web3-utils"
|
"web3-utils"
|
||||||
|
"react-navigation"
|
||||||
"hi-base32"]
|
"hi-base32"]
|
||||||
|
|
||||||
;; Resoures
|
;; Resoures
|
||||||
|
@ -68,7 +68,7 @@
|
|||||||
"querystring-es3": "0.2.1",
|
"querystring-es3": "0.2.1",
|
||||||
"react": "16.6.1",
|
"react": "16.6.1",
|
||||||
"react-dom": "16.4.2",
|
"react-dom": "16.4.2",
|
||||||
"react-native": "git+https://github.com/status-im/react-native-desktop.git#v0.57.8_1",
|
"react-native": "git+https://github.com/status-im/react-native-desktop.git#v0.57.8_8",
|
||||||
"react-native-background-timer": "2.0.0",
|
"react-native-background-timer": "2.0.0",
|
||||||
"react-native-camera": "0.10.0",
|
"react-native-camera": "0.10.0",
|
||||||
"react-native-config": "git+https://github.com/status-im/react-native-config.git#v0.11.2-status",
|
"react-native-config": "git+https://github.com/status-im/react-native-config.git#v0.11.2-status",
|
||||||
@ -91,7 +91,8 @@
|
|||||||
"react-native-tcp": "3.3.0",
|
"react-native-tcp": "3.3.0",
|
||||||
"react-native-udp": "2.2.1",
|
"react-native-udp": "2.2.1",
|
||||||
"react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#0.33.16-status-rn049-desktop",
|
"react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#0.33.16-status-rn049-desktop",
|
||||||
"realm": "git+https://github.com/status-im/realm-js.git#heads/v2.20.1",
|
"react-navigation": "^2.12.1",
|
||||||
|
"realm": "git+https://github.com/status-im/realm-js.git#v2.20.1",
|
||||||
"rn-snoopy": "git+https://github.com/status-im/rn-snoopy.git#v2.0.2-status",
|
"rn-snoopy": "git+https://github.com/status-im/rn-snoopy.git#v2.0.2-status",
|
||||||
"status-conan": "git+https://github.com/status-im/status-conan.git#v1.0.0",
|
"status-conan": "git+https://github.com/status-im/status-conan.git#v1.0.0",
|
||||||
"string_decoder": "0.10.31",
|
"string_decoder": "0.10.31",
|
||||||
|
@ -2273,6 +2273,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
|
|||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
safe-buffer "^5.0.1"
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
|
clamp@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/clamp/-/clamp-1.0.1.tgz#66a0e64011816e37196828fdc8c8c147312c8634"
|
||||||
|
integrity sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=
|
||||||
|
|
||||||
class-extend@^0.1.0, class-extend@^0.1.1:
|
class-extend@^0.1.0, class-extend@^0.1.1:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/class-extend/-/class-extend-0.1.2.tgz#8057a82b00f53f82a5d62c50ef8cffdec6fabc34"
|
resolved "https://registry.yarnpkg.com/class-extend/-/class-extend-0.1.2.tgz#8057a82b00f53f82a5d62c50ef8cffdec6fabc34"
|
||||||
@ -2655,6 +2660,14 @@ create-react-class@^15.6.0, create-react-class@^15.6.3:
|
|||||||
loose-envify "^1.3.1"
|
loose-envify "^1.3.1"
|
||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
|
|
||||||
|
create-react-context@0.2.2:
|
||||||
|
version "0.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.2.tgz#9836542f9aaa22868cd7d4a6f82667df38019dca"
|
||||||
|
integrity sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A==
|
||||||
|
dependencies:
|
||||||
|
fbjs "^0.8.0"
|
||||||
|
gud "^1.0.0"
|
||||||
|
|
||||||
cross-spawn-async@^2.1.1, cross-spawn-async@^2.2.2:
|
cross-spawn-async@^2.1.1, cross-spawn-async@^2.2.2:
|
||||||
version "2.2.5"
|
version "2.2.5"
|
||||||
resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc"
|
resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc"
|
||||||
@ -3604,7 +3617,7 @@ fbjs-scripts@^1.0.0:
|
|||||||
semver "^5.1.0"
|
semver "^5.1.0"
|
||||||
through2 "^2.0.0"
|
through2 "^2.0.0"
|
||||||
|
|
||||||
fbjs@^0.8.16, fbjs@^0.8.9:
|
fbjs@^0.8.0, fbjs@^0.8.16, fbjs@^0.8.9:
|
||||||
version "0.8.17"
|
version "0.8.17"
|
||||||
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
|
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
|
||||||
integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
|
integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
|
||||||
@ -4202,6 +4215,11 @@ gruntfile-editor@^1.0.0:
|
|||||||
ast-query "^2.0.0"
|
ast-query "^2.0.0"
|
||||||
lodash "^4.6.1"
|
lodash "^4.6.1"
|
||||||
|
|
||||||
|
gud@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0"
|
||||||
|
integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==
|
||||||
|
|
||||||
gulp-decompress@^1.2.0:
|
gulp-decompress@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/gulp-decompress/-/gulp-decompress-1.2.0.tgz#8eeb65a5e015f8ed8532cafe28454960626f0dc7"
|
resolved "https://registry.yarnpkg.com/gulp-decompress/-/gulp-decompress-1.2.0.tgz#8eeb65a5e015f8ed8532cafe28454960626f0dc7"
|
||||||
@ -4369,6 +4387,11 @@ hmac-drbg@^1.0.0:
|
|||||||
minimalistic-assert "^1.0.0"
|
minimalistic-assert "^1.0.0"
|
||||||
minimalistic-crypto-utils "^1.0.1"
|
minimalistic-crypto-utils "^1.0.1"
|
||||||
|
|
||||||
|
hoist-non-react-statics@^2.2.0, hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0:
|
||||||
|
version "2.5.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
|
||||||
|
integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
|
||||||
|
|
||||||
home-or-tmp@^3.0.0:
|
home-or-tmp@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb"
|
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb"
|
||||||
@ -6620,6 +6643,13 @@ path-to-regexp@0.1.7:
|
|||||||
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
||||||
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
|
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
|
||||||
|
|
||||||
|
path-to-regexp@^1.7.0:
|
||||||
|
version "1.7.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
|
||||||
|
integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=
|
||||||
|
dependencies:
|
||||||
|
isarray "0.0.1"
|
||||||
|
|
||||||
path-type@^1.0.0:
|
path-type@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
|
||||||
@ -6817,7 +6847,7 @@ prop-types@15.6.0:
|
|||||||
loose-envify "^1.3.1"
|
loose-envify "^1.3.1"
|
||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
|
|
||||||
prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2:
|
prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2:
|
||||||
version "15.6.2"
|
version "15.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
|
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
|
||||||
integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
|
integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
|
||||||
@ -6894,6 +6924,14 @@ query-string@^5.0.1:
|
|||||||
object-assign "^4.1.0"
|
object-assign "^4.1.0"
|
||||||
strict-uri-encode "^1.0.0"
|
strict-uri-encode "^1.0.0"
|
||||||
|
|
||||||
|
query-string@^6.1.0:
|
||||||
|
version "6.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.2.0.tgz#468edeb542b7e0538f9f9b1aeb26f034f19c86e1"
|
||||||
|
integrity sha512-5wupExkIt8RYL4h/FE+WTg3JHk62e6fFPWtAZA9J5IWK1PfTfKkMS93HBUHcFpeYi9KsY5pFbh+ldvEyaz5MyA==
|
||||||
|
dependencies:
|
||||||
|
decode-uri-component "^0.2.0"
|
||||||
|
strict-uri-encode "^2.0.0"
|
||||||
|
|
||||||
querystring-es3@0.2.1:
|
querystring-es3@0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
|
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
|
||||||
@ -6991,6 +7029,16 @@ react-dom@16.4.2:
|
|||||||
object-assign "^4.1.1"
|
object-assign "^4.1.1"
|
||||||
prop-types "^15.6.0"
|
prop-types "^15.6.0"
|
||||||
|
|
||||||
|
react-is@^16.5.2:
|
||||||
|
version "16.8.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.1.tgz#a80141e246eb894824fb4f2901c0c50ef31d4cdb"
|
||||||
|
integrity sha512-ioMCzVDWvCvKD8eeT+iukyWrBGrA3DiFYkXfBsVYIRdaREZuBjENG+KjrikavCLasozqRWTwFUagU/O4vPpRMA==
|
||||||
|
|
||||||
|
react-lifecycles-compat@^3, react-lifecycles-compat@^3.0.4:
|
||||||
|
version "3.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
|
||||||
|
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
|
||||||
|
|
||||||
react-native-background-timer@2.0.0:
|
react-native-background-timer@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-background-timer/-/react-native-background-timer-2.0.0.tgz#afdac10b7441952d570acea4a8dbb065107b5461"
|
resolved "https://registry.yarnpkg.com/react-native-background-timer/-/react-native-background-timer-2.0.0.tgz#afdac10b7441952d570acea4a8dbb065107b5461"
|
||||||
@ -7027,6 +7075,25 @@ react-native-dialogs@0.0.20:
|
|||||||
resolved "https://registry.yarnpkg.com/react-native-dialogs/-/react-native-dialogs-0.0.20.tgz#f3fb48eadba9d83fb9d4e6d7eca573494a8cefaa"
|
resolved "https://registry.yarnpkg.com/react-native-dialogs/-/react-native-dialogs-0.0.20.tgz#f3fb48eadba9d83fb9d4e6d7eca573494a8cefaa"
|
||||||
integrity sha512-HeoU9d7wWUUAtxjcIJLaeIs/eYS2ZHTNh3kboeCKngLvfvgptd/7vZXwXdQ+xeOEek+cm95kDfMJQd2xnb+4wA==
|
integrity sha512-HeoU9d7wWUUAtxjcIJLaeIs/eYS2ZHTNh3kboeCKngLvfvgptd/7vZXwXdQ+xeOEek+cm95kDfMJQd2xnb+4wA==
|
||||||
|
|
||||||
|
react-native-dismiss-keyboard@1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-dismiss-keyboard/-/react-native-dismiss-keyboard-1.0.0.tgz#32886242b3f2317e121f3aeb9b0a585e2b879b49"
|
||||||
|
integrity sha1-MohiQrPyMX4SHzrrmwpYXiuHm0k=
|
||||||
|
|
||||||
|
react-native-drawer-layout-polyfill@^1.3.2:
|
||||||
|
version "1.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-drawer-layout-polyfill/-/react-native-drawer-layout-polyfill-1.3.2.tgz#192c84d7a5a6b8a6d2be2c7daa5e4164518d0cc7"
|
||||||
|
integrity sha512-XzPhfLDJrYHru+e8+dFwhf0FtTeAp7JXPpFYezYV6P1nTeA1Tia/kDpFT+O2DWTrBKBEI8FGhZnThrroZmHIxg==
|
||||||
|
dependencies:
|
||||||
|
react-native-drawer-layout "1.3.2"
|
||||||
|
|
||||||
|
react-native-drawer-layout@1.3.2:
|
||||||
|
version "1.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-drawer-layout/-/react-native-drawer-layout-1.3.2.tgz#b9740d7663a1dc4f88a61b9c6d93d2d948ea426e"
|
||||||
|
integrity sha512-fjO0scqbJUfNu2wuEpvywL7DYLXuCXJ2W/zYhWz986rdLytidbys1QGVvkaszHrb4Y7OqO96mTkgpOcP8KWevw==
|
||||||
|
dependencies:
|
||||||
|
react-native-dismiss-keyboard "1.0.0"
|
||||||
|
|
||||||
react-native-fetch-polyfill@1.1.2:
|
react-native-fetch-polyfill@1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-fetch-polyfill/-/react-native-fetch-polyfill-1.1.2.tgz#256b5a0abd78cc4992f7a7cf82543da2f2124a73"
|
resolved "https://registry.yarnpkg.com/react-native-fetch-polyfill/-/react-native-fetch-polyfill-1.1.2.tgz#256b5a0abd78cc4992f7a7cf82543da2f2124a73"
|
||||||
@ -7093,6 +7160,18 @@ react-native-qrcode@0.2.6:
|
|||||||
prop-types "^15.5.10"
|
prop-types "^15.5.10"
|
||||||
qr.js "0.0.0"
|
qr.js "0.0.0"
|
||||||
|
|
||||||
|
react-native-safe-area-view@0.11.0:
|
||||||
|
version "0.11.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-safe-area-view/-/react-native-safe-area-view-0.11.0.tgz#4f3dda43c2bace37965e7c6aef5fc83d4f19d174"
|
||||||
|
integrity sha512-N3nElaahu1Me2ltnfc9acpgt1znm6pi8DSadKy79kvdzKwvVIzw0IXueA/Hjr51eCW1BsfNw7D1SgBT9U6qEkA==
|
||||||
|
dependencies:
|
||||||
|
hoist-non-react-statics "^2.3.1"
|
||||||
|
|
||||||
|
react-native-screens@^1.0.0-alpha.11:
|
||||||
|
version "1.0.0-alpha.22"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-1.0.0-alpha.22.tgz#7a120377b52aa9bbb94d0b8541a014026be9289b"
|
||||||
|
integrity sha512-kSyAt0AeVU6N7ZonfV6dP6iZF8B7Bce+tk3eujXhzBGsLg0VSLnU7uE9VqJF0xdQrHR91ZjGgVMieo/8df9KTA==
|
||||||
|
|
||||||
react-native-scrollable-mixin@^1.0.1:
|
react-native-scrollable-mixin@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-scrollable-mixin/-/react-native-scrollable-mixin-1.0.1.tgz#34a32167b64248594154fd0d6a8b03f22740548e"
|
resolved "https://registry.yarnpkg.com/react-native-scrollable-mixin/-/react-native-scrollable-mixin-1.0.1.tgz#34a32167b64248594154fd0d6a8b03f22740548e"
|
||||||
@ -7118,6 +7197,20 @@ react-native-svg@6.3.1:
|
|||||||
lodash "^4.16.6"
|
lodash "^4.16.6"
|
||||||
pegjs "^0.10.0"
|
pegjs "^0.10.0"
|
||||||
|
|
||||||
|
react-native-tab-view@^0.0.77:
|
||||||
|
version "0.0.77"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-0.0.77.tgz#11ceb8e7c23100d07e628dc151b57797524d00d4"
|
||||||
|
integrity sha512-9vjD4Ly1Zlum1Y4g23ODpi/F3gYIUIsKWrsZO/Oh5cuX1eiB1DRVn11nY1z+j/hsQfhfyW6nDlmySyDvYQvYCA==
|
||||||
|
dependencies:
|
||||||
|
prop-types "^15.6.0"
|
||||||
|
|
||||||
|
react-native-tab-view@^1.0.0:
|
||||||
|
version "1.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-1.3.2.tgz#c4e43a538dcacce151938745cea09176beeccbc3"
|
||||||
|
integrity sha512-2U+HxDQdjzExoC6gZ+wUhC8v8JjntppsFVU4v4pRvC/1dkN7DJv1k8UEy9+p7ucEaNrcAzu/j5N09Jf4qG36vw==
|
||||||
|
dependencies:
|
||||||
|
prop-types "^15.6.1"
|
||||||
|
|
||||||
react-native-tcp@3.3.0:
|
react-native-tcp@3.3.0:
|
||||||
version "3.3.0"
|
version "3.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-tcp/-/react-native-tcp-3.3.0.tgz#8eea75b7b2c2c6db4b91f38f171fba3b2a1b60ee"
|
resolved "https://registry.yarnpkg.com/react-native-tcp/-/react-native-tcp-3.3.0.tgz#8eea75b7b2c2c6db4b91f38f171fba3b2a1b60ee"
|
||||||
@ -7148,9 +7241,9 @@ react-native-udp@2.2.1:
|
|||||||
invariant "2.2.0"
|
invariant "2.2.0"
|
||||||
keymirror "0.1.1"
|
keymirror "0.1.1"
|
||||||
|
|
||||||
"react-native@git+https://github.com/status-im/react-native-desktop.git#v0.57.8_1":
|
"react-native@git+https://github.com/status-im/react-native-desktop.git#v0.57.8_8":
|
||||||
version "0.57.8"
|
version "0.57.8"
|
||||||
resolved "git+https://github.com/status-im/react-native-desktop.git#174fb14b354dbecef31be27d934390da7806ce50"
|
resolved "git+https://github.com/status-im/react-native-desktop.git#e77167f38aaa9591cda1b2cbeeea08aeb429c996"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.0.0"
|
"@babel/runtime" "^7.0.0"
|
||||||
absolute-path "^0.0.0"
|
absolute-path "^0.0.0"
|
||||||
@ -7207,6 +7300,54 @@ react-native-udp@2.2.1:
|
|||||||
yeoman-environment "^1.2.7"
|
yeoman-environment "^1.2.7"
|
||||||
yeoman-generator "^0.20.3"
|
yeoman-generator "^0.20.3"
|
||||||
|
|
||||||
|
react-navigation-deprecated-tab-navigator@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-navigation-deprecated-tab-navigator/-/react-navigation-deprecated-tab-navigator-1.3.0.tgz#015dcae1e977b984ca7e99245261c15439026bb7"
|
||||||
|
integrity sha512-Cm+qYOPFWbvvcuv0YYX0ioYwLGgw7XAqdhAfpo3sIr3trxRW8871ePmfFOPezjQtz4v6ItjZt6LPgtBAVZoroQ==
|
||||||
|
dependencies:
|
||||||
|
react-native-tab-view "^0.0.77"
|
||||||
|
|
||||||
|
react-navigation-drawer@0.5.0:
|
||||||
|
version "0.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-navigation-drawer/-/react-navigation-drawer-0.5.0.tgz#d91b6a6ec65c34ba78c00f814b1e6508922cc9ec"
|
||||||
|
integrity sha512-F1y593uC6pqBMGH+Omz75oNODEbxB/s0EGO8QtYwu1NmOOEUuuLA+c14zm+pgMsI4HlDabiHxPkWqsgGz25xVQ==
|
||||||
|
dependencies:
|
||||||
|
react-native-drawer-layout-polyfill "^1.3.2"
|
||||||
|
|
||||||
|
react-navigation-stack@0.7.0:
|
||||||
|
version "0.7.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-navigation-stack/-/react-navigation-stack-0.7.0.tgz#0b2f139ee1cba953037ef51353df992ec6c74fa2"
|
||||||
|
integrity sha512-3Tbb/SsustBrM9R/qaI6XuOfyqYMVbwkeHFC8NbU890vB0aKZvjAtioWLZ18e/4LgbiOCmoTdp37z3gkGDyNDQ==
|
||||||
|
|
||||||
|
react-navigation-tabs@0.8.4:
|
||||||
|
version "0.8.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-navigation-tabs/-/react-navigation-tabs-0.8.4.tgz#aa767f28b899f13c99f2b034b4a665f8cf0a5737"
|
||||||
|
integrity sha512-CbS3xIVJVtpu+AYslv0PMLmjddJFVtU3XAhSJ9XnMrKLUJNmnQdW/L0w/Gp5qcBEF9h6bgsY3CoTtp7I6bqyOQ==
|
||||||
|
dependencies:
|
||||||
|
hoist-non-react-statics "^2.5.0"
|
||||||
|
prop-types "^15.6.1"
|
||||||
|
react-lifecycles-compat "^3.0.4"
|
||||||
|
react-native-tab-view "^1.0.0"
|
||||||
|
|
||||||
|
react-navigation@^2.12.1:
|
||||||
|
version "2.18.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-navigation/-/react-navigation-2.18.3.tgz#de9a24dc37dfc33f3e4779a9f13f45ea97dfe19e"
|
||||||
|
integrity sha512-/5KGMG1Oj5LN/x/7AKF0MWrpX9Qe29307RxEsMCiRT/A4jCYT0DPY99Bl7ZAGtROxExEy3rwTfTrtvpIT+CU7A==
|
||||||
|
dependencies:
|
||||||
|
clamp "^1.0.1"
|
||||||
|
create-react-context "0.2.2"
|
||||||
|
hoist-non-react-statics "^2.2.0"
|
||||||
|
path-to-regexp "^1.7.0"
|
||||||
|
query-string "^6.1.0"
|
||||||
|
react-is "^16.5.2"
|
||||||
|
react-lifecycles-compat "^3"
|
||||||
|
react-native-safe-area-view "0.11.0"
|
||||||
|
react-native-screens "^1.0.0-alpha.11"
|
||||||
|
react-navigation-deprecated-tab-navigator "1.3.0"
|
||||||
|
react-navigation-drawer "0.5.0"
|
||||||
|
react-navigation-stack "0.7.0"
|
||||||
|
react-navigation-tabs "0.8.4"
|
||||||
|
|
||||||
react-proxy@^1.1.7:
|
react-proxy@^1.1.7:
|
||||||
version "1.1.8"
|
version "1.1.8"
|
||||||
resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a"
|
resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a"
|
||||||
@ -7336,7 +7477,7 @@ readline2@^0.1.1:
|
|||||||
mute-stream "0.0.4"
|
mute-stream "0.0.4"
|
||||||
strip-ansi "^2.0.1"
|
strip-ansi "^2.0.1"
|
||||||
|
|
||||||
"realm@git+https://github.com/status-im/realm-js.git#heads/v2.20.1":
|
"realm@git+https://github.com/status-im/realm-js.git#v2.20.1":
|
||||||
version "2.20.1"
|
version "2.20.1"
|
||||||
resolved "git+https://github.com/status-im/realm-js.git#433b2d66294fcd3a28e867438b48c9643acdb18a"
|
resolved "git+https://github.com/status-im/realm-js.git#433b2d66294fcd3a28e867438b48c9643acdb18a"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -8110,6 +8251,11 @@ strict-uri-encode@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
|
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
|
||||||
integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
|
integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
|
||||||
|
|
||||||
|
strict-uri-encode@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
|
||||||
|
integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
|
||||||
|
|
||||||
string-width@^1.0.1:
|
string-width@^1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
|
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
|
||||||
|
@ -32,4 +32,4 @@
|
|||||||
(def snoopy-bars #js {})
|
(def snoopy-bars #js {})
|
||||||
(def snoopy-buffer #js {})
|
(def snoopy-buffer #js {})
|
||||||
(def background-timer #js {:setTimeout (fn [cb ms] (js/setTimeout cb ms))})
|
(def background-timer #js {:setTimeout (fn [cb ms] (js/setTimeout cb ms))})
|
||||||
(def react-navigation #js {:NavigationActions #js {}})
|
(def react-navigation (js/require "react-navigation"))
|
||||||
|
@ -6,20 +6,41 @@
|
|||||||
status-im.ui.screens.events
|
status-im.ui.screens.events
|
||||||
status-im.subs
|
status-im.subs
|
||||||
status-im.data-store.core
|
status-im.data-store.core
|
||||||
[reagent.impl.component :as reagent.component]
|
[status-im.ui.screens.views :as views]
|
||||||
[status-im.ui.components.desktop.shortcuts :as shortcuts]
|
[status-im.ui.components.react :as react]
|
||||||
[status-im.ui.screens.desktop.views :as views]
|
[status-im.notifications.core :as notifications]
|
||||||
[status-im.core :as core]
|
[status-im.core :as core]
|
||||||
[status-im.desktop.deep-links :as deep-links]))
|
[status-im.utils.snoopy :as snoopy]
|
||||||
|
[status-im.ui.components.desktop.shortcuts :as shortcuts]
|
||||||
|
[status-im.ui.screens.desktop.views :as desktop-views]
|
||||||
|
[status-im.desktop.deep-links :as deep-links]
|
||||||
|
[status-im.utils.config :as config]))
|
||||||
|
|
||||||
|
(defn app-state-change-handler [state]
|
||||||
|
(re-frame/dispatch [:app-state-change state]))
|
||||||
|
|
||||||
(defn app-root [props]
|
(defn app-root [props]
|
||||||
(reagent/create-class
|
(if config/mobile-ui-for-desktop?
|
||||||
{:component-did-mount (fn [this]
|
(reagent/create-class
|
||||||
(re-frame/dispatch [:set-initial-props (reagent/props this)])
|
{:component-will-mount
|
||||||
(shortcuts/register-default-shortcuts)
|
(fn []
|
||||||
(deep-links/add-event-listener))
|
(.addEventListener react/app-state "change" app-state-change-handler))
|
||||||
:reagent-render (fn [props]
|
:component-did-mount
|
||||||
views/main)}))
|
(fn [this]
|
||||||
|
(re-frame/dispatch [:set-initial-props (reagent/props this)]))
|
||||||
|
:component-will-unmount
|
||||||
|
(fn []
|
||||||
|
(.stop react/http-bridge)
|
||||||
|
(.removeEventListener react/app-state "change" app-state-change-handler))
|
||||||
|
:display-name "root"
|
||||||
|
:reagent-render views/main})
|
||||||
|
(reagent/create-class
|
||||||
|
{:component-did-mount (fn [this]
|
||||||
|
(re-frame/dispatch [:set-initial-props (reagent/props this)])
|
||||||
|
(shortcuts/register-default-shortcuts)
|
||||||
|
(deep-links/add-event-listener))
|
||||||
|
:reagent-render (fn [props]
|
||||||
|
desktop-views/main)})))
|
||||||
|
|
||||||
(defn init []
|
(defn init []
|
||||||
(core/init app-root))
|
(core/init app-root))
|
||||||
|
@ -28,25 +28,29 @@
|
|||||||
callback))))
|
callback))))
|
||||||
|
|
||||||
(def tabs-list-data
|
(def tabs-list-data
|
||||||
[{:nav-stack :chat-stack
|
(->>
|
||||||
:content {:title (i18n/label :t/chats)
|
[{:nav-stack :chat-stack
|
||||||
:icon :main-icons/message}
|
:content {:title (i18n/label :t/chats)
|
||||||
:count-subscription :chats/unread-messages-number
|
:icon :main-icons/message}
|
||||||
:accessibility-label :home-tab-button}
|
:count-subscription :chats/unread-messages-number
|
||||||
{:nav-stack :browser-stack
|
:accessibility-label :home-tab-button}
|
||||||
:content {:title (i18n/label :t/dapps)
|
(when-not platform/desktop?
|
||||||
:icon :main-icons/dapp}
|
{:nav-stack :browser-stack
|
||||||
:accessibility-label :dapp-tab-button}
|
:content {:title (i18n/label :t/dapps)
|
||||||
{:nav-stack :wallet-stack
|
:icon :main-icons/dapp}
|
||||||
:content {:title (i18n/label :t/wallet)
|
:accessibility-label :dapp-tab-button})
|
||||||
:icon :main-icons/wallet}
|
(when-not platform/desktop?
|
||||||
:count-subscription :get-wallet-unread-messages-number
|
{:nav-stack :wallet-stack
|
||||||
:accessibility-label :wallet-tab-button}
|
:content {:title (i18n/label :t/wallet)
|
||||||
{:nav-stack :profile-stack
|
:icon :main-icons/wallet}
|
||||||
:content {:title (i18n/label :t/profile)
|
:count-subscription :get-wallet-unread-messages-number
|
||||||
:icon :main-icons/user-profile}
|
:accessibility-label :wallet-tab-button})
|
||||||
:count-subscription :get-profile-unread-messages-number
|
{:nav-stack :profile-stack
|
||||||
:accessibility-label :profile-tab-button}])
|
:content {:title (i18n/label :t/profile)
|
||||||
|
:icon :main-icons/user-profile}
|
||||||
|
:count-subscription :get-profile-unread-messages-number
|
||||||
|
:accessibility-label :profile-tab-button}]
|
||||||
|
(remove nil?)))
|
||||||
|
|
||||||
(defn new-tab
|
(defn new-tab
|
||||||
[{:keys [icon label active? nav-stack
|
[{:keys [icon label active? nav-stack
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
[status-im.ui.components.chat-icon.styles :as styles]
|
[status-im.ui.components.chat-icon.styles :as styles]
|
||||||
[status-im.ui.components.colors :as colors]
|
[status-im.ui.components.colors :as colors]
|
||||||
[status-im.ui.components.react :as react]
|
[status-im.ui.components.react :as react]
|
||||||
[status-im.ui.screens.chat.photos :as photos])
|
[status-im.ui.screens.chat.photos :as photos]
|
||||||
|
[status-im.utils.platform :as platform])
|
||||||
(:require-macros [status-im.utils.views :refer [defview letsubs]]))
|
(:require-macros [status-im.utils.views :refer [defview letsubs]]))
|
||||||
|
|
||||||
(defn default-chat-icon [name styles]
|
(defn default-chat-icon [name styles]
|
||||||
@ -138,9 +139,9 @@
|
|||||||
:default-chat-icon (styles/default-chat-icon-profile color size)
|
:default-chat-icon (styles/default-chat-icon-profile color size)
|
||||||
:default-chat-icon-text styles/default-chat-icon-text} override-styles)]
|
:default-chat-icon-text styles/default-chat-icon-text} override-styles)]
|
||||||
[react/view (:container styles)
|
[react/view (:container styles)
|
||||||
(when edit?
|
(when (and edit? (not platform/desktop?))
|
||||||
[react/view (styles/profile-icon-mask size)])
|
[react/view (styles/profile-icon-mask size)])
|
||||||
(when edit?
|
(when (and edit? (not platform/desktop?))
|
||||||
[react/view (styles/profile-icon-edit-text-containter size)
|
[react/view (styles/profile-icon-edit-text-containter size)
|
||||||
[react/i18n-text {:style styles/profile-icon-edit-text :key :edit}]])
|
[react/i18n-text {:style styles/profile-icon-edit-text :key :edit}]])
|
||||||
(if (and photo-path (seq photo-path))
|
(if (and photo-path (seq photo-path))
|
||||||
|
@ -5,7 +5,8 @@
|
|||||||
[status-im.ui.components.dialog :as dialog]
|
[status-im.ui.components.dialog :as dialog]
|
||||||
[status-im.ui.components.react :as react]
|
[status-im.ui.components.react :as react]
|
||||||
[status-im.utils.platform :as platform]
|
[status-im.utils.platform :as platform]
|
||||||
[status-im.utils.http :as http]))
|
[status-im.utils.http :as http]
|
||||||
|
[status-im.ui.components.popup-menu.views :refer [show-desktop-menu]]))
|
||||||
|
|
||||||
(defn open-share [content]
|
(defn open-share [content]
|
||||||
(when (or (:message content)
|
(when (or (:message content)
|
||||||
@ -17,13 +18,15 @@
|
|||||||
:action #(re-frame/dispatch [:chat.ui/reply-to-message message-id old-message-id])}
|
:action #(re-frame/dispatch [:chat.ui/reply-to-message message-id old-message-id])}
|
||||||
{:label (i18n/label :t/sharing-copy-to-clipboard)
|
{:label (i18n/label :t/sharing-copy-to-clipboard)
|
||||||
:action #(react/copy-to-clipboard text)}
|
:action #(react/copy-to-clipboard text)}
|
||||||
{:label (i18n/label :t/sharing-share)
|
(when-not platform/desktop?
|
||||||
:action #(open-share {:message text})}])
|
{:label (i18n/label :t/sharing-share)
|
||||||
|
:action #(open-share {:message text})})])
|
||||||
|
|
||||||
(defn show [options]
|
(defn show [options]
|
||||||
(if platform/ios?
|
(cond
|
||||||
(action-sheet/show options)
|
platform/ios? (action-sheet/show options)
|
||||||
(dialog/show options)))
|
platform/android? (dialog/show options)
|
||||||
|
platform/desktop? (show-desktop-menu (->> (:options options) (remove nil?)))))
|
||||||
|
|
||||||
(defn chat-message [message-id old-message-id text dialog-title]
|
(defn chat-message [message-id old-message-id text dialog-title]
|
||||||
(show {:title dialog-title
|
(show {:title dialog-title
|
||||||
|
@ -4,11 +4,14 @@
|
|||||||
[status-im.utils.platform :as platform]
|
[status-im.utils.platform :as platform]
|
||||||
[status-im.i18n :as i18n]
|
[status-im.i18n :as i18n]
|
||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
[taoensso.timbre :as log]))
|
[taoensso.timbre :as log]
|
||||||
|
[status-im.utils.config :as config]))
|
||||||
|
|
||||||
(defn show-desktop-menu [items]
|
(defn show-desktop-menu [items]
|
||||||
(.show rn-dependencies/desktop-menu
|
(.show rn-dependencies/desktop-menu
|
||||||
(clj->js (mapv #(hash-map :text (:text %1) :onPress (:on-select %1)) items))))
|
(if config/mobile-ui-for-desktop?
|
||||||
|
(clj->js (mapv #(hash-map :text (:label %1) :onPress (:action %1)) items))
|
||||||
|
(clj->js (mapv #(hash-map :text (:text %1) :onPress (:on-select %1)) items)))))
|
||||||
|
|
||||||
(defn get-chat-menu-items [group-chat public? chat-id]
|
(defn get-chat-menu-items [group-chat public? chat-id]
|
||||||
(->> [(when (and (not group-chat) (not public?))
|
(->> [(when (and (not group-chat) (not public?))
|
||||||
|
@ -16,7 +16,8 @@
|
|||||||
:wallet styles/view-wallet
|
:wallet styles/view-wallet
|
||||||
:wallet-tab styles/view-wallet-tab
|
:wallet-tab styles/view-wallet-tab
|
||||||
styles/view-default)]
|
styles/view-default)]
|
||||||
[react/view {:style (cond-> view-style flat? (assoc :elevation 0))}]))
|
(when-not platform/desktop?
|
||||||
|
[react/view {:style (cond-> view-style flat? (assoc :elevation 0))}])))
|
||||||
|
|
||||||
(defn get-config [view-id]
|
(defn get-config [view-id]
|
||||||
(get
|
(get
|
||||||
|
@ -10,7 +10,8 @@
|
|||||||
[status-im.ui.components.status-bar.view :as status-bar]
|
[status-im.ui.components.status-bar.view :as status-bar]
|
||||||
[status-im.ui.components.toolbar.view :as toolbar.view]
|
[status-im.ui.components.toolbar.view :as toolbar.view]
|
||||||
[status-im.ui.screens.add-new.styles :as add-new.styles]
|
[status-im.ui.screens.add-new.styles :as add-new.styles]
|
||||||
[status-im.ui.screens.add-new.new-chat.styles :as styles]))
|
[status-im.ui.screens.add-new.new-chat.styles :as styles]
|
||||||
|
[status-im.utils.platform :as platform]))
|
||||||
|
|
||||||
(defn- render-row [row _ _]
|
(defn- render-row [row _ _]
|
||||||
[contact-view/contact-view {:contact row
|
[contact-view/contact-view {:contact row
|
||||||
@ -32,13 +33,14 @@
|
|||||||
:style add-new.styles/input
|
:style add-new.styles/input
|
||||||
:accessibility-label :enter-contact-code-input
|
:accessibility-label :enter-contact-code-input
|
||||||
:return-key-type :go}]]
|
:return-key-type :go}]]
|
||||||
[react/touchable-highlight {:on-press #(re-frame/dispatch [:qr-scanner.ui/scan-qr-code-pressed
|
(when-not platform/desktop?
|
||||||
{:toolbar-title (i18n/label :t/new-contact)}
|
[react/touchable-highlight {:on-press #(re-frame/dispatch [:qr-scanner.ui/scan-qr-code-pressed
|
||||||
:contact/qr-code-scanned])
|
{:toolbar-title (i18n/label :t/new-contact)}
|
||||||
:style add-new.styles/button-container
|
:contact/qr-code-scanned])
|
||||||
:accessibility-label :scan-contact-code-button}
|
:style add-new.styles/button-container
|
||||||
[react/view
|
:accessibility-label :scan-contact-code-button}
|
||||||
[vector-icons/icon :main-icons/qr {:color colors/blue}]]]]
|
[react/view
|
||||||
|
[vector-icons/icon :main-icons/qr {:color colors/blue}]]])]
|
||||||
[react/text {:style styles/error-message}
|
[react/text {:style styles/error-message}
|
||||||
error-message]
|
error-message]
|
||||||
(when (seq contacts)
|
(when (seq contacts)
|
||||||
|
@ -11,7 +11,8 @@
|
|||||||
[status-im.ui.components.styles :as styles]
|
[status-im.ui.components.styles :as styles]
|
||||||
[status-im.ui.components.status-bar.view :as status-bar]
|
[status-im.ui.components.status-bar.view :as status-bar]
|
||||||
[status-im.ui.components.toolbar.view :as toolbar]
|
[status-im.ui.components.toolbar.view :as toolbar]
|
||||||
[status-im.utils.config :as config]))
|
[status-im.utils.config :as config]
|
||||||
|
[status-im.utils.platform :as platform]))
|
||||||
|
|
||||||
(defn- options-list [{:keys [dev-mode?]}]
|
(defn- options-list [{:keys [dev-mode?]}]
|
||||||
[react/view action-button.styles/actions-list
|
[react/view action-button.styles/actions-list
|
||||||
@ -35,22 +36,23 @@
|
|||||||
:icon :main-icons/public-chat
|
:icon :main-icons/public-chat
|
||||||
:icon-opts {:color colors/blue}
|
:icon-opts {:color colors/blue}
|
||||||
:on-press #(re-frame/dispatch [:navigate-to :new-public-chat])}]
|
:on-press #(re-frame/dispatch [:navigate-to :new-public-chat])}]
|
||||||
[action-button/action-separator]
|
(when-not platform/desktop?
|
||||||
[action-button/action-button
|
[action-button/action-separator]
|
||||||
{:label (i18n/label :t/invite-friends)
|
[action-button/action-button
|
||||||
:accessibility-label :invite-friends-button
|
{:label (i18n/label :t/invite-friends)
|
||||||
:icon :main-icons/share
|
:accessibility-label :invite-friends-button
|
||||||
:icon-opts {:color colors/blue}
|
:icon :main-icons/share
|
||||||
:on-press #(list-selection/open-share {:message (i18n/label :t/get-status-at)})}]
|
:icon-opts {:color colors/blue}
|
||||||
[action-button/action-separator]
|
:on-press #(list-selection/open-share {:message (i18n/label :t/get-status-at)})}]
|
||||||
[action-button/action-button
|
[action-button/action-separator]
|
||||||
{:label (i18n/label :t/scan-qr)
|
[action-button/action-button
|
||||||
:accessibility-label :scan-qr-code-button
|
{:label (i18n/label :t/scan-qr)
|
||||||
:icon :main-icons/qr
|
:accessibility-label :scan-qr-code-button
|
||||||
:icon-opts {:color colors/blue}
|
:icon :main-icons/qr
|
||||||
:on-press #(re-frame/dispatch [:qr-scanner.ui/scan-qr-code-pressed
|
:icon-opts {:color colors/blue}
|
||||||
{:toolbar-title (i18n/label :t/scan-qr)}
|
:on-press #(re-frame/dispatch [:qr-scanner.ui/scan-qr-code-pressed
|
||||||
:handle-qr-code])}]])
|
{:toolbar-title (i18n/label :t/scan-qr)}
|
||||||
|
:handle-qr-code])}])])
|
||||||
|
|
||||||
(views/defview add-new []
|
(views/defview add-new []
|
||||||
(views/letsubs [account [:account/account]
|
(views/letsubs [account [:account/account]
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
[status-im.ui.components.toolbar.view :as toolbar]
|
[status-im.ui.components.toolbar.view :as toolbar]
|
||||||
[status-im.ui.components.text-input.view :as text-input]
|
[status-im.ui.components.text-input.view :as text-input]
|
||||||
[status-im.ui.screens.bootnodes-settings.edit-bootnode.styles :as styles]
|
[status-im.ui.screens.bootnodes-settings.edit-bootnode.styles :as styles]
|
||||||
|
[status-im.utils.platform :as platform]
|
||||||
[status-im.ui.components.tooltip.views :as tooltip]
|
[status-im.ui.components.tooltip.views :as tooltip]
|
||||||
[clojure.string :as string]))
|
[clojure.string :as string]))
|
||||||
|
|
||||||
@ -57,13 +58,14 @@
|
|||||||
[react/view
|
[react/view
|
||||||
{:flex 1}
|
{:flex 1}
|
||||||
[text-input/text-input-with-label
|
[text-input/text-input-with-label
|
||||||
{:label (i18n/label :t/bootnode-address)
|
(merge
|
||||||
:placeholder (i18n/label :t/bootnode-format)
|
{:label (i18n/label :t/bootnode-address)
|
||||||
:content qr-code
|
:placeholder (i18n/label :t/bootnode-format)
|
||||||
:style styles/input
|
:style styles/input
|
||||||
:container styles/input-container
|
:container styles/input-container
|
||||||
:default-value url
|
:default-value url
|
||||||
:on-change-text #(re-frame/dispatch [:bootnodes.ui/input-changed :url %])}]
|
:on-change-text #(re-frame/dispatch [:bootnodes.ui/input-changed :url %])}
|
||||||
|
(when-not platform/desktop? {:content qr-code}))]
|
||||||
(when (and (not (string/blank? url)) invalid-url?)
|
(when (and (not (string/blank? url)) invalid-url?)
|
||||||
[tooltip/tooltip (i18n/label :t/invalid-format
|
[tooltip/tooltip (i18n/label :t/invalid-format
|
||||||
{:format (i18n/label :t/bootnode-format)})
|
{:format (i18n/label :t/bootnode-format)})
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
(:require [re-frame.core :as re-frame]
|
(:require [re-frame.core :as re-frame]
|
||||||
[status-im.i18n :as i18n]
|
[status-im.i18n :as i18n]
|
||||||
[status-im.ui.components.list-selection :as list-selection]
|
[status-im.ui.components.list-selection :as list-selection]
|
||||||
[status-im.utils.universal-links.core :as universal-links]))
|
[status-im.utils.universal-links.core :as universal-links]
|
||||||
|
[status-im.utils.platform :as platform]))
|
||||||
|
|
||||||
(defn view-profile [chat-id]
|
(defn view-profile [chat-id]
|
||||||
{:label (i18n/label :t/view-profile)
|
{:label (i18n/label :t/view-profile)
|
||||||
@ -15,8 +16,9 @@
|
|||||||
(defn- share-chat [chat-id]
|
(defn- share-chat [chat-id]
|
||||||
(let [link (universal-links/generate-link :public-chat :external chat-id)
|
(let [link (universal-links/generate-link :public-chat :external chat-id)
|
||||||
message (i18n/label :t/share-public-chat-text {:link link})]
|
message (i18n/label :t/share-public-chat-text {:link link})]
|
||||||
{:label (i18n/label :t/share-chat)
|
(when-not platform/desktop?
|
||||||
:action #(list-selection/open-share {:message message})}))
|
{:label (i18n/label :t/share-chat)
|
||||||
|
:action #(list-selection/open-share {:message message})})))
|
||||||
|
|
||||||
(defn- clear-history []
|
(defn- clear-history []
|
||||||
{:label (i18n/label :t/clear-history)
|
{:label (i18n/label :t/clear-history)
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
[status-im.utils.gfycat.core :as gfycat]
|
[status-im.utils.gfycat.core :as gfycat]
|
||||||
[status-im.utils.utils :as utils]
|
[status-im.utils.utils :as utils]
|
||||||
[status-im.utils.config :as config]
|
[status-im.utils.config :as config]
|
||||||
|
[taoensso.timbre :as log]
|
||||||
[status-im.ui.screens.chat.stickers.views :as stickers]))
|
[status-im.ui.screens.chat.stickers.views :as stickers]))
|
||||||
|
|
||||||
(defview basic-text-input [{:keys [set-container-width-fn height single-line-input?]}]
|
(defview basic-text-input [{:keys [set-container-width-fn height single-line-input?]}]
|
||||||
@ -51,6 +52,40 @@
|
|||||||
(when cooldown-enabled?
|
(when cooldown-enabled?
|
||||||
{:placeholder (i18n/label :cooldown/text-input-disabled)}))]))
|
{:placeholder (i18n/label :cooldown/text-input-disabled)}))]))
|
||||||
|
|
||||||
|
(defview basic-text-input-desktop [{:keys [set-container-width-fn height single-line-input? set-text state-text]}]
|
||||||
|
(letsubs [cooldown-enabled? [:chats/cooldown-enabled?]]
|
||||||
|
[react/text-input
|
||||||
|
(merge
|
||||||
|
{:ref #(when % (re-frame/dispatch [:chat.ui/set-chat-ui-props {:input-ref %}]))
|
||||||
|
:accessibility-label :chat-message-input
|
||||||
|
:multiline (not single-line-input?)
|
||||||
|
:default-value @state-text
|
||||||
|
:editable (not cooldown-enabled?)
|
||||||
|
:blur-on-submit false
|
||||||
|
:on-focus #(re-frame/dispatch [:chat.ui/set-chat-ui-props {:input-focused? true
|
||||||
|
:show-stickers? false
|
||||||
|
:messages-focused? false}])
|
||||||
|
:on-blur #(re-frame/dispatch [:chat.ui/set-chat-ui-props {:input-focused? false}])
|
||||||
|
:submit-shortcut {:key "Enter"}
|
||||||
|
:on-submit-editing #(do
|
||||||
|
(re-frame/dispatch [:chat.ui/set-chat-input-text @state-text])
|
||||||
|
(re-frame/dispatch [:chat.ui/send-current-message])
|
||||||
|
(set-text ""))
|
||||||
|
:on-layout #(set-container-width-fn (.-width (.-layout (.-nativeEvent %))))
|
||||||
|
:on-change #(do
|
||||||
|
(set-text (.-text (.-nativeEvent %))))
|
||||||
|
:on-end-editing #(re-frame/dispatch [:chat.ui/set-chat-input-text @state-text])
|
||||||
|
:on-selection-change #(let [s (-> (.-nativeEvent %)
|
||||||
|
(.-selection))
|
||||||
|
end (.-end s)]
|
||||||
|
(re-frame/dispatch [:chat.ui/set-chat-ui-props {:selection end}]))
|
||||||
|
:style (style/input-view single-line-input?)
|
||||||
|
:placeholder-text-color colors/gray
|
||||||
|
:auto-capitalize :sentences}
|
||||||
|
(when cooldown-enabled?
|
||||||
|
{:placeholder (i18n/label :cooldown/text-input-disabled)}))]))
|
||||||
|
;)
|
||||||
|
|
||||||
(defview invisible-input [{:keys [set-layout-width-fn value]}]
|
(defview invisible-input [{:keys [set-layout-width-fn value]}]
|
||||||
(letsubs [{:keys [input-text]} [:chats/current-chat]]
|
(letsubs [{:keys [input-text]} [:chats/current-chat]]
|
||||||
[react/text {:style style/invisible-input-text
|
[react/text {:style style/invisible-input-text
|
||||||
@ -84,7 +119,7 @@
|
|||||||
:number {:keyboard-type "numeric"}
|
:number {:keyboard-type "numeric"}
|
||||||
nil))
|
nil))
|
||||||
|
|
||||||
(defview input-view [{:keys [single-line-input?]}]
|
(defview input-view [{:keys [single-line-input? set-text state-text]}]
|
||||||
(letsubs [command [:chats/selected-chat-command]]
|
(letsubs [command [:chats/selected-chat-command]]
|
||||||
(let [component (reagent/current-component)
|
(let [component (reagent/current-component)
|
||||||
set-layout-width-fn #(reagent/set-state component {:width %})
|
set-layout-width-fn #(reagent/set-state component {:width %})
|
||||||
@ -93,8 +128,13 @@
|
|||||||
[react/view {:style style/input-root}
|
[react/view {:style style/input-root}
|
||||||
[react/animated-view {:style style/input-animated}
|
[react/animated-view {:style style/input-animated}
|
||||||
[invisible-input {:set-layout-width-fn set-layout-width-fn}]
|
[invisible-input {:set-layout-width-fn set-layout-width-fn}]
|
||||||
[basic-text-input {:set-container-width-fn set-container-width-fn
|
(if platform/desktop?
|
||||||
:single-line-input? single-line-input?}]
|
[basic-text-input-desktop {:set-container-width-fn set-container-width-fn
|
||||||
|
:single-line-input? single-line-input?
|
||||||
|
:set-text set-text
|
||||||
|
:state-text state-text}]
|
||||||
|
[basic-text-input {:set-container-width-fn set-container-width-fn
|
||||||
|
:single-line-input? single-line-input?}])
|
||||||
[input-helper {:width width}]]])))
|
[input-helper {:width width}]]])))
|
||||||
|
|
||||||
(defview commands-button []
|
(defview commands-button []
|
||||||
@ -134,8 +174,18 @@
|
|||||||
(letsubs [margin [:chats/input-margin]
|
(letsubs [margin [:chats/input-margin]
|
||||||
{:keys [input-text]} [:chats/current-chat]
|
{:keys [input-text]} [:chats/current-chat]
|
||||||
result-box [:chats/current-chat-ui-prop :result-box]
|
result-box [:chats/current-chat-ui-prop :result-box]
|
||||||
show-stickers? [:chats/current-chat-ui-prop :show-stickers?]]
|
show-stickers? [:chats/current-chat-ui-prop :show-stickers?]
|
||||||
(let [single-line-input? (:singleLineInput result-box)]
|
state-text (reagent/atom "")]
|
||||||
|
{:component-will-unmount #(when platform/desktop?
|
||||||
|
(re-frame/dispatch [:chat.ui/set-chat-input-text @state-text]))
|
||||||
|
|
||||||
|
:component-did-mount #(when-not (string/blank? input-text) (reset! state-text input-text))}
|
||||||
|
(let [single-line-input? (:singleLineInput result-box)
|
||||||
|
component (reagent/current-component)
|
||||||
|
set-text #(reset! state-text %)
|
||||||
|
input-text-empty? (if platform/desktop?
|
||||||
|
(string/blank? state-text)
|
||||||
|
(string/blank? input-text))]
|
||||||
[react/view {:style (style/root margin)
|
[react/view {:style (style/root margin)
|
||||||
:on-layout #(let [h (-> (.-nativeEvent %)
|
:on-layout #(let [h (-> (.-nativeEvent %)
|
||||||
(.-layout)
|
(.-layout)
|
||||||
@ -144,12 +194,14 @@
|
|||||||
(re-frame/dispatch [:chat.ui/set-chat-ui-props {:input-height h}])))}
|
(re-frame/dispatch [:chat.ui/set-chat-ui-props {:input-height h}])))}
|
||||||
[reply-message-view]
|
[reply-message-view]
|
||||||
[react/view {:style style/input-container}
|
[react/view {:style style/input-container}
|
||||||
[input-view {:single-line-input? single-line-input?}]
|
[input-view {:single-line-input? single-line-input? :set-text set-text :state-text state-text}]
|
||||||
(when (and config/stickers-enabled? (string/blank? input-text))
|
(when (and config/stickers-enabled? input-text-empty?)
|
||||||
[stickers/button show-stickers?])
|
[stickers/button show-stickers?])
|
||||||
(if (string/blank? input-text)
|
(if input-text-empty?
|
||||||
[commands-button]
|
[commands-button]
|
||||||
[send-button/send-button-view])]])))
|
(if platform/desktop?
|
||||||
|
[send-button/send-button-view {:input-text @state-text}]
|
||||||
|
[send-button/send-button-view {:input-text input-text}]))]])))
|
||||||
|
|
||||||
(defn container []
|
(defn container []
|
||||||
[react/view
|
[react/view
|
||||||
|
@ -13,9 +13,8 @@
|
|||||||
login-processing?
|
login-processing?
|
||||||
disconnected?))))
|
disconnected?))))
|
||||||
|
|
||||||
(defview send-button-view []
|
(defview send-button-view [{:keys [input-text]}]
|
||||||
(letsubs [{:keys [command-completion]} [:chats/selected-chat-command]
|
(letsubs [{:keys [command-completion]} [:chats/selected-chat-command]
|
||||||
{:keys [input-text]} [:chats/current-chat]
|
|
||||||
disconnected? [:disconnected?]
|
disconnected? [:disconnected?]
|
||||||
{:keys [processing]} [:accounts/login]]
|
{:keys [processing]} [:accounts/login]]
|
||||||
(when (and (sendable? input-text disconnected? processing)
|
(when (and (sendable? input-text disconnected? processing)
|
||||||
|
@ -54,8 +54,7 @@
|
|||||||
justify-timestamp?
|
justify-timestamp?
|
||||||
outgoing
|
outgoing
|
||||||
(:rtl? content)
|
(:rtl? content)
|
||||||
(= content-type constants/content-type-emoji))}
|
(= content-type constants/content-type-emoji))} t]))
|
||||||
t]))
|
|
||||||
|
|
||||||
(defn message-view
|
(defn message-view
|
||||||
[{:keys [timestamp-str outgoing content content-type] :as message} message-content {:keys [justify-timestamp?]}]
|
[{:keys [timestamp-str outgoing content content-type] :as message} message-content {:keys [justify-timestamp?]}]
|
||||||
@ -268,16 +267,24 @@
|
|||||||
[react/view (style/delivery-status outgoing)
|
[react/view (style/delivery-status outgoing)
|
||||||
[message-delivery-status message]]])
|
[message-delivery-status message]]])
|
||||||
|
|
||||||
(defn chat-message [{:keys [message-id old-message-id outgoing group-chat modal? current-public-key content-type content] :as message}]
|
(defn open-chat-context-menu
|
||||||
|
[{:keys [message-id old-message-id content] :as message}]
|
||||||
|
(list-selection/chat-message message-id old-message-id (:text content) (i18n/label :t/message)))
|
||||||
|
|
||||||
|
(defn chat-message [{:keys [outgoing group-chat modal? current-public-key content-type content] :as message}]
|
||||||
[react/view
|
[react/view
|
||||||
[react/touchable-highlight {:on-press (fn [_]
|
[react/touchable-highlight {:on-press (fn [arg]
|
||||||
(when (= content-type constants/content-type-sticker)
|
(if (and platform/desktop? (= "right" (.-button (.-nativeEvent arg))))
|
||||||
(re-frame/dispatch [:stickers/open-sticker-pack (:pack content)]))
|
(open-chat-context-menu message)
|
||||||
(re-frame/dispatch [:chat.ui/set-chat-ui-props {:messages-focused? true
|
(do
|
||||||
:show-stickers? false}])
|
(when (= content-type constants/content-type-sticker)
|
||||||
(react/dismiss-keyboard!))
|
(re-frame/dispatch [:stickers/open-sticker-pack (:pack content)]))
|
||||||
|
(re-frame/dispatch [:chat.ui/set-chat-ui-props {:messages-focused? true
|
||||||
|
:show-stickers? false}])
|
||||||
|
(when-not platform/desktop?
|
||||||
|
(react/dismiss-keyboard!)))))
|
||||||
:on-long-press #(when (or (= content-type constants/content-type-text) (= content-type constants/content-type-emoji))
|
:on-long-press #(when (or (= content-type constants/content-type-text) (= content-type constants/content-type-emoji))
|
||||||
(list-selection/chat-message message-id old-message-id (:text content) (i18n/label :t/message)))}
|
(open-chat-context-menu message))}
|
||||||
[react/view {:accessibility-label :chat-item}
|
[react/view {:accessibility-label :chat-item}
|
||||||
(let [incoming-group (and group-chat (not outgoing))]
|
(let [incoming-group (and group-chat (not outgoing))]
|
||||||
[message-content message-body (merge message
|
[message-content message-body (merge message
|
||||||
|
@ -7,7 +7,8 @@
|
|||||||
[status-im.i18n :as i18n]
|
[status-im.i18n :as i18n]
|
||||||
[status-im.ui.screens.chat.stickers.styles :as styles]
|
[status-im.ui.screens.chat.stickers.styles :as styles]
|
||||||
[status-im.ui.components.animation :as anim]
|
[status-im.ui.components.animation :as anim]
|
||||||
[reagent.core :as reagent]))
|
[reagent.core :as reagent]
|
||||||
|
[status-im.utils.platform :as platform]))
|
||||||
|
|
||||||
(def icon-size 28)
|
(def icon-size 28)
|
||||||
(def icon-horizontal-margin 8)
|
(def icon-horizontal-margin 8)
|
||||||
@ -20,7 +21,7 @@
|
|||||||
[react/touchable-highlight
|
[react/touchable-highlight
|
||||||
{:on-press (fn [_]
|
{:on-press (fn [_]
|
||||||
(re-frame/dispatch [:chat.ui/set-chat-ui-props {:show-stickers? (not show-stickers?)}])
|
(re-frame/dispatch [:chat.ui/set-chat-ui-props {:show-stickers? (not show-stickers?)}])
|
||||||
(js/setTimeout #(react/dismiss-keyboard!) 100))
|
(when-not platform/desktop? (js/setTimeout #(react/dismiss-keyboard!) 100)))
|
||||||
:accessibility-label :show-stickers-icon}
|
:accessibility-label :show-stickers-icon}
|
||||||
[vector-icons/icon :main-icons/stickers {:container-style {:margin 14 :margin-right 6}
|
[vector-icons/icon :main-icons/stickers {:container-style {:margin 14 :margin-right 6}
|
||||||
:color (if show-stickers? colors/blue colors/gray)}]])
|
:color (if show-stickers? colors/blue colors/gray)}]])
|
||||||
|
@ -108,14 +108,16 @@
|
|||||||
:position :absolute
|
:position :absolute
|
||||||
:height min-input-height
|
:height min-input-height
|
||||||
:android {:left (+ 4 left)}
|
:android {:left (+ 4 left)}
|
||||||
:ios {:left left}})
|
:ios {:left left}
|
||||||
|
:desktop {:left left}})
|
||||||
|
|
||||||
(defnstyle input-helper-text [left]
|
(defnstyle input-helper-text [left]
|
||||||
{:color colors/gray
|
{:color colors/gray
|
||||||
:text-align-vertical :center
|
:text-align-vertical :center
|
||||||
:flex 1
|
:flex 1
|
||||||
:android {:top -1}
|
:android {:top -1}
|
||||||
:ios {:line-height min-input-height}})
|
:ios {:line-height min-input-height}
|
||||||
|
:desktop {:line-height min-input-height}})
|
||||||
|
|
||||||
(defnstyle seq-input-text [left container-width]
|
(defnstyle seq-input-text [left container-width]
|
||||||
{:min-width (- container-width left)
|
{:min-width (- container-width left)
|
||||||
@ -126,6 +128,9 @@
|
|||||||
:height (+ 2 min-input-height)
|
:height (+ 2 min-input-height)
|
||||||
:top 0.5}
|
:top 0.5}
|
||||||
:ios {:line-height min-input-height
|
:ios {:line-height min-input-height
|
||||||
|
:height min-input-height
|
||||||
|
:left left}
|
||||||
|
:desktop {:line-height min-input-height
|
||||||
:height min-input-height
|
:height min-input-height
|
||||||
:left left}})
|
:left left}})
|
||||||
|
|
||||||
|
@ -78,9 +78,8 @@
|
|||||||
(defn group-message-view
|
(defn group-message-view
|
||||||
[outgoing message-type]
|
[outgoing message-type]
|
||||||
(let [align (if outgoing :flex-end :flex-start)]
|
(let [align (if outgoing :flex-end :flex-start)]
|
||||||
(merge {:flex 1
|
(merge {:flex-direction :column
|
||||||
:flex-direction :column
|
:max-width (if platform/desktop? 500 320)
|
||||||
:max-width 320
|
|
||||||
:align-items align}
|
:align-items align}
|
||||||
(if outgoing
|
(if outgoing
|
||||||
{:margin-right 8}
|
{:margin-right 8}
|
||||||
@ -132,6 +131,7 @@
|
|||||||
(defnstyle emoji-message
|
(defnstyle emoji-message
|
||||||
[{:keys [incoming-group]}]
|
[{:keys [incoming-group]}]
|
||||||
{:font-size 40
|
{:font-size 40
|
||||||
|
:desktop {:line-height 46}
|
||||||
:margin-top (if incoming-group 4 0)})
|
:margin-top (if incoming-group 4 0)})
|
||||||
|
|
||||||
(defn message-view
|
(defn message-view
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
:align-items :center
|
:align-items :center
|
||||||
:padding-horizontal 16
|
:padding-horizontal 16
|
||||||
:ios {:height 36}
|
:ios {:height 36}
|
||||||
|
:desktop {:height 36}
|
||||||
:android {:height 36}})
|
:android {:height 36}})
|
||||||
|
|
||||||
(def title
|
(def title
|
||||||
|
@ -35,17 +35,13 @@
|
|||||||
|
|
||||||
(def ^:private action->prop-fn
|
(def ^:private action->prop-fn
|
||||||
{:link (fn [text {:keys [outgoing]}]
|
{:link (fn [text {:keys [outgoing]}]
|
||||||
{:style {:color (if platform/desktop?
|
{:style {:color (if outgoing colors/white colors/blue)
|
||||||
colors/blue
|
|
||||||
(if outgoing colors/white colors/blue))
|
|
||||||
:text-decoration-line :underline}
|
:text-decoration-line :underline}
|
||||||
:on-press (if platform/desktop?
|
:on-press (if platform/desktop?
|
||||||
#(.openURL react/linking (http/normalize-url text))
|
#(.openURL react/linking (http/normalize-url text))
|
||||||
#(re-frame/dispatch [:browser.ui/message-link-pressed text]))})
|
#(re-frame/dispatch [:browser.ui/message-link-pressed text]))})
|
||||||
:tag (fn [text {:keys [outgoing]}]
|
:tag (fn [text {:keys [outgoing]}]
|
||||||
{:style {:color (if platform/desktop?
|
{:style {:color (if outgoing colors/white colors/blue)
|
||||||
colors/blue
|
|
||||||
(if outgoing colors/white colors/blue))
|
|
||||||
:text-decoration-line :underline}
|
:text-decoration-line :underline}
|
||||||
:on-press #(re-frame/dispatch [:chat.ui/start-public-chat (subs text 1) {:navigation-reset? true}])})})
|
:on-press #(re-frame/dispatch [:chat.ui/start-public-chat (subs text 1) {:navigation-reset? true}])})})
|
||||||
|
|
||||||
|
@ -102,9 +102,12 @@
|
|||||||
{:on-press (fn [_]
|
{:on-press (fn [_]
|
||||||
(re-frame/dispatch [:chat.ui/set-chat-ui-props {:messages-focused? true
|
(re-frame/dispatch [:chat.ui/set-chat-ui-props {:messages-focused? true
|
||||||
:show-stickers? false}])
|
:show-stickers? false}])
|
||||||
(react/dismiss-keyboard!))}
|
(when-not platform/desktop?
|
||||||
[react/animated-view {:style (style/message-view-animated opacity)}
|
(react/dismiss-keyboard!)))}
|
||||||
message-view]]]))
|
(if platform/desktop?
|
||||||
|
message-view
|
||||||
|
[react/animated-view {:style (style/message-view-animated opacity)}
|
||||||
|
message-view])]]))
|
||||||
|
|
||||||
(defn join-chat-button [chat-id]
|
(defn join-chat-button [chat-id]
|
||||||
[buttons/secondary-button {:style style/join-button
|
[buttons/secondary-button {:style style/join-button
|
||||||
|
@ -106,7 +106,8 @@
|
|||||||
[react/text
|
[react/text
|
||||||
{:style styles/no-contact-text}
|
{:style styles/no-contact-text}
|
||||||
(i18n/label :t/group-chat-no-contacts)]
|
(i18n/label :t/group-chat-no-contacts)]
|
||||||
[buttons/secondary-button {:on-press handle-invite-friends-pressed} (i18n/label :t/invite-friends)]])
|
(when-not platform/desktop?
|
||||||
|
[buttons/secondary-button {:on-press handle-invite-friends-pressed} (i18n/label :t/invite-friends)])])
|
||||||
|
|
||||||
(views/defview bottom-container [{:keys [on-press disabled label accessibility-label]}]
|
(views/defview bottom-container [{:keys [on-press disabled label accessibility-label]}]
|
||||||
[react/view {:style main-tabs.styles/tabs-container}
|
[react/view {:style main-tabs.styles/tabs-container}
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
{:flex-direction :row
|
{:flex-direction :row
|
||||||
:android {:height 76}
|
:android {:height 76}
|
||||||
:ios {:height 74}
|
:ios {:height 74}
|
||||||
|
:desktop {:height 74}
|
||||||
:overflow :hidden})
|
:overflow :hidden})
|
||||||
|
|
||||||
(defstyle chat-icon-container
|
(defstyle chat-icon-container
|
||||||
@ -25,7 +26,8 @@
|
|||||||
:padding-right 20
|
:padding-right 20
|
||||||
:width 72
|
:width 72
|
||||||
:android {:height 76}
|
:android {:height 76}
|
||||||
:ios {:height 74}})
|
:ios {:height 74}
|
||||||
|
:desktop {:height 74}})
|
||||||
|
|
||||||
(defstyle chat-info-container
|
(defstyle chat-info-container
|
||||||
{:margin-bottom 13
|
{:margin-bottom 13
|
||||||
@ -33,7 +35,8 @@
|
|||||||
:flex 1
|
:flex 1
|
||||||
:flex-direction :column
|
:flex-direction :column
|
||||||
:android {:margin-top 16}
|
:android {:margin-top 16}
|
||||||
:ios {:margin-top 14}})
|
:ios {:margin-top 14}
|
||||||
|
:desktop {:margin-top 14}})
|
||||||
|
|
||||||
(defstyle chat-options-container
|
(defstyle chat-options-container
|
||||||
{:padding-top 10})
|
{:padding-top 10})
|
||||||
@ -49,7 +52,8 @@
|
|||||||
:justify-content :space-between
|
:justify-content :space-between
|
||||||
:padding-right 16
|
:padding-right 16
|
||||||
:android {:margin-top 4}
|
:android {:margin-top 4}
|
||||||
:ios {:margin-top 6}})
|
:ios {:margin-top 6}
|
||||||
|
:desktop {:margin-top 6}})
|
||||||
|
|
||||||
(def message-status-container
|
(def message-status-container
|
||||||
{:flex-direction :row
|
{:flex-direction :row
|
||||||
@ -65,6 +69,8 @@
|
|||||||
:android {:font-size 16
|
:android {:font-size 16
|
||||||
:height 26}
|
:height 26}
|
||||||
:ios {:font-size 17
|
:ios {:font-size 17
|
||||||
|
:height 26}
|
||||||
|
:desktop {:font-size 17
|
||||||
:height 26}})
|
:height 26}})
|
||||||
|
|
||||||
(defstyle private-group-icon-container
|
(defstyle private-group-icon-container
|
||||||
@ -82,7 +88,7 @@
|
|||||||
|
|
||||||
(def last-message-text
|
(def last-message-text
|
||||||
{:color colors/text-gray
|
{:color colors/text-gray
|
||||||
:height 24})
|
:max-height 24})
|
||||||
|
|
||||||
(def search-input-height 56)
|
(def search-input-height 56)
|
||||||
|
|
||||||
@ -138,7 +144,8 @@
|
|||||||
:color colors/blue
|
:color colors/blue
|
||||||
:text-align :center
|
:text-align :center
|
||||||
:android {:top 2}
|
:android {:top 2}
|
||||||
:ios {:top 3}})
|
:ios {:top 3}
|
||||||
|
:desktop {:top 3}})
|
||||||
|
|
||||||
(def group-icon
|
(def group-icon
|
||||||
{:margin-top 8
|
{:margin-top 8
|
||||||
|
@ -7,7 +7,8 @@
|
|||||||
[status-im.ui.components.toolbar.view :as toolbar]
|
[status-im.ui.components.toolbar.view :as toolbar]
|
||||||
[status-im.ui.screens.profile.components.styles :as profile.components.styles]
|
[status-im.ui.screens.profile.components.styles :as profile.components.styles]
|
||||||
[status-im.ui.screens.profile.components.views :as profile.components]
|
[status-im.ui.screens.profile.components.views :as profile.components]
|
||||||
[status-im.ui.screens.profile.contact.styles :as styles])
|
[status-im.ui.screens.profile.contact.styles :as styles]
|
||||||
|
[status-im.utils.platform :as platform])
|
||||||
(:require-macros [status-im.utils.views :refer [defview letsubs]]))
|
(:require-macros [status-im.utils.views :refer [defview letsubs]]))
|
||||||
|
|
||||||
(defn profile-contact-toolbar []
|
(defn profile-contact-toolbar []
|
||||||
@ -32,11 +33,12 @@
|
|||||||
{:label (i18n/label :t/send-transaction)
|
{:label (i18n/label :t/send-transaction)
|
||||||
:icon :main-icons/send
|
:icon :main-icons/send
|
||||||
:action #(re-frame/dispatch [:profile/send-transaction public-key])
|
:action #(re-frame/dispatch [:profile/send-transaction public-key])
|
||||||
:accessibility-label :send-transaction-button}
|
:accessibility-label :send-transaction-button}]
|
||||||
{:label (i18n/label :t/share-profile-link)
|
(when-not platform/desktop?
|
||||||
:icon :main-icons/share
|
[{:label (i18n/label :t/share-profile-link)
|
||||||
:action #(re-frame/dispatch [:profile/share-profile-link public-key])
|
:icon :main-icons/share
|
||||||
:accessibility-label :share-profile-link}]))
|
:action #(re-frame/dispatch [:profile/share-profile-link public-key])
|
||||||
|
:accessibility-label :share-profile-link}])))
|
||||||
|
|
||||||
(defn profile-info-item [{:keys [label value options accessibility-label]}]
|
(defn profile-info-item [{:keys [label value options accessibility-label]}]
|
||||||
[react/view styles/profile-info-item
|
[react/view styles/profile-info-item
|
||||||
|
@ -87,11 +87,13 @@
|
|||||||
[status-bar/status-bar {:type :modal-white}]
|
[status-bar/status-bar {:type :modal-white}]
|
||||||
[qr-viewer-toolbar (:name contact) value]
|
[qr-viewer-toolbar (:name contact) value]
|
||||||
[qr-code-viewer/qr-code-viewer
|
[qr-code-viewer/qr-code-viewer
|
||||||
{:style styles/qr-code
|
(merge
|
||||||
:footer-button qr-code-share-button
|
{:style styles/qr-code
|
||||||
:value value
|
:value value
|
||||||
:hint (i18n/label :t/qr-code-public-key-hint)
|
:hint (i18n/label :t/qr-code-public-key-hint)
|
||||||
:legend (str value)}]]))
|
:legend (str value)}
|
||||||
|
(when-not platform/desktop?
|
||||||
|
{:footer-button qr-code-share-button}))]]))
|
||||||
|
|
||||||
(defn- show-qr [contact source value]
|
(defn- show-qr [contact source value]
|
||||||
#(re-frame/dispatch [:navigate-to :profile-qr-viewer {:contact contact
|
#(re-frame/dispatch [:navigate-to :profile-qr-viewer {:contact contact
|
||||||
|
@ -107,7 +107,7 @@
|
|||||||
routes
|
routes
|
||||||
(cond->
|
(cond->
|
||||||
(merge {:headerMode "none"
|
(merge {:headerMode "none"
|
||||||
:cardStyle {:backgroundColor (when platform/ios? :white)}
|
:cardStyle {:backgroundColor (when (or platform/ios? platform/desktop?) :white)}
|
||||||
:onTransitionStart (fn [n]
|
:onTransitionStart (fn [n]
|
||||||
(let [idx (.. n
|
(let [idx (.. n
|
||||||
-navigation
|
-navigation
|
||||||
|
@ -66,7 +66,8 @@
|
|||||||
(if js/goog.DEBUG
|
(if js/goog.DEBUG
|
||||||
@initial-view-id
|
@initial-view-id
|
||||||
@view-id))))
|
@view-id))))
|
||||||
(react/dismiss-keyboard!))
|
(when-not platform/desktop?
|
||||||
|
(react/dismiss-keyboard!)))
|
||||||
:component-did-update
|
:component-did-update
|
||||||
(fn []
|
(fn []
|
||||||
(log/debug :main-component-did-update @view-id))
|
(log/debug :main-component-did-update @view-id))
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
(def tr-to-talk-enabled? (enabled? (get-config :TRIBUTE_TO_TALK 0)))
|
(def tr-to-talk-enabled? (enabled? (get-config :TRIBUTE_TO_TALK 0)))
|
||||||
(def max-message-delivery-attempts (js/parseInt (get-config :MAX_MESSAGE_DELIVERY_ATTEMPTS "6")))
|
(def max-message-delivery-attempts (js/parseInt (get-config :MAX_MESSAGE_DELIVERY_ATTEMPTS "6")))
|
||||||
(def contract-nodes-enabled? (enabled? (get-config :CONTRACT_NODES "0")))
|
(def contract-nodes-enabled? (enabled? (get-config :CONTRACT_NODES "0")))
|
||||||
|
(def mobile-ui-for-desktop? (enabled? (get-config :MOBILE_UI_FOR_DESKTOP "0")))
|
||||||
|
|
||||||
;; CONFIG VALUES
|
;; CONFIG VALUES
|
||||||
(def log-level
|
(def log-level
|
||||||
|
@ -3,16 +3,13 @@
|
|||||||
[status-im.utils.platform :as platform]))
|
[status-im.utils.platform :as platform]))
|
||||||
|
|
||||||
(def navigation-actions
|
(def navigation-actions
|
||||||
(when (not platform/desktop?)
|
(.-NavigationActions js-dependencies/react-navigation))
|
||||||
(.-NavigationActions js-dependencies/react-navigation)))
|
|
||||||
|
|
||||||
(def navigation-events
|
(def navigation-events
|
||||||
(when (not platform/desktop?)
|
(.-NavigationEvents js-dependencies/react-navigation))
|
||||||
(.-NavigationEvents js-dependencies/react-navigation)))
|
|
||||||
|
|
||||||
(def stack-actions
|
(def stack-actions
|
||||||
(when (not platform/desktop?)
|
(.-StackActions js-dependencies/react-navigation))
|
||||||
(.-StackActions js-dependencies/react-navigation)))
|
|
||||||
|
|
||||||
(def navigator-ref (atom nil))
|
(def navigator-ref (atom nil))
|
||||||
|
|
||||||
@ -20,8 +17,7 @@
|
|||||||
(reset! navigator-ref ref))
|
(reset! navigator-ref ref))
|
||||||
|
|
||||||
(defn can-be-called? []
|
(defn can-be-called? []
|
||||||
(and @navigator-ref
|
@navigator-ref)
|
||||||
(not platform/desktop?)))
|
|
||||||
|
|
||||||
(defn navigate-to [route]
|
(defn navigate-to [route]
|
||||||
(when (can-be-called?)
|
(when (can-be-called?)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user