Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2c265891a4 | ||
|
|
bc14b9c9e1 | ||
|
|
f0fd1c3966 | ||
|
|
93b2a5de30 | ||
|
|
506c0c6136 | ||
|
|
2d499a8f72 |
@@ -28,4 +28,12 @@
|
|||||||
<item name="android:textColorPrimary">@color/alert_text</item>
|
<item name="android:textColorPrimary">@color/alert_text</item>
|
||||||
<item name="android:background">@color/alert_background</item>
|
<item name="android:background">@color/alert_background</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="Theme.FullScreenDialog">
|
||||||
|
<item name="android:windowNoTitle">true</item>
|
||||||
|
<item name="android:windowIsFloating">false</item>
|
||||||
|
<item name="android:windowBackground">@android:color/transparent</item>
|
||||||
|
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||||
|
<item name="android:navigationBarColor">@android:color/transparent</item>
|
||||||
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
+14
-4
@@ -228,6 +228,8 @@ PODS:
|
|||||||
- React-Core
|
- React-Core
|
||||||
- react-native-netinfo (4.7.0):
|
- react-native-netinfo (4.7.0):
|
||||||
- React
|
- React
|
||||||
|
- react-native-orientation-locker (1.5.0):
|
||||||
|
- React-Core
|
||||||
- react-native-randombytes (3.6.1):
|
- react-native-randombytes (3.6.1):
|
||||||
- React-Core
|
- React-Core
|
||||||
- react-native-safe-area-context (2.0.0):
|
- react-native-safe-area-context (2.0.0):
|
||||||
@@ -238,7 +240,7 @@ PODS:
|
|||||||
- React
|
- React
|
||||||
- react-native-status (1.0.0):
|
- react-native-status (1.0.0):
|
||||||
- React
|
- React
|
||||||
- react-native-status-keycard (2.5.38):
|
- react-native-status-keycard (2.5.39):
|
||||||
- Keycard
|
- Keycard
|
||||||
- React
|
- React
|
||||||
- react-native-webview (11.16.0):
|
- react-native-webview (11.16.0):
|
||||||
@@ -390,6 +392,7 @@ PODS:
|
|||||||
- libwebp (~> 1.0)
|
- libwebp (~> 1.0)
|
||||||
- SDWebImage/Core (~> 5.10)
|
- SDWebImage/Core (~> 5.10)
|
||||||
- secp256k1 (0.1.6)
|
- secp256k1 (0.1.6)
|
||||||
|
- ShowTime (2.5.3)
|
||||||
- SQLCipher (3.4.2):
|
- SQLCipher (3.4.2):
|
||||||
- SQLCipher/standard (= 3.4.2)
|
- SQLCipher/standard (= 3.4.2)
|
||||||
- SQLCipher/common (3.4.2)
|
- SQLCipher/common (3.4.2)
|
||||||
@@ -433,6 +436,7 @@ DEPENDENCIES:
|
|||||||
- react-native-lottie-splash-screen (from `../node_modules/react-native-lottie-splash-screen`)
|
- react-native-lottie-splash-screen (from `../node_modules/react-native-lottie-splash-screen`)
|
||||||
- react-native-mail (from `../node_modules/react-native-mail`)
|
- react-native-mail (from `../node_modules/react-native-mail`)
|
||||||
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
||||||
|
- react-native-orientation-locker (from `../node_modules/react-native-orientation-locker`)
|
||||||
- react-native-randombytes (from `../node_modules/react-native-randombytes`)
|
- react-native-randombytes (from `../node_modules/react-native-randombytes`)
|
||||||
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
|
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
|
||||||
- react-native-shake (from `../node_modules/react-native-shake`)
|
- react-native-shake (from `../node_modules/react-native-shake`)
|
||||||
@@ -469,6 +473,7 @@ DEPENDENCIES:
|
|||||||
- RNShare (from `../node_modules/react-native-share`)
|
- RNShare (from `../node_modules/react-native-share`)
|
||||||
- RNSVG (from `../node_modules/react-native-svg`)
|
- RNSVG (from `../node_modules/react-native-svg`)
|
||||||
- secp256k1 (from `https://github.com/status-im/secp256k1.swift.git`)
|
- secp256k1 (from `https://github.com/status-im/secp256k1.swift.git`)
|
||||||
|
- ShowTime
|
||||||
- SQLCipher (~> 3.0)
|
- SQLCipher (~> 3.0)
|
||||||
- SSZipArchive (= 2.4.3)
|
- SSZipArchive (= 2.4.3)
|
||||||
- TouchID (from `../node_modules/react-native-touch-id`)
|
- TouchID (from `../node_modules/react-native-touch-id`)
|
||||||
@@ -482,6 +487,7 @@ SPEC REPOS:
|
|||||||
- libwebp
|
- libwebp
|
||||||
- SDWebImage
|
- SDWebImage
|
||||||
- SDWebImageWebPCoder
|
- SDWebImageWebPCoder
|
||||||
|
- ShowTime
|
||||||
- SQLCipher
|
- SQLCipher
|
||||||
- SSZipArchive
|
- SSZipArchive
|
||||||
- TOCropViewController
|
- TOCropViewController
|
||||||
@@ -545,6 +551,8 @@ EXTERNAL SOURCES:
|
|||||||
:path: "../node_modules/react-native-mail"
|
:path: "../node_modules/react-native-mail"
|
||||||
react-native-netinfo:
|
react-native-netinfo:
|
||||||
:path: "../node_modules/@react-native-community/netinfo"
|
:path: "../node_modules/@react-native-community/netinfo"
|
||||||
|
react-native-orientation-locker:
|
||||||
|
:path: "../node_modules/react-native-orientation-locker"
|
||||||
react-native-randombytes:
|
react-native-randombytes:
|
||||||
:path: "../node_modules/react-native-randombytes"
|
:path: "../node_modules/react-native-randombytes"
|
||||||
react-native-safe-area-context:
|
react-native-safe-area-context:
|
||||||
@@ -640,7 +648,7 @@ SPEC CHECKSUMS:
|
|||||||
FBLazyVector: 352a8ca9bbc8e2f097d680747a8c97ecef12d469
|
FBLazyVector: 352a8ca9bbc8e2f097d680747a8c97ecef12d469
|
||||||
FBReactNativeSpec: 7dfb84f624136a45727c813ed21d130cd3e61beb
|
FBReactNativeSpec: 7dfb84f624136a45727c813ed21d130cd3e61beb
|
||||||
Folly: b73c3869541e86821df3c387eb0af5f65addfab4
|
Folly: b73c3869541e86821df3c387eb0af5f65addfab4
|
||||||
glog: 997518ea2aa2d8cd5df9797b641b758d52ecf2bc
|
glog: 36ce0530c6d2c3a5a4326885ef4069564887a1db
|
||||||
HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352
|
HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352
|
||||||
Keycard: ac6df4d91525c3c82635ac24d4ddd9a80aca5fc8
|
Keycard: ac6df4d91525c3c82635ac24d4ddd9a80aca5fc8
|
||||||
libwebp: 60305b2e989864154bd9be3d772730f08fc6a59c
|
libwebp: 60305b2e989864154bd9be3d772730f08fc6a59c
|
||||||
@@ -666,12 +674,13 @@ SPEC CHECKSUMS:
|
|||||||
react-native-lottie-splash-screen: 068688c15dd478301fda00f8d87d7fb7d5b9a93e
|
react-native-lottie-splash-screen: 068688c15dd478301fda00f8d87d7fb7d5b9a93e
|
||||||
react-native-mail: 8fdcd3aef007c33a6877a18eb4cf7447a1d4ce4a
|
react-native-mail: 8fdcd3aef007c33a6877a18eb4cf7447a1d4ce4a
|
||||||
react-native-netinfo: ddaca8bbb9e6e914b1a23787ccb879bc642931c9
|
react-native-netinfo: ddaca8bbb9e6e914b1a23787ccb879bc642931c9
|
||||||
|
react-native-orientation-locker: 851f6510d8046ea2f14aa169b1e01fcd309a94ba
|
||||||
react-native-randombytes: 421f1c7d48c0af8dbcd471b0324393ebf8fe7846
|
react-native-randombytes: 421f1c7d48c0af8dbcd471b0324393ebf8fe7846
|
||||||
react-native-safe-area-context: 60f654e00b6cc416573f6d5dbfce3839958eb57a
|
react-native-safe-area-context: 60f654e00b6cc416573f6d5dbfce3839958eb57a
|
||||||
react-native-shake: de052eaa3eadc4a326b8ddd7ac80c06e8d84528c
|
react-native-shake: de052eaa3eadc4a326b8ddd7ac80c06e8d84528c
|
||||||
react-native-slider: 12bd76d3d568c9c5500825db54123d44b48e4ad4
|
react-native-slider: 12bd76d3d568c9c5500825db54123d44b48e4ad4
|
||||||
react-native-status: 21f75d492fd311dc111303da38a7a2b23a8a8466
|
react-native-status: 21f75d492fd311dc111303da38a7a2b23a8a8466
|
||||||
react-native-status-keycard: f60ca57d789aad6875c64ece81ab06ef0609e0d3
|
react-native-status-keycard: f1c1227b2d5984c10fb44db68e4bfd2937f31e98
|
||||||
react-native-webview: 28a8636d97ee641f2ee8f20492d7a6c269c1d703
|
react-native-webview: 28a8636d97ee641f2ee8f20492d7a6c269c1d703
|
||||||
React-RCTActionSheet: e911b99f0d6fa7711ffc2f62d236b12a32771835
|
React-RCTActionSheet: e911b99f0d6fa7711ffc2f62d236b12a32771835
|
||||||
React-RCTAnimation: ad8b853170a059faf31d6add34f67d22391bbe01
|
React-RCTAnimation: ad8b853170a059faf31d6add34f67d22391bbe01
|
||||||
@@ -704,12 +713,13 @@ SPEC CHECKSUMS:
|
|||||||
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
|
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
|
||||||
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
|
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
|
||||||
secp256k1: f61d67e6fdcb85fd727acf1bf35ace6036db540c
|
secp256k1: f61d67e6fdcb85fd727acf1bf35ace6036db540c
|
||||||
|
ShowTime: 06cc9dc79886274b21041fe19b79c9eff59b9714
|
||||||
SQLCipher: f9fcf29b2e59ced7defc2a2bdd0ebe79b40d4990
|
SQLCipher: f9fcf29b2e59ced7defc2a2bdd0ebe79b40d4990
|
||||||
SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef
|
SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef
|
||||||
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
|
||||||
TouchID: ba4c656d849cceabc2e4eef722dea5e55959ecf4
|
TouchID: ba4c656d849cceabc2e4eef722dea5e55959ecf4
|
||||||
Yoga: 0276e9f20976c8568e107cfc1163a8629051adc0
|
Yoga: 0276e9f20976c8568e107cfc1163a8629051adc0
|
||||||
|
|
||||||
PODFILE CHECKSUM: ca5d07911eadc1267649ecc15379e5127a0cc839
|
PODFILE CHECKSUM: 06348d9065f85ab25a2c9560c69af5425c37e29e
|
||||||
|
|
||||||
COCOAPODS: 1.11.3
|
COCOAPODS: 1.11.3
|
||||||
|
|||||||
@@ -60,7 +60,9 @@
|
|||||||
"react-native-linear-gradient": "^2.5.6",
|
"react-native-linear-gradient": "^2.5.6",
|
||||||
"react-native-lottie-splash-screen": "^1.0.1",
|
"react-native-lottie-splash-screen": "^1.0.1",
|
||||||
"react-native-mail": "^6.1.1",
|
"react-native-mail": "^6.1.1",
|
||||||
|
"react-native-modal": "^13.0.1",
|
||||||
"react-native-navigation": "^7.27.1",
|
"react-native-navigation": "^7.27.1",
|
||||||
|
"react-native-navigation-bar-color": "^2.0.2",
|
||||||
"react-native-orientation-locker": "^1.5.0",
|
"react-native-orientation-locker": "^1.5.0",
|
||||||
"react-native-permissions": "^2.1.5",
|
"react-native-permissions": "^2.1.5",
|
||||||
"react-native-randombytes": "^3.6.1",
|
"react-native-randombytes": "^3.6.1",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
(ns react-native.core
|
(ns react-native.core
|
||||||
(:require ["react" :as react]
|
(:require ["react" :as react]
|
||||||
["react-native" :as react-native]
|
["react-native" :as react-native]
|
||||||
|
["react-native-modal" :default Modal]
|
||||||
[cljs-bean.core :as bean]
|
[cljs-bean.core :as bean]
|
||||||
[oops.core :as oops]
|
[oops.core :as oops]
|
||||||
[react-native.flat-list :as flat-list]
|
[react-native.flat-list :as flat-list]
|
||||||
@@ -31,7 +32,8 @@
|
|||||||
|
|
||||||
(def activity-indicator (reagent/adapt-react-class (.-ActivityIndicator ^js react-native)))
|
(def activity-indicator (reagent/adapt-react-class (.-ActivityIndicator ^js react-native)))
|
||||||
|
|
||||||
(def modal (reagent/adapt-react-class (.-Modal ^js react-native)))
|
;; "react-native-modal" is a superset to the Modal component from RN, no need to define it separately
|
||||||
|
(def modal (reagent/adapt-react-class Modal))
|
||||||
|
|
||||||
(def keyboard ^js (.-Keyboard ^js react-native))
|
(def keyboard ^js (.-Keyboard ^js react-native))
|
||||||
|
|
||||||
@@ -68,6 +70,7 @@
|
|||||||
(js->clj (.get (.-Dimensions ^js react-native) "window") :keywordize-keys true))
|
(js->clj (.get (.-Dimensions ^js react-native) "window") :keywordize-keys true))
|
||||||
|
|
||||||
(def status-bar (.-StatusBar ^js react-native))
|
(def status-bar (.-StatusBar ^js react-native))
|
||||||
|
(def sbc (.-backgroundColor ^js status-bar))
|
||||||
|
|
||||||
(def style-sheet (.-StyleSheet ^js react-native))
|
(def style-sheet (.-StyleSheet ^js react-native))
|
||||||
|
|
||||||
|
|||||||
@@ -73,3 +73,8 @@
|
|||||||
(defn merge-options
|
(defn merge-options
|
||||||
[id opts]
|
[id opts]
|
||||||
(.mergeOptions Navigation id (clj->js opts)))
|
(.mergeOptions Navigation id (clj->js opts)))
|
||||||
|
|
||||||
|
(defn update-props
|
||||||
|
[id opts]
|
||||||
|
(.updateProps Navigation id (clj->js opts)))
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
(defn background
|
(defn background
|
||||||
[override-theme]
|
[override-theme]
|
||||||
{:background-color (colors/theme-colors colors/white colors/neutral-95 override-theme)
|
{:background-color (colors/theme-colors colors/white colors/neutral-95 override-theme)
|
||||||
|
;:background-color :transparent
|
||||||
:flex 1
|
:flex 1
|
||||||
:border-top-left-radius border-radius
|
:border-top-left-radius border-radius
|
||||||
:border-top-right-radius border-radius})
|
:border-top-right-radius border-radius})
|
||||||
|
|||||||
@@ -3,8 +3,12 @@
|
|||||||
[quo2.foundations.colors :as colors]
|
[quo2.foundations.colors :as colors]
|
||||||
[react-native.core :as rn]
|
[react-native.core :as rn]
|
||||||
[react-native.hole-view :as hole-view]
|
[react-native.hole-view :as hole-view]
|
||||||
|
[react-native.navigation :as navigation]
|
||||||
|
[reagent.core :as reagent]
|
||||||
[status-im2.common.home.style :as style]
|
[status-im2.common.home.style :as style]
|
||||||
[status-im2.common.plus-button.view :as components.plus-button]
|
[status-im2.common.plus-button.view :as components.plus-button]
|
||||||
|
[status-im2.contexts.activity-center.view :as ac]
|
||||||
|
[status-im2.contexts.shell.animation :as shell]
|
||||||
[utils.re-frame :as rf]))
|
[utils.re-frame :as rf]))
|
||||||
|
|
||||||
(defn title-column
|
(defn title-column
|
||||||
@@ -39,6 +43,32 @@
|
|||||||
button-common-props)
|
button-common-props)
|
||||||
icon])
|
icon])
|
||||||
|
|
||||||
|
|
||||||
|
(defn ac-modal
|
||||||
|
[visible? is-visible? view-id]
|
||||||
|
[rn/modal
|
||||||
|
{:visible @visible?
|
||||||
|
:transparent true
|
||||||
|
:style {:margin 0
|
||||||
|
:width "100%"}
|
||||||
|
:on-back-button-press (fn []
|
||||||
|
(reset! visible? false)
|
||||||
|
(navigation/merge-options (clj->js view-id)
|
||||||
|
(clj->js {:statusBar {:style :dark}})))
|
||||||
|
:cover-screen true
|
||||||
|
:animation-type :slide
|
||||||
|
:hardware-accelerated true
|
||||||
|
:status-bar-translucent true}
|
||||||
|
[ac/view
|
||||||
|
(fn []
|
||||||
|
(reset! visible? false)
|
||||||
|
(navigation/merge-options (clj->js view-id)
|
||||||
|
(clj->js {:statusBar {:style (if (or (colors/dark?)
|
||||||
|
(not (shell/home-stack-open?)))
|
||||||
|
:light
|
||||||
|
:dark)}})))
|
||||||
|
#(reset! is-visible? true)]])
|
||||||
|
|
||||||
(defn top-nav
|
(defn top-nav
|
||||||
"[top-nav opts]
|
"[top-nav opts]
|
||||||
opts
|
opts
|
||||||
@@ -51,8 +81,12 @@
|
|||||||
notif-count (rf/sub [:activity-center/unread-count])
|
notif-count (rf/sub [:activity-center/unread-count])
|
||||||
new-notifications? (pos? notif-count)
|
new-notifications? (pos? notif-count)
|
||||||
notification-indicator :unread-dot
|
notification-indicator :unread-dot
|
||||||
counter-label "0"]
|
counter-label "0"
|
||||||
|
visible? (reagent/atom false)
|
||||||
|
is-visible? (reagent/atom false)
|
||||||
|
view-id (rf/sub [:view-id])]
|
||||||
[rn/view {:style (assoc style :height 56)}
|
[rn/view {:style (assoc style :height 56)}
|
||||||
|
[ac-modal visible? is-visible? view-id]
|
||||||
;; Left Section
|
;; Left Section
|
||||||
[rn/touchable-without-feedback {:on-press #(rf/dispatch [:navigate-to :my-profile])}
|
[rn/touchable-without-feedback {:on-press #(rf/dispatch [:navigate-to :my-profile])}
|
||||||
[rn/view
|
[rn/view
|
||||||
@@ -75,7 +109,7 @@
|
|||||||
[base-button :i/search #() :open-search-button button-common-props])
|
[base-button :i/search #() :open-search-button button-common-props])
|
||||||
[base-button :i/scan #() :open-scanner-button button-common-props]
|
[base-button :i/scan #() :open-scanner-button button-common-props]
|
||||||
[base-button :i/qr-code #() :show-qr-button button-common-props]
|
[base-button :i/qr-code #() :show-qr-button button-common-props]
|
||||||
[rn/view ;; Keep view instead of "[:<>" to make sure relative
|
[rn/view ;; Keep view instead of "[:<>" to make sure relative
|
||||||
;; position is calculated from this view instead of its parent
|
;; position is calculated from this view instead of its parent
|
||||||
[hole-view/hole-view
|
[hole-view/hole-view
|
||||||
{:key new-notifications? ;; Key is required to force removal of holes
|
{:key new-notifications? ;; Key is required to force removal of holes
|
||||||
@@ -88,7 +122,14 @@
|
|||||||
|
|
||||||
:else
|
:else
|
||||||
[{:x 33 :y -7 :width 18 :height 18 :borderRadius 7}])}
|
[{:x 33 :y -7 :width 18 :height 18 :borderRadius 7}])}
|
||||||
[base-button :i/activity-center #(rf/dispatch [:activity-center/open])
|
;[base-button :i/activity-center #(rf/dispatch [:activity-center/open])
|
||||||
|
; :open-activity-center-button button-common-props]
|
||||||
|
[base-button :i/activity-center
|
||||||
|
(fn []
|
||||||
|
(js/setTimeout #(navigation/merge-options (clj->js view-id)
|
||||||
|
(clj->js {:statusBar {:style :light}}))
|
||||||
|
20)
|
||||||
|
(reset! visible? (not @visible?)))
|
||||||
:open-activity-center-button button-common-props]]
|
:open-activity-center-button button-common-props]]
|
||||||
(when new-notifications?
|
(when new-notifications?
|
||||||
(if (= notification-indicator :counter)
|
(if (= notification-indicator :counter)
|
||||||
|
|||||||
@@ -15,9 +15,10 @@
|
|||||||
:color colors/white})
|
:color colors/white})
|
||||||
|
|
||||||
(defn screen-container
|
(defn screen-container
|
||||||
[window-width top bottom]
|
[window-width window-height top bottom]
|
||||||
{:flex 1
|
{:flex 1
|
||||||
:width window-width
|
:width window-width
|
||||||
|
;:height window-height
|
||||||
:padding-top (if (pos? top) (+ top 12) 12)
|
:padding-top (if (pos? top) (+ top 12) 12)
|
||||||
:padding-bottom bottom})
|
:padding-bottom bottom})
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,9 @@
|
|||||||
[quo2.core :as quo]
|
[quo2.core :as quo]
|
||||||
[quo2.foundations.colors :as colors]
|
[quo2.foundations.colors :as colors]
|
||||||
[react-native.core :as rn]
|
[react-native.core :as rn]
|
||||||
|
[react-native.platform :as platform]
|
||||||
[react-native.safe-area :as safe-area]
|
[react-native.safe-area :as safe-area]
|
||||||
|
[reagent.core :as reagent]
|
||||||
[status-im2.contexts.activity-center.notification-types :as types]
|
[status-im2.contexts.activity-center.notification-types :as types]
|
||||||
[status-im2.contexts.activity-center.notification.admin.view :as admin]
|
[status-im2.contexts.activity-center.notification.admin.view :as admin]
|
||||||
[status-im2.contexts.activity-center.notification.contact-requests.view :as contact-requests]
|
[status-im2.contexts.activity-center.notification.contact-requests.view :as contact-requests]
|
||||||
@@ -14,11 +16,13 @@
|
|||||||
[status-im2.contexts.activity-center.notification.reply.view :as reply]
|
[status-im2.contexts.activity-center.notification.reply.view :as reply]
|
||||||
[status-im2.contexts.activity-center.style :as style]
|
[status-im2.contexts.activity-center.style :as style]
|
||||||
[utils.i18n :as i18n]
|
[utils.i18n :as i18n]
|
||||||
|
[react-native.blur :as blur]
|
||||||
[utils.re-frame :as rf]))
|
[utils.re-frame :as rf]))
|
||||||
|
|
||||||
(defn filter-selector-read-toggle
|
(defn filter-selector-read-toggle
|
||||||
[]
|
[]
|
||||||
(let [unread-filter-enabled? (rf/sub [:activity-center/filter-status-unread-enabled?])]
|
(let [unread-filter-enabled? (rf/sub [:activity-center/filter-status-unread-enabled?])]
|
||||||
|
[rn/view]
|
||||||
[quo/filter
|
[quo/filter
|
||||||
{:pressed? unread-filter-enabled?
|
{:pressed? unread-filter-enabled?
|
||||||
:blur? true
|
:blur? true
|
||||||
@@ -28,27 +32,36 @@
|
|||||||
:all
|
:all
|
||||||
:unread)}])}]))
|
:unread)}])}]))
|
||||||
|
|
||||||
|
|
||||||
(defn options-bottom-sheet-content
|
(defn options-bottom-sheet-content
|
||||||
[]
|
[bottom-inset]
|
||||||
(let [unread-count (rf/sub [:activity-center/unread-count])]
|
(let [unread-count (rf/sub [:activity-center/unread-count])]
|
||||||
[quo/action-drawer
|
[rn/view
|
||||||
[[{:icon :i/check
|
{:style {:background-color colors/neutral-100
|
||||||
:override-theme :dark
|
:padding-bottom (if platform/ios? bottom-inset 20)
|
||||||
:label (i18n/label :t/mark-all-notifications-as-read)
|
:padding-top 20
|
||||||
:on-press (fn []
|
;:height 100
|
||||||
(if (pos? unread-count)
|
:border-top-left-radius 20
|
||||||
(rf/dispatch [:activity-center.notifications/mark-all-as-read-locally
|
:border-top-right-radius 20
|
||||||
(fn []
|
:width "100%"}}
|
||||||
{:icon :up-to-date
|
[quo/action-drawer
|
||||||
:icon-color colors/success-50
|
[[{:icon :i/check
|
||||||
:text (i18n/label :t/notifications-marked-as-read
|
:override-theme :dark
|
||||||
{:count unread-count})
|
:label (i18n/label :t/mark-all-notifications-as-read)
|
||||||
:override-theme :dark})])
|
:on-press (fn []
|
||||||
;; Need design improvements if there is NO unread
|
(if (pos? unread-count)
|
||||||
;; notifications to mark as read
|
(rf/dispatch [:activity-center.notifications/mark-all-as-read-locally
|
||||||
;; https://github.com/status-im/status-mobile/issues/14983
|
(fn []
|
||||||
(js/alert "No unread notifications to mark as read"))
|
{:icon :up-to-date
|
||||||
(rf/dispatch [:bottom-sheet/hide]))}]]]))
|
:icon-color colors/success-50
|
||||||
|
:text (i18n/label :t/notifications-marked-as-read
|
||||||
|
{:count unread-count})
|
||||||
|
:override-theme :dark})])
|
||||||
|
;; Need design improvements if there is NO unread
|
||||||
|
;; notifications to mark as read
|
||||||
|
;; https://github.com/status-im/status-mobile/issues/14983
|
||||||
|
(js/alert "No unread notifications to mark as read"))
|
||||||
|
(rf/dispatch [:bottom-sheet/hide]))}]]]]))
|
||||||
|
|
||||||
(defn empty-tab
|
(defn empty-tab
|
||||||
[]
|
[]
|
||||||
@@ -134,7 +147,7 @@
|
|||||||
(contains? types-with-unread types/system))}]}]))
|
(contains? types-with-unread types/system))}]}]))
|
||||||
|
|
||||||
(defn header
|
(defn header
|
||||||
[request-close]
|
[request-close open-sheet]
|
||||||
[rn/view
|
[rn/view
|
||||||
[rn/view {:style style/header-container}
|
[rn/view {:style style/header-container}
|
||||||
[quo/button
|
[quo/button
|
||||||
@@ -151,9 +164,11 @@
|
|||||||
:size 32
|
:size 32
|
||||||
:accessibility-label :activity-center-open-more
|
:accessibility-label :activity-center-open-more
|
||||||
:override-theme :dark
|
:override-theme :dark
|
||||||
:on-press #(rf/dispatch [:bottom-sheet/show-sheet
|
:on-press open-sheet
|
||||||
{:content options-bottom-sheet-content
|
;:on-press #(rf/dispatch [:bottom-sheet/show-sheet
|
||||||
:override-theme :dark}])}
|
; {:content options-bottom-sheet-content
|
||||||
|
; :override-theme :dark}])
|
||||||
|
}
|
||||||
:i/options]]
|
:i/options]]
|
||||||
[quo/text
|
[quo/text
|
||||||
{:size :heading-1
|
{:size :heading-1
|
||||||
@@ -203,16 +218,38 @@
|
|||||||
|
|
||||||
(defn view
|
(defn view
|
||||||
[request-close]
|
[request-close]
|
||||||
(let [active-swipeable (atom nil)]
|
(let [active-swipeable (atom nil)
|
||||||
|
visible? (reagent/atom false)
|
||||||
|
view-id (rf/sub [:view-id])]
|
||||||
[:f>
|
[:f>
|
||||||
(fn []
|
(fn []
|
||||||
(rn/use-effect-once #(rf/dispatch [:activity-center.notifications/fetch-first-page]))
|
(rn/use-effect-once #(rf/dispatch [:activity-center.notifications/fetch-first-page]))
|
||||||
[safe-area/consumer
|
[safe-area/consumer
|
||||||
(fn [{:keys [top bottom]}]
|
(fn [{:keys [top bottom]}]
|
||||||
(let [notifications (rf/sub [:activity-center/notifications])
|
(let [notifications (rf/sub [:activity-center/notifications])
|
||||||
window-width (rf/sub [:dimensions/window-width])]
|
window-width (rf/sub [:dimensions/window-width])
|
||||||
[rn/view {:style (style/screen-container window-width top bottom)}
|
window-height (rf/sub [:dimensions/window-height])]
|
||||||
[header request-close]
|
[rn/view {:style (style/screen-container window-width window-height top bottom)}
|
||||||
|
[rn/modal
|
||||||
|
{:is-visible @visible?
|
||||||
|
:use-native-driver true
|
||||||
|
:use-native-driver-for-backdrop true
|
||||||
|
:hide-modal-content-while-animating true
|
||||||
|
:backdrop-opacity 0.5
|
||||||
|
:on-backdrop-press #(reset! visible? false)
|
||||||
|
:style {:justify-content :flex-end
|
||||||
|
:margin 0
|
||||||
|
:width "100%"
|
||||||
|
:align-self :center}}
|
||||||
|
[options-bottom-sheet-content bottom]]
|
||||||
|
[blur/view
|
||||||
|
{:blurAmount 32
|
||||||
|
:style {:position :absolute
|
||||||
|
:top 0
|
||||||
|
:bottom 0
|
||||||
|
:left 0
|
||||||
|
:right 0}}]
|
||||||
|
[header request-close #(reset! visible? true)]
|
||||||
[rn/flat-list
|
[rn/flat-list
|
||||||
{:data notifications
|
{:data notifications
|
||||||
:render-data active-swipeable
|
:render-data active-swipeable
|
||||||
|
|||||||
@@ -9330,6 +9330,13 @@ react-lifecycles-compat@2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-2.0.0.tgz#71d9c4cde47114c4102454f76da055c2bc48c948"
|
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-2.0.0.tgz#71d9c4cde47114c4102454f76da055c2bc48c948"
|
||||||
integrity sha512-txfpPCQYiazVdcbMRhatqWKcAxJweUu2wDXvts5/7Wyp6+Y9cHojqXHsLPEckzutfHlxZhG8Oiundbmp8Fd6eQ==
|
integrity sha512-txfpPCQYiazVdcbMRhatqWKcAxJweUu2wDXvts5/7Wyp6+Y9cHojqXHsLPEckzutfHlxZhG8Oiundbmp8Fd6eQ==
|
||||||
|
|
||||||
|
react-native-animatable@1.3.3:
|
||||||
|
version "1.3.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-animatable/-/react-native-animatable-1.3.3.tgz#a13a4af8258e3bb14d0a9d839917e9bb9274ec8a"
|
||||||
|
integrity sha512-2ckIxZQAsvWn25Ho+DK3d1mXIgj7tITkrS4pYDvx96WyOttSvzzFeQnM2od0+FUMzILbdHDsDEqZvnz1DYNQ1w==
|
||||||
|
dependencies:
|
||||||
|
prop-types "^15.7.2"
|
||||||
|
|
||||||
react-native-background-timer@^2.1.1:
|
react-native-background-timer@^2.1.1:
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-background-timer/-/react-native-background-timer-2.2.0.tgz#ff82d30899209b924983cc00e6ce174b8de5054a"
|
resolved "https://registry.yarnpkg.com/react-native-background-timer/-/react-native-background-timer-2.2.0.tgz#ff82d30899209b924983cc00e6ce174b8de5054a"
|
||||||
@@ -9458,6 +9465,19 @@ react-native-mail@^6.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/react-native-mail/-/react-native-mail-6.1.1.tgz#f1b1f8034c84d2510a93e4a2a795f0db5a13595e"
|
resolved "https://registry.yarnpkg.com/react-native-mail/-/react-native-mail-6.1.1.tgz#f1b1f8034c84d2510a93e4a2a795f0db5a13595e"
|
||||||
integrity sha512-pTs180wwyh7hN/iyTC9SfOX579U4YhDlHOLxi47IGvhPJENqO/QFdBq+wWKxyhNqdQuVSy+LoeIxLreWnIeYmg==
|
integrity sha512-pTs180wwyh7hN/iyTC9SfOX579U4YhDlHOLxi47IGvhPJENqO/QFdBq+wWKxyhNqdQuVSy+LoeIxLreWnIeYmg==
|
||||||
|
|
||||||
|
react-native-modal@^13.0.1:
|
||||||
|
version "13.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-modal/-/react-native-modal-13.0.1.tgz#691f1e646abb96fa82c1788bf18a16d585da37cd"
|
||||||
|
integrity sha512-UB+mjmUtf+miaG/sDhOikRfBOv0gJdBU2ZE1HtFWp6UixW9jCk/bhGdHUgmZljbPpp0RaO/6YiMmQSSK3kkMaw==
|
||||||
|
dependencies:
|
||||||
|
prop-types "^15.6.2"
|
||||||
|
react-native-animatable "1.3.3"
|
||||||
|
|
||||||
|
react-native-navigation-bar-color@^2.0.2:
|
||||||
|
version "2.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-native-navigation-bar-color/-/react-native-navigation-bar-color-2.0.2.tgz#2e14ca79a656d81d5b4b7433ae43966ef5206444"
|
||||||
|
integrity sha512-ZmpLWRocyme1au11e5ZuecMS/UCi57nlzgnioi03Q6ERMbeUOqqbWgNBaNB7SsCeqBV6fZPjo3+A64zEIpzw4w==
|
||||||
|
|
||||||
react-native-navigation@^7.27.1:
|
react-native-navigation@^7.27.1:
|
||||||
version "7.27.1"
|
version "7.27.1"
|
||||||
resolved "https://registry.yarnpkg.com/react-native-navigation/-/react-native-navigation-7.27.1.tgz#90bfac2a400109cc036394b4ee807a997da6a7b4"
|
resolved "https://registry.yarnpkg.com/react-native-navigation/-/react-native-navigation-7.27.1.tgz#90bfac2a400109cc036394b4ee807a997da6a7b4"
|
||||||
|
|||||||
Reference in New Issue
Block a user