status-react/src/status_im/feature_flags.cljs
Mohamed Javid f762cdcf9b
[Feature] Wallet - Network filter UI in Wallet home and account screens (#18772)
This commit adds network filter UI in the Wallet home and account screens.

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2024-02-14 15:37:04 +05:30

39 lines
1.0 KiB
Clojure

(ns status-im.feature-flags
(:require
[clojure.string :as string]
[react-native.config :as config]
[reagent.core :as reagent]))
(defn- enabled-in-env?
[k]
(= "1" (config/get-config k)))
(defonce ^:private feature-flags-config
(reagent/atom
{::wallet.edit-default-keypair (enabled-in-env? :FLAG_EDIT_DEFAULT_KEYPAIR_ENABLED)
::wallet.bridge-token (enabled-in-env? :FLAG_BRIDGE_TOKEN_ENABLED)
::wallet.remove-account (enabled-in-env? :FLAG_REMOVE_ACCOUNT_ENABLED)
::wallet.network-filter (enabled-in-env? :FLAG_NETWORK_FILTER_ENABLED)}))
(defn feature-flags [] @feature-flags-config)
(def feature-flags-categories
(set (map
(fn [k]
(first (string/split (str (name k)) ".")))
(keys @feature-flags-config))))
(defn enabled?
[flag]
(get (feature-flags) flag))
(defn toggle
[flag]
(swap! feature-flags-config update flag not))
(defn alert
[flag action]
(if (enabled? flag)
(action)
(js/alert (str flag " is currently feature flagged off"))))