Skip to content

Commit

Permalink
fix: non supported network warning is shown on the bridge flow
Browse files Browse the repository at this point in the history
Signed-off-by: Brian Sztamfater <brian@status.im>
  • Loading branch information
briansztamfater authored and mariia-skrypnyk committed May 22, 2024
1 parent e5ab94f commit c7cf202
Show file tree
Hide file tree
Showing 8 changed files with 44 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
(h/render-with-theme-provider component :light))

(def props
{:theme :light
:state :default
{:state :default
:label "Mainnet"
:network-image 873
:customization-color :blue
Expand Down
1 change: 1 addition & 0 deletions src/quo/components/list_items/network_list/style.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
:padding-vertical 8
:border-radius 12
:height 56
:opacity (if (= state :disabled) 0.3 1)
:background-color (background-color state customization-color theme)})

(def info
Expand Down
9 changes: 4 additions & 5 deletions src/quo/components/list_items/network_list/view.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,12 @@
[:catn
[:props
[:map {:closed true}
[:theme :schema.common/theme]
[:network-image :int]
[:label :string]
[:fiat-value :string]
[:token-value :string]
[:customization-color {:optional true} [:maybe :schema.common/customization-color]]
[:state {:optional true} [:enum :pressed :active :default]]
[:state {:optional true} [:enum :pressed :active :disabled :default]]
[:on-press {:optional true} [:maybe fn?]]]]]
:any])

Expand All @@ -61,9 +60,9 @@
internal-state (if pressed? :pressed state)]
[rn/pressable
{:style (style/container internal-state customization-color theme)
:on-press-in on-press-in
:on-press-out on-press-out
:on-press on-press
:on-press-in (when-not (= state :disabled) on-press-in)
:on-press-out (when-not (= state :disabled) on-press-out)
:on-press (when-not (= state :disabled) on-press)
:accessibility-label :network-list}
[info props]
[values props]]))
Expand Down
35 changes: 20 additions & 15 deletions src/status_im/contexts/wallet/bridge/bridge_to/view.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -8,44 +8,49 @@
[status-im.contexts.wallet.bridge.bridge-to.style :as style]
[status-im.contexts.wallet.common.account-switcher.view :as account-switcher]
[status-im.contexts.wallet.common.utils :as utils]
[status-im.contexts.wallet.common.utils.networks :as network-utils]
[utils.i18n :as i18n]
[utils.re-frame :as rf]))

(defn- bridge-token-component
[]
(fn [{:keys [chain-id network-name]} token]
(let [network (rf/sub [:wallet/network-details-by-chain-id chain-id])
currency (rf/sub [:profile/currency])
currency-symbol (rf/sub [:profile/currency-symbol])
balance (utils/calculate-total-token-balance token [chain-id])
crypto-value (utils/get-standard-crypto-format token balance)
fiat-value (utils/calculate-token-fiat-value
{:currency currency
:balance balance
:token token})
fiat-formatted (utils/get-standard-fiat-format crypto-value currency-symbol fiat-value)]
(fn [{:keys [chain-id network-name]} {:keys [networks] :as token}]
(let [network (rf/sub [:wallet/network-details-by-chain-id chain-id])
currency (rf/sub [:profile/currency])
currency-symbol (rf/sub [:profile/currency-symbol])
balance (utils/calculate-total-token-balance token [chain-id])
crypto-value (utils/get-standard-crypto-format token balance)
fiat-value (utils/calculate-token-fiat-value
{:currency currency
:balance balance
:token token})
fiat-formatted (utils/get-standard-fiat-format crypto-value
currency-symbol
fiat-value)
token-available-on-network? (network-utils/token-available-on-network? networks chain-id)]
[quo/network-list
{:label (name network-name)
:network-image (quo.resources/get-network (:network-name network))
:token-value (str crypto-value " " (:symbol token))
:fiat-value fiat-formatted
:state (if token-available-on-network? :default :disabled)
:on-press #(rf/dispatch [:wallet/select-bridge-network
{:network-chain-id chain-id
:stack-id :screen/wallet.bridge-to}])}])))

(defn view
[]
(let [send-bridge-data (rf/sub [:wallet/wallet-send])
network-details (rf/sub [:wallet/network-details])
(let [network-details (rf/sub [:wallet/network-details])
account (rf/sub [:wallet/current-viewing-account])
token (:token send-bridge-data)
token (rf/sub [:wallet/wallet-send-token])
token-symbol (:symbol token)
tokens (:tokens account)
mainnet (first network-details)
layer-2-networks (rest network-details)
account-token (some #(when (= token-symbol (:symbol %)) %) tokens)
account-token (when account-token (assoc account-token :networks (:networks token)))
bridge-to-title (i18n/label :t/bridge-to
{:name (string/upper-case (str (:name token)))})]
{:name (string/upper-case (str token-symbol))})]
[rn/view
[account-switcher/view
{:on-press #(rf/dispatch [:navigate-back])
Expand Down
6 changes: 6 additions & 0 deletions src/status_im/contexts/wallet/common/utils/networks.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -125,3 +125,9 @@
(string/join ", "))
formatted-text (string/replace network-names last-comma-followed-by-text-to-end-regex " and ")]
formatted-text))

(defn token-available-on-network?
[token-networks chain-id]
(let [token-networks-ids (mapv #(:chain-id %) token-networks)
token-networks-ids-set (set token-networks-ids)]
(contains? token-networks-ids-set chain-id)))
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,8 @@
:related-chain-id 1
:layer 1}]
:wallet/wallet-send-enabled-from-chain-ids [1]
:wallet/wallet-send-amount nil})
:wallet/wallet-send-amount nil
:wallet/wallet-send-tx-type :tx/send})

(h/describe "Send > input amount screen"
(h/setup-restorable-re-frame)
Expand Down
8 changes: 5 additions & 3 deletions src/status_im/contexts/wallet/send/input_amount/view.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -239,9 +239,11 @@
[:wallet/wallet-send-sender-network-values])
receiver-network-values (rf/sub
[:wallet/wallet-send-receiver-network-values])
token-not-supported-in-receiver-networks? (every? #(= (:type %) :not-available)
(filter #(not= (:type %) :add)
receiver-network-values))
tx-type (rf/sub [:wallet/wallet-send-tx-type])
token-not-supported-in-receiver-networks? (and (not= tx-type :tx/bridge)
(->> receiver-network-values
(remove #(= (:type %) :add))
(every? #(= (:type %) :not-available))))
suggested-routes (rf/sub [:wallet/wallet-send-suggested-routes])
routes (when suggested-routes
(or (:best suggested-routes) []))
Expand Down
5 changes: 5 additions & 0 deletions src/status_im/subs/wallet/wallet.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,11 @@
:<- [:wallet/wallet-send]
:-> :network-links)

(rf/reg-sub
:wallet/wallet-send-tx-type
:<- [:wallet/wallet-send]
:-> :tx-type)

(rf/reg-sub
:wallet/keypairs
:<- [:wallet]
Expand Down

0 comments on commit c7cf202

Please sign in to comment.