Skip to content

Commit 21af0b3

Browse files
ajayesivanibrkhalil
authored andcommitted
Use quo/bottom-actions component in addresses for permissions screen (#18863)
1 parent 66508b0 commit 21af0b3

File tree

2 files changed

+38
-58
lines changed

2 files changed

+38
-58
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,3 @@
11
(ns status-im.contexts.communities.actions.addresses-for-permissions.style)
22

33
(def container {:flex 1})
4-
5-
(def buttons
6-
{:flex-direction :row
7-
:gap 12
8-
:padding-horizontal 20
9-
:padding-vertical 12})
10-
11-
(def highest-role
12-
{:flex-direction :row
13-
:gap 4
14-
:justify-content :center
15-
:align-items :center
16-
:margin-bottom 8})

src/status_im/contexts/communities/actions/addresses_for_permissions/view.cljs

+38-45
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
11
(ns status-im.contexts.communities.actions.addresses-for-permissions.view
22
(:require [quo.core :as quo]
3-
[quo.foundations.colors :as colors]
43
[react-native.core :as rn]
54
[react-native.gesture :as gesture]
65
[status-im.common.not-implemented :as not-implemented]
76
[status-im.common.resources :as resources]
87
[status-im.constants :as constants]
98
[status-im.contexts.communities.actions.addresses-for-permissions.style :as style]
10-
[status-im.contexts.communities.utils :as communities.utils]
119
[utils.i18n :as i18n]
1210
[utils.money :as money]
1311
[utils.re-frame :as rf]))
1412

13+
(defn- role-keyword
14+
[role]
15+
(condp = role
16+
constants/community-token-permission-become-token-owner :token-owner
17+
constants/community-token-permission-become-token-master :token-master
18+
constants/community-token-permission-become-admin :admin
19+
constants/community-token-permission-become-member :member
20+
nil))
21+
1522
(defn- balances->components-props
1623
[balances token-img-src]
1724
(for [{:keys [amount decimals type name] :as balance} balances]
@@ -70,10 +77,7 @@
7077
accounts (rf/sub [:wallet/accounts-without-watched-accounts])
7178
selected-addresses (rf/sub [:communities/selected-permission-addresses id])
7279
share-all-addresses? (rf/sub [:communities/share-all-addresses? id])
73-
unsaved-address-changes? (rf/sub [:communities/unsaved-address-changes? id])
74-
highest-role-text (when highest-permission-role
75-
(i18n/label (communities.utils/role->translation-key
76-
highest-permission-role)))]
80+
unsaved-address-changes? (rf/sub [:communities/unsaved-address-changes? id])]
7781
[rn/safe-area-view {:style style/container}
7882
[quo/drawer-top
7983
{:type :context-tag
@@ -109,42 +113,31 @@
109113
:key-fn :address
110114
:data accounts}]
111115

112-
(if (and highest-permission-role (seq selected-addresses))
113-
[rn/view
114-
{:style style/highest-role}
115-
[quo/text
116-
{:size :paragraph-2
117-
:style {:color colors/neutral-50}}
118-
(i18n/label :t/eligible-to-join-as)]
119-
[quo/context-tag
120-
{:type :icon
121-
:icon :i/members
122-
:size 24
123-
:context highest-role-text}]]
124-
[quo/info-message
125-
{:type :error
126-
:size :default
127-
:icon :i/info
128-
:style {:justify-content :center}}
129-
(if (empty? selected-addresses)
130-
(i18n/label :t/no-addresses-selected)
131-
(i18n/label :t/addresses-dont-contain-tokens-needed))])
132-
133-
[rn/view {:style style/buttons}
134-
[quo/button
135-
{:type :grey
136-
:container-style {:flex 1}
137-
:on-press (fn []
138-
(rf/dispatch [:communities/reset-selected-permission-addresses id])
139-
(rf/dispatch [:navigate-back]))}
140-
(i18n/label :t/cancel)]
141-
[quo/button
142-
{:container-style {:flex 1}
143-
:customization-color color
144-
:disabled? (or (empty? selected-addresses)
145-
(not highest-permission-role)
146-
(not unsaved-address-changes?))
147-
:on-press (fn []
148-
(rf/dispatch [:communities/update-previous-permission-addresses id])
149-
(rf/dispatch [:navigate-back]))}
150-
(i18n/label :t/confirm-changes)]]]))))
116+
[quo/bottom-actions
117+
{:actions :two-actions
118+
:button-one-label (i18n/label :t/confirm-changes)
119+
:button-one-props {:customization-color color
120+
:disabled? (or (empty? selected-addresses)
121+
(not highest-permission-role)
122+
(not unsaved-address-changes?))
123+
:on-press (fn []
124+
(rf/dispatch
125+
[:communities/update-previous-permission-addresses
126+
id])
127+
(rf/dispatch [:navigate-back]))}
128+
:button-two-label (i18n/label :t/cancel)
129+
:button-two-props {:type :grey
130+
:on-press (fn []
131+
(rf/dispatch
132+
[:communities/reset-selected-permission-addresses id])
133+
(rf/dispatch [:navigate-back]))}
134+
:description (if (or (empty? selected-addresses)
135+
(not highest-permission-role))
136+
:top-error
137+
:top)
138+
:role (role-keyword highest-permission-role)
139+
:error-message (cond
140+
(empty? selected-addresses) (i18n/label :t/no-addresses-selected)
141+
(not highest-permission-role) (i18n/label
142+
:t/addresses-dont-contain-tokens-needed)
143+
:else nil)}]]))))

0 commit comments

Comments
 (0)