Skip to content

Commit

Permalink
feat: select asset screen ui
Browse files Browse the repository at this point in the history
Signed-off-by: Brian Sztamfater <[email protected]>
  • Loading branch information
briansztamfater committed Nov 1, 2023
1 parent 1fae0c9 commit 94d7742
Show file tree
Hide file tree
Showing 6 changed files with 130 additions and 6 deletions.
5 changes: 4 additions & 1 deletion src/status_im2/contexts/wallet/events.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -159,4 +159,7 @@

(rf/reg-event-fx :wallet/select-send-address
(fn [{:keys [db]} [address]]
{:db (assoc db :wallet/send-address address)}))
{:db (assoc db :wallet/send-address address)
:fx [[:dispatch
[:navigate-to-within-stack
[:wallet-select-asset :wallet-select-address]]]]}))
8 changes: 4 additions & 4 deletions src/status_im2/contexts/wallet/send/select_address/view.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -134,10 +134,9 @@
input-focused? (reagent/atom false)]
(fn []
(let [valid-ens-or-address? (boolean (rf/sub [:wallet/valid-ens-or-address?]))]
(rn/use-effect (fn []
(fn []
#_(rn/use-effect (fn []
(rf/dispatch [:wallet/clean-scanned-address])
(rf/dispatch [:wallet/clean-local-suggestions]))))
(rf/dispatch [:wallet/clean-local-suggestions])))
[rn/scroll-view
{:content-container-style (style/container margin-top)
:keyboard-should-persist-taps :handled
Expand Down Expand Up @@ -171,7 +170,8 @@
:type :primary
:disabled? (not valid-ens-or-address?)
:container-style style/button
:on-press #(js/alert "Not implemented yet")}
:on-press #(rf/dispatch [:navigate-to-within-stack
[:wallet-select-asset :wallet-select-address]])}
(i18n/label :t/continue)])]
[:<>
[quo/tabs
Expand Down
28 changes: 28 additions & 0 deletions src/status_im2/contexts/wallet/send/select_asset/style.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
(ns status-im2.contexts.wallet.send.select-asset.style)

(defn container
[margin-top]
{:flex 1
:margin-top margin-top})

(def title-container
{:margin-horizontal 20
:margin-vertical 12})

(def tabs
{:padding-top 20
:padding-bottom 12})

(def tabs-content
{:padding-left 20
:padding-right 8})

(def empty-container-style
{:justify-content :center
:flex 1
:margin-bottom 44})

(def button
{:justify-self :flex-end
:margin-bottom 46
:margin-horizontal 20})
88 changes: 88 additions & 0 deletions src/status_im2/contexts/wallet/send/select_asset/view.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
(ns status-im2.contexts.wallet.send.select-asset.view
(:require
[quo.core :as quo]
[quo.theme :as quo.theme]
[react-native.core :as rn]
[react-native.safe-area :as safe-area]
[reagent.core :as reagent]
[status-im2.contexts.wallet.send.select-asset.style :as style]
[utils.i18n :as i18n]
[utils.re-frame :as rf]))

(def tabs-data
[{:id :tab/assets :label (i18n/label :t/assets) :accessibility-label :assets-tab}
{:id :tab/collectibles :label (i18n/label :t/collectibles) :accessibility-label :collectibles-tab}])

(defn- asset-component
[]
(fn [_ _ _ _]
(let [_ {:on-press #(js/alert "Not implemented yet")
:active-state? false}]
[rn/view])))

(defn- asset-list
[]
(fn []
(let [local-suggestion (rf/sub [:wallet/local-suggestions])]
[rn/view {:style {:flex 1}}
[rn/flat-list
{:data local-suggestion
:content-container-style {:flex-grow 1}
:key-fn :id
:on-scroll-to-index-failed identity
:render-fn asset-component}]])))

(defn- tab-view
[selected-tab]
(case selected-tab
:tab/assets [asset-list]
:tab/collectibles [quo/empty-state
{:title (i18n/label :t/no-collectibles)
:description (i18n/label :t/no-collectibles-description)
:placeholder? true
:container-style style/empty-container-style}]))

(defn- search-input
[]
(fn []
[rn/view]))

(defn- f-view-internal
[]
(let [margin-top (safe-area/get-top)
selected-tab (reagent/atom (:id (first tabs-data)))
on-close #(rf/dispatch [:navigate-back-within-stack :wallet-select-asset])]
(fn []
[rn/scroll-view
{:content-container-style (style/container margin-top)
:keyboard-should-persist-taps :never
:scroll-enabled false}
[quo/page-nav
{:icon-name :i/arrow-left
:on-press on-close
:accessibility-label :top-bar
:right-side :account-switcher
:account-switcher {:customization-color :purple
:on-press #(js/alert "Not implemented yet")
:state :default
:emoji "🍑"}}]
[quo/text-combinations
{:title (i18n/label :t/select-asset)
:container-style style/title-container
:title-accessibility-label :title-label}]
[quo/segmented-control
{:size 32
:blur? false
:symbol false
:default-active :tab/assets
:container-style {:margin-horizontal 20}
:data tabs-data
:on-change #(reset! selected-tab %)}]
[search-input]
[tab-view @selected-tab]])))

(defn- view-internal
[]
[:f> f-view-internal])

(def view (quo.theme/with-theme view-internal))
4 changes: 4 additions & 0 deletions src/status_im2/navigation/screens.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
[status-im2.contexts.wallet.saved-addresses.view :as wallet-saved-addresses]
[status-im2.contexts.wallet.scan-account.view :as scan-address]
[status-im2.contexts.wallet.send.select-address.view :as wallet-select-address]
[status-im2.contexts.wallet.send.select-asset.view :as wallet-select-asset]
[status-im2.navigation.options :as options]
[status-im2.navigation.transitions :as transitions]))

Expand Down Expand Up @@ -272,6 +273,9 @@
:options {:modalPresentationStyle :overCurrentContext}
:component wallet-select-address/view}

{:name :wallet-select-asset
:component wallet-select-asset/view}

{:name :scan-address
:options (merge
options/dark-screen
Expand Down
3 changes: 2 additions & 1 deletion translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -2373,5 +2373,6 @@
"reset": "Reset",
"reveal-address": "Reveal address",
"derive-addresses": "Derive addresses",
"address-activity": "This address has activity"
"address-activity": "This address has activity",
"select-asset": "Select asset"
}

0 comments on commit 94d7742

Please sign in to comment.