Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c80df7f7a9 | ||
|
|
f98ea75adb | ||
|
|
4540500da2 |
@@ -22,16 +22,6 @@
|
|||||||
(defn- header
|
(defn- header
|
||||||
[{:keys [on-legacy-press on-multichain-press address]}]
|
[{:keys [on-legacy-press on-multichain-press address]}]
|
||||||
[rn/view {:style style/header-container}
|
[rn/view {:style style/header-container}
|
||||||
[tab/view
|
|
||||||
{:accessibility-label :share-qr-code-multichain-tab
|
|
||||||
:id :wallet-multichain-tab
|
|
||||||
:active-item-container-style style/header-tab-active
|
|
||||||
:item-container-style style/header-tab-inactive
|
|
||||||
:size 24
|
|
||||||
:active (= :multichain address)
|
|
||||||
:on-press on-multichain-press}
|
|
||||||
(i18n/label :t/multichain)]
|
|
||||||
[rn/view {:style style/space-between-tabs}]
|
|
||||||
[tab/view
|
[tab/view
|
||||||
{:accessibility-label :share-qr-code-legacy-tab
|
{:accessibility-label :share-qr-code-legacy-tab
|
||||||
:id :wallet-legacy-tab
|
:id :wallet-legacy-tab
|
||||||
@@ -40,7 +30,17 @@
|
|||||||
:size 24
|
:size 24
|
||||||
:active (= :legacy address)
|
:active (= :legacy address)
|
||||||
:on-press on-legacy-press}
|
:on-press on-legacy-press}
|
||||||
(i18n/label :t/legacy)]])
|
(i18n/label :t/legacy)]
|
||||||
|
[rn/view {:style style/space-between-tabs}]
|
||||||
|
[tab/view
|
||||||
|
{:accessibility-label :share-qr-code-multichain-tab
|
||||||
|
:id :wallet-multichain-tab
|
||||||
|
:active-item-container-style style/header-tab-active
|
||||||
|
:item-container-style style/header-tab-inactive
|
||||||
|
:size 24
|
||||||
|
:active (= :multichain address)
|
||||||
|
:on-press on-multichain-press}
|
||||||
|
(i18n/label :t/multichain)]])
|
||||||
|
|
||||||
(defn- info-label
|
(defn- info-label
|
||||||
[share-qr-code-type]
|
[share-qr-code-type]
|
||||||
|
|||||||
@@ -96,7 +96,7 @@
|
|||||||
|
|
||||||
(defn- user-account
|
(defn- user-account
|
||||||
[{:keys [name balance percentage-value loading? amount customization-color type emoji metrics?
|
[{:keys [name balance percentage-value loading? amount customization-color type emoji metrics?
|
||||||
on-press]}]
|
on-press on-long-press]}]
|
||||||
(let [theme (quo.theme/use-theme)
|
(let [theme (quo.theme/use-theme)
|
||||||
[pressed? set-pressed] (rn/use-state false)
|
[pressed? set-pressed] (rn/use-state false)
|
||||||
on-press-in (rn/use-callback #(set-pressed true))
|
on-press-in (rn/use-callback #(set-pressed true))
|
||||||
@@ -110,14 +110,15 @@
|
|||||||
:theme theme
|
:theme theme
|
||||||
:metrics? metrics?}]
|
:metrics? metrics?}]
|
||||||
[rn/pressable
|
[rn/pressable
|
||||||
{:on-press-in on-press-in
|
{:on-long-press on-long-press
|
||||||
:on-press-out on-press-out
|
:on-press-in on-press-in
|
||||||
:style (style/card {:customization-color customization-color
|
:on-press-out on-press-out
|
||||||
:type type
|
:style (style/card {:customization-color customization-color
|
||||||
:theme theme
|
:type type
|
||||||
:pressed? pressed?
|
:theme theme
|
||||||
:metrics? metrics?})
|
:pressed? pressed?
|
||||||
:on-press on-press}
|
:metrics? metrics?})
|
||||||
|
:on-press on-press}
|
||||||
(when (and customization-color (and (not watch-only?) (not missing-keypair?)))
|
(when (and customization-color (and (not watch-only?) (not missing-keypair?)))
|
||||||
[customization-colors/overlay
|
[customization-colors/overlay
|
||||||
{:customization-color customization-color
|
{:customization-color customization-color
|
||||||
|
|||||||
@@ -26,10 +26,17 @@
|
|||||||
:type :positive
|
:type :positive
|
||||||
:text (i18n/label :t/account-created {:name (:name account)})}]]]})))
|
:text (i18n/label :t/account-created {:name (:name account)})}]]]})))
|
||||||
|
|
||||||
|
|
||||||
|
(defn set-current-viewing-account
|
||||||
|
[{:keys [db]} [address]]
|
||||||
|
{:db (assoc-in db [:wallet :current-viewing-account-address] address)})
|
||||||
|
|
||||||
|
(rf/reg-event-fx :wallet/set-current-viewing-account set-current-viewing-account)
|
||||||
|
|
||||||
(rf/reg-event-fx :wallet/navigate-to-account
|
(rf/reg-event-fx :wallet/navigate-to-account
|
||||||
(fn [{:keys [db]} [address]]
|
(fn [_cofx [address]]
|
||||||
{:db (assoc-in db [:wallet :current-viewing-account-address] address)
|
{:fx [[:dispatch [:wallet/set-current-viewing-account address]]
|
||||||
:fx [[:dispatch [:navigate-to :screen/wallet.accounts address]]]}))
|
[:dispatch [:navigate-to :screen/wallet.accounts address]]]}))
|
||||||
|
|
||||||
(rf/reg-event-fx :wallet/navigate-to-new-account
|
(rf/reg-event-fx :wallet/navigate-to-new-account
|
||||||
(fn [{:keys [db]} [address]]
|
(fn [{:keys [db]} [address]]
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
(:require
|
(:require
|
||||||
[quo.core :as quo]
|
[quo.core :as quo]
|
||||||
[react-native.core :as rn]
|
[react-native.core :as rn]
|
||||||
|
[react-native.platform :as platform]
|
||||||
[status-im.common.home.top-nav.view :as common.top-nav]
|
[status-im.common.home.top-nav.view :as common.top-nav]
|
||||||
|
[status-im.config :as config]
|
||||||
[status-im.contexts.wallet.home.style :as style]
|
[status-im.contexts.wallet.home.style :as style]
|
||||||
[status-im.contexts.wallet.home.tabs.view :as tabs]
|
[status-im.contexts.wallet.home.tabs.view :as tabs]
|
||||||
[status-im.contexts.wallet.sheets.network-filter.view :as network-filter]
|
[status-im.contexts.wallet.sheets.network-filter.view :as network-filter]
|
||||||
@@ -35,6 +37,82 @@
|
|||||||
{:id :collectibles :label (i18n/label :t/collectibles) :accessibility-label :collectibles-tab}
|
{:id :collectibles :label (i18n/label :t/collectibles) :accessibility-label :collectibles-tab}
|
||||||
{:id :activity :label (i18n/label :t/activity) :accessibility-label :activity-tab}])
|
{:id :activity :label (i18n/label :t/activity) :accessibility-label :activity-tab}])
|
||||||
|
|
||||||
|
(defn option
|
||||||
|
[{:keys [icon label on-press danger? sub-label add-divider? accessibility-label right-icon] :as opt}]
|
||||||
|
(when opt
|
||||||
|
^{:key label}
|
||||||
|
{:icon icon
|
||||||
|
:label label
|
||||||
|
:on-press on-press
|
||||||
|
:danger? danger?
|
||||||
|
:sub-label sub-label
|
||||||
|
:right-icon right-icon
|
||||||
|
:add-divider? add-divider?
|
||||||
|
:accessibility-label accessibility-label}))
|
||||||
|
|
||||||
|
(defn options
|
||||||
|
[account-name address]
|
||||||
|
[(when config/show-not-implemented-features?
|
||||||
|
{:icon :i/arrow-up
|
||||||
|
:label (i18n/label :t/send-to-user {:user account-name})
|
||||||
|
:on-press #(js/alert "TODO: to be implemented, requires design input")
|
||||||
|
:accessibility-label :manage-notifications})
|
||||||
|
(when config/show-not-implemented-features?
|
||||||
|
{:icon :i/link
|
||||||
|
:right-icon :i/external
|
||||||
|
:label (i18n/label :t/view-address-on-website {:website "Etherscan"})
|
||||||
|
:on-press #(js/alert "TODO: to be implemented, requires design input")
|
||||||
|
:accessibility-label :manage-notifications})
|
||||||
|
(when config/show-not-implemented-features?
|
||||||
|
{:icon :i/link
|
||||||
|
:right-icon :i/external
|
||||||
|
:label (i18n/label :t/view-address-on-website {:website "Optimistic"})
|
||||||
|
:on-press #(js/alert "TODO: to be implemented, requires design input")
|
||||||
|
:accessibility-label :manage-notifications})
|
||||||
|
{:icon :i/share
|
||||||
|
:on-press #(rf/dispatch
|
||||||
|
[:open-share
|
||||||
|
{:options (if platform/ios?
|
||||||
|
{:activityItemSources [{:placeholderItem {:type :text
|
||||||
|
:content address}
|
||||||
|
:item {:default {:type :text
|
||||||
|
:content
|
||||||
|
address}}
|
||||||
|
:linkMetadata {:title address}}]}
|
||||||
|
{:title address
|
||||||
|
:subject address
|
||||||
|
:message address
|
||||||
|
:isNewTask true})}])
|
||||||
|
:label (i18n/label :t/share-address)
|
||||||
|
:accessibility-label :manage-notifications}
|
||||||
|
{:icon :i/qr-code
|
||||||
|
:label (i18n/label :t/show-address-qr)
|
||||||
|
:on-press (fn []
|
||||||
|
(rf/dispatch [:wallet/set-current-viewing-account address])
|
||||||
|
(rf/dispatch [:open-modal :screen/wallet.share-address {:status :share}]))
|
||||||
|
:accessibility-label :manage-notifications}
|
||||||
|
(when config/show-not-implemented-features?
|
||||||
|
{:icon :i/edit
|
||||||
|
:label (i18n/label :t/edit-account)
|
||||||
|
:on-press #(rf/dispatch [:navigate-to :screen/wallet.edit-account])
|
||||||
|
:accessibility-label :manage-notifications})
|
||||||
|
(when config/show-not-implemented-features?
|
||||||
|
{:icon :i/delete
|
||||||
|
:label (i18n/label :t/remove-account)
|
||||||
|
:on-press #(js/alert "TODO: to be implemented, requires design input")
|
||||||
|
:danger? true
|
||||||
|
:accessibility-label :manage-notifications
|
||||||
|
:add-divider? true})])
|
||||||
|
|
||||||
|
(defn sample-options
|
||||||
|
[account-name address]
|
||||||
|
(keep option (options account-name address)))
|
||||||
|
|
||||||
|
(defn account-sheet
|
||||||
|
[{:keys [address] account-name :name}]
|
||||||
|
[quo/action-drawer
|
||||||
|
[(sample-options account-name address)]])
|
||||||
|
|
||||||
(defn view
|
(defn view
|
||||||
[]
|
[]
|
||||||
(let [[selected-tab set-selected-tab] (rn/use-state (:id (first tabs-data)))
|
(let [[selected-tab set-selected-tab] (rn/use-state (:id (first tabs-data)))
|
||||||
@@ -69,7 +147,28 @@
|
|||||||
:data cards
|
:data cards
|
||||||
:horizontal true
|
:horizontal true
|
||||||
:separator [rn/view {:style style/separator}]
|
:separator [rn/view {:style style/separator}]
|
||||||
:render-fn (fn [item] [quo/account-card item])
|
:render-fn (fn [{:keys [address ens-name color]
|
||||||
|
account-name :name
|
||||||
|
:as item}]
|
||||||
|
(let [updated-item (assoc item
|
||||||
|
:on-long-press
|
||||||
|
(fn []
|
||||||
|
(rf/dispatch
|
||||||
|
[:show-bottom-sheet
|
||||||
|
{:selected-item
|
||||||
|
(fn []
|
||||||
|
[quo/saved-address
|
||||||
|
{:active-state? false
|
||||||
|
:user-props
|
||||||
|
{:name account-name
|
||||||
|
:address address
|
||||||
|
:ens ens-name
|
||||||
|
:customization-color
|
||||||
|
color}}])
|
||||||
|
:content (fn []
|
||||||
|
[account-sheet
|
||||||
|
item])}])))]
|
||||||
|
[quo/account-card updated-item]))
|
||||||
:shows-horizontal-scroll-indicator false}]
|
:shows-horizontal-scroll-indicator false}]
|
||||||
[quo/tabs
|
[quo/tabs
|
||||||
{:style style/tabs
|
{:style style/tabs
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
status-im.contexts.wallet.common.wizard.events
|
status-im.contexts.wallet.common.wizard.events
|
||||||
status-im.contexts.wallet.effects
|
status-im.contexts.wallet.effects
|
||||||
status-im.contexts.wallet.events
|
status-im.contexts.wallet.events
|
||||||
|
status-im.contexts.wallet.save-address.events
|
||||||
status-im.contexts.wallet.send.events
|
status-im.contexts.wallet.send.events
|
||||||
status-im.contexts.wallet.signals
|
status-im.contexts.wallet.signals
|
||||||
[status-im.db :as db]
|
[status-im.db :as db]
|
||||||
|
|||||||
@@ -2589,5 +2589,7 @@
|
|||||||
"private-key-public-address": "Public address of private key",
|
"private-key-public-address": "Public address of private key",
|
||||||
"this-account-has-no-activity": "This account has no activity",
|
"this-account-has-no-activity": "This account has no activity",
|
||||||
"this-address-has-activity": "This address has activity",
|
"this-address-has-activity": "This address has activity",
|
||||||
"scanning-for-activity": "Scanning for activity..."
|
"scanning-for-activity": "Scanning for activity...",
|
||||||
|
"send-to-user": "Send to {{user}}",
|
||||||
|
"view-address-on-website": "View address on {{website}}"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user