diff --git a/src/status_im/contexts/wallet/add_account/create_account/view.cljs b/src/status_im/contexts/wallet/add_account/create_account/view.cljs index 43219cc93249..46aadc36cddc 100644 --- a/src/status_im/contexts/wallet/add_account/create_account/view.cljs +++ b/src/status_im/contexts/wallet/add_account/create_account/view.cljs @@ -47,7 +47,7 @@ :image :icon :image-props :i/derivated-path :action :button - :action-props {:on-press #(if (ff/enabled? :ff/wallet.edit-derivation-path) + :action-props {:on-press #(if (ff/enabled? ::ff/wallet.edit-derivation-path) (rf/dispatch [:standard-auth/authorize {:on-auth-success on-auth-success :auth-button-label (i18n/label :t/continue)}]) diff --git a/src/status_im/contexts/wallet/common/token_value/view.cljs b/src/status_im/contexts/wallet/common/token_value/view.cljs index 1601c9546c3a..fea58f88e448 100644 --- a/src/status_im/contexts/wallet/common/token_value/view.cljs +++ b/src/status_im/contexts/wallet/common/token_value/view.cljs @@ -1,65 +1,78 @@ (ns status-im.contexts.wallet.common.token-value.view (:require [quo.core :as quo] + [status-im.feature-flags :as ff] [utils.i18n :as i18n] [utils.re-frame :as rf])) -(defn watch-only-token-value-drawer +(defn- action-buy [] - [quo/action-drawer - [[{:icon :i/settings - :accessibility-label :settings - :label (i18n/label :t/manage-tokens) - :on-press #(js/alert "to be implemented")} - {:icon :i/hide - :accessibility-label :hide - :label (i18n/label :t/hide) - :on-press #(js/alert "to be implemented")}]]]) + {:icon :i/buy + :accessibility-label :buy + :label (i18n/label :t/buy) + :on-press #(js/alert "to be implemented") + :right-icon :i/external}) + +(defn- action-send + [token-data] + {:icon :i/send + :accessibility-label :send + :label (i18n/label :t/send) + :on-press (fn [] + (rf/dispatch [:hide-bottom-sheet]) + (rf/dispatch [:wallet/clean-send-data]) + (rf/dispatch [:wallet/send-select-token + {:token token-data + :start-flow? true}]))}) + +(defn- action-receive + [] + {:icon :i/receive + :accessibility-label :receive + :label (i18n/label :t/receive) + :on-press #(rf/dispatch [:open-modal :screen/wallet.share-address {:status :receive}])}) + +(defn- action-bridge + [] + {:icon :i/bridge + :accessibility-label :bridge + :label (i18n/label :t/bridge) + :on-press #(js/alert "to be implemented")}) + +(defn- action-manage-tokens + [watch-only?] + {:icon :i/settings + :accessibility-label :settings + :label (i18n/label :t/manage-tokens) + :on-press #(js/alert "to be implemented") + :add-divider? (not watch-only?)}) + +(defn- action-hide + [] + {:icon :i/hide + :accessibility-label :hide + :label (i18n/label :t/hide) + :on-press #(js/alert "to be implemented")}) (defn token-value-drawer - [token] + [token watch-only?] (let [token-data (first (rf/sub [:wallet/current-viewing-account-tokens-filtered (:token token)]))] [quo/action-drawer - [[{:icon :i/buy - :accessibility-label :buy - :label (i18n/label :t/buy) - :on-press #(js/alert "to be implemented") - :right-icon :i/external} - {:icon :i/send - :accessibility-label :send - :label (i18n/label :t/send) - :on-press (fn [] - (rf/dispatch [:hide-bottom-sheet]) - (rf/dispatch [:wallet/clean-send-data]) - (rf/dispatch [:wallet/send-select-token - {:token token-data - :start-flow? true}]))} - {:icon :i/receive - :accessibility-label :receive - :label (i18n/label :t/receive) - :on-press #(js/alert "to be implemented")} - {:icon :i/bridge - :accessibility-label :bridge - :label (i18n/label :t/bridge) - :on-press #(js/alert "to be implemented")} - {:icon :i/settings - :accessibility-label :settings - :label (i18n/label :t/manage-tokens) - :on-press #(js/alert "to be implemented") - :add-divider? true} - {:icon :i/hide - :accessibility-label :hide - :label (i18n/label :t/hide) - :on-press #(js/alert "to be implemented")}]]])) + [(cond->> [(when (ff/enabled? ::ff/wallet.assets-modal-manage-tokens) + (action-manage-tokens watch-only?)) + (when (ff/enabled? ::ff/wallet.assets-modal-hide) + (action-hide))] + (not watch-only?) (concat [(action-buy) + (action-send token-data) + (action-receive) + (action-bridge)]))]])) (defn view [item _ _ {:keys [watch-only?]}] [quo/token-value - (merge item - {:on-long-press - #(rf/dispatch - [:show-bottom-sheet - {:content (fn [] - (if watch-only? - [watch-only-token-value-drawer] - [token-value-drawer item])) - :selected-item (fn [] [quo/token-value item])}])})]) + (cond-> item + (or (not watch-only?) (ff/enabled? ::ff/wallet.long-press-watch-only-asset)) + (assoc :on-long-press + #(rf/dispatch + [:show-bottom-sheet + {:content (fn [] [token-value-drawer item watch-only?]) + :selected-item (fn [] [quo/token-value item])}])))]) diff --git a/src/status_im/feature_flags.cljs b/src/status_im/feature_flags.cljs index d6403625c8a7..83325fd2d75c 100644 --- a/src/status_im/feature_flags.cljs +++ b/src/status_im/feature_flags.cljs @@ -10,10 +10,13 @@ (defonce ^:private feature-flags-config (reagent/atom - {::wallet.bridge-token (enabled-in-env? :FLAG_BRIDGE_TOKEN_ENABLED) - ::wallet.edit-derivation-path (enabled-in-env? :FLAG_EDIT_DERIVATION_PATH) - ::wallet.remove-account (enabled-in-env? :FLAG_REMOVE_ACCOUNT_ENABLED) - ::community.edit-account-selection (enabled-in-env? :FLAG_EDIT_ACCOUNT_SELECTION_ENABLED)})) + {::wallet.bridge-token (enabled-in-env? :FLAG_BRIDGE_TOKEN_ENABLED) + ::wallet.edit-derivation-path (enabled-in-env? :FLAG_EDIT_DERIVATION_PATH) + ::wallet.remove-account (enabled-in-env? :FLAG_REMOVE_ACCOUNT_ENABLED) + ::wallet.long-press-watch-only-asset (enabled-in-env? :FLAG_LONG_PRESS_WATCH_ONLY_ASSET_ENABLED) + ::wallet.assets-modal-manage-tokens (enabled-in-env? :FLAG_ASSETS_MODAL_MANAGE_TOKENS) + ::wallet.assets-modal-hide (enabled-in-env? :FLAG_ASSETS_MODAL_HIDE) + ::community.edit-account-selection (enabled-in-env? :FLAG_EDIT_ACCOUNT_SELECTION_ENABLED)})) (defn feature-flags [] @feature-flags-config)