Allow toggling communities
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
This commit is contained in:
parent
dd5c30b7a0
commit
a71468f425
1
.env
1
.env
|
@ -27,5 +27,4 @@ ENABLE_QUO_PREVIEW=1
|
|||
MAX_IMAGES_BATCH=5
|
||||
APN_TOPIC=im.status.ethereum.pr
|
||||
COMMUNITIES_ENABLED=1
|
||||
COMMUNITIES_MANAGEMENT_ENABLED=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
|
|
1
.env.e2e
1
.env.e2e
|
@ -27,5 +27,4 @@ MAX_IMAGES_BATCH=5
|
|||
APN_TOPIC=im.status.ethereum.pr
|
||||
VERIFY_TRANSACTION_CHAIN_ID=3
|
||||
COMMUNITIES_ENABLED=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
COMMUNITIES_MANAGEMENT_ENABLED=1
|
||||
|
|
|
@ -27,5 +27,4 @@ BLANK_PREVIEW=0
|
|||
MAX_IMAGES_BATCH=5
|
||||
GOOGLE_FREE=0
|
||||
COMMUNITIES_ENABLED=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
COMMUNITIES_MANAGEMENT_ENABLED=1
|
||||
|
|
|
@ -22,4 +22,3 @@ MAX_IMAGES_BATCH=5
|
|||
BLANK_PREVIEW=0
|
||||
COMMUNITIES_ENABLED=1
|
||||
DATABASE_MANAGEMENT_ENABLED=1
|
||||
COMMUNITIES_MANAGEMENT_ENABLED=1
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
(swap! tmp-storage merge items)
|
||||
(debounced))))
|
||||
|
||||
(defn- get-items [keys cb]
|
||||
(defn get-items [keys cb]
|
||||
(-> ^js async-storage
|
||||
(.multiGet (to-array (map key->string keys)))
|
||||
(.then (fn [^js data]
|
||||
|
@ -38,6 +38,14 @@
|
|||
(cb nil)
|
||||
(log/error "[async-storage]" error)))))
|
||||
|
||||
(defn get-item [k cb]
|
||||
(-> ^js async-storage
|
||||
(.getItem (key->string k))
|
||||
(.then cb)
|
||||
(.catch (fn [error]
|
||||
(cb nil)
|
||||
(log/error "[async-storage]" error)))))
|
||||
|
||||
(re-frame/reg-fx ::set! (set-item-factory))
|
||||
|
||||
(re-frame/reg-fx
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
[clojure.string :as string]
|
||||
[clojure.set :as clojure.set]
|
||||
[taoensso.timbre :as log]
|
||||
[status-im.async-storage.core :as async-storage]
|
||||
[status-im.utils.fx :as fx]
|
||||
[status-im.constants :as constants]
|
||||
[status-im.bottom-sheet.core :as bottom-sheet]
|
||||
|
@ -435,3 +436,9 @@
|
|||
:js-response true
|
||||
:on-success #(re-frame/dispatch [::request-to-join-declined community-id request-id %])
|
||||
:on-error #(log/error "failed to decline requests-to-join" community-id request-id)}]})
|
||||
|
||||
(fx/defn switch-communities-enabled
|
||||
{:events [:multiaccounts.ui/switch-communities-enabled]}
|
||||
[{:keys [db]} enabled?]
|
||||
{::async-storage/set! {:communities-enabled? enabled?}
|
||||
:db (assoc db :communities/enabled? enabled?)})
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
[status-im.anon-metrics.core :as anon-metrics]
|
||||
[status-im.chat.models.loading :as chat.loading]
|
||||
[status-im.contact.core :as contact]
|
||||
[status-im.utils.config :as config]
|
||||
[status-im.data-store.settings :as data-store.settings]
|
||||
[status-im.ethereum.core :as ethereum]
|
||||
[status-im.ethereum.transactions.core :as transactions]
|
||||
|
@ -37,6 +38,16 @@
|
|||
[status-im.async-storage.core :as async-storage]
|
||||
[status-im.notifications-center.core :as notifications-center]))
|
||||
|
||||
(re-frame/reg-fx
|
||||
::initialize-communities-enabled
|
||||
(fn []
|
||||
(let [callback #(re-frame/dispatch [:multiaccounts.ui/switch-communities-enabled %])]
|
||||
(if config/communities-enabled?
|
||||
(callback true)
|
||||
(async-storage/get-item
|
||||
:communities-enabled?
|
||||
callback)))))
|
||||
|
||||
(re-frame/reg-fx
|
||||
::login
|
||||
(fn [[key-uid account-data hashed-password]]
|
||||
|
@ -238,6 +249,10 @@
|
|||
[{:method (json-rpc/call-ext-method "getGroupChatInvitations")
|
||||
:on-success #(re-frame/dispatch [::initialize-invitations %])}]})
|
||||
|
||||
(fx/defn initialize-communities-enabled
|
||||
[cofx]
|
||||
{::initialize-communities-enabled nil})
|
||||
|
||||
(fx/defn get-settings-callback
|
||||
{:events [::get-settings-callback]}
|
||||
[{:keys [db] :as cofx} settings]
|
||||
|
@ -262,6 +277,7 @@
|
|||
(acquisition/login)
|
||||
(initialize-appearance)
|
||||
(transport/start-messenger)
|
||||
(initialize-communities-enabled)
|
||||
(check-network-version network-id)
|
||||
(chat.loading/initialize-chats)
|
||||
(communities/fetch)
|
||||
|
|
|
@ -211,23 +211,22 @@
|
|||
|
||||
;; communities
|
||||
|
||||
(reg-root-key-sub :raw-communities :communities)
|
||||
(reg-root-key-sub :communities/create :communities/create)
|
||||
(reg-root-key-sub :communities/requests-to-join :communities/requests-to-join)
|
||||
(reg-root-key-sub :communities/community-id-input :communities/community-id-input)
|
||||
(reg-root-key-sub :communities/enabled? :communities/enabled?)
|
||||
|
||||
(reg-root-key-sub :activity.center/notifications :activity.center/notifications)
|
||||
(reg-root-key-sub :activity.center/notifications-count :activity.center/notifications-count)
|
||||
|
||||
(re-frame/reg-sub
|
||||
:communities
|
||||
(fn [db]
|
||||
(cond
|
||||
config/communities-management-enabled?
|
||||
(:communities db)
|
||||
config/communities-enabled?
|
||||
;; If no management enabled, only return status-community
|
||||
(select-keys (:communities db) [constants/status-community-id])
|
||||
:else
|
||||
:<- [:raw-communities]
|
||||
:<- [:communities/enabled?]
|
||||
(fn [[raw-communities communities-enabled?]]
|
||||
(if communities-enabled?
|
||||
raw-communities
|
||||
[])))
|
||||
|
||||
(re-frame/reg-sub
|
||||
|
@ -249,13 +248,14 @@
|
|||
|
||||
(re-frame/reg-sub
|
||||
:communities/communities
|
||||
:<- [:communities/enabled?]
|
||||
:<- [:search/home-filter]
|
||||
:<- [:communities]
|
||||
(fn [[search-filter communities]]
|
||||
(fn [[communities-enabled? search-filter communities]]
|
||||
(filterv
|
||||
(fn [{:keys [name joined id]}]
|
||||
(and joined
|
||||
(or config/communities-management-enabled?
|
||||
(or communities-enabled?
|
||||
(= id constants/status-community-id))
|
||||
(or (empty? search-filter)
|
||||
(string/includes? (string/lower-case (str name)) search-filter))))
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
(defn- normal-mode-settings-data [{:keys [network-name
|
||||
current-log-level
|
||||
waku-bloom-filter-mode
|
||||
communities-enabled?
|
||||
current-fleet
|
||||
webview-debug]}]
|
||||
[{:size :small
|
||||
|
@ -65,6 +66,15 @@
|
|||
:on-press
|
||||
#(re-frame/dispatch [:navigate-to :notifications-advanced-settings])
|
||||
:chevron true})
|
||||
{:size :small
|
||||
:title (i18n/label :t/communities-enabled)
|
||||
:accessibility-label :communities-enabled
|
||||
:container-margin-bottom 8
|
||||
:on-press
|
||||
#(re-frame/dispatch
|
||||
[:multiaccounts.ui/switch-communities-enabled (not communities-enabled?)])
|
||||
:accessory :switch
|
||||
:active communities-enabled?}
|
||||
{:size :small
|
||||
:title "Webview debug"
|
||||
:accessibility-label :webview-debug-switch
|
||||
|
@ -96,6 +106,7 @@
|
|||
(views/letsubs [{:keys [webview-debug]} [:multiaccount]
|
||||
network-name [:network-name]
|
||||
waku-bloom-filter-mode [:waku/bloom-filter-mode]
|
||||
communities-enabled? [:communities/enabled?]
|
||||
current-log-level [:log-level/current-log-level]
|
||||
current-fleet [:fleets/current-fleet]]
|
||||
[react/view {:flex 1}
|
||||
|
@ -104,6 +115,7 @@
|
|||
{:data (flat-list-data
|
||||
{:network-name network-name
|
||||
:current-log-level current-log-level
|
||||
:communities-enabled? communities-enabled?
|
||||
:current-fleet current-fleet
|
||||
:dev-mode? false
|
||||
:waku-bloom-filter-mode waku-bloom-filter-mode
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
(:require [re-frame.core :as re-frame]
|
||||
[status-im.constants :as constants]
|
||||
[status-im.i18n.i18n :as i18n]
|
||||
[status-im.utils.config :as config]
|
||||
[status-im.react-native.resources :as resources]
|
||||
[status-im.ui.components.colors :as colors]
|
||||
[status-im.ui.components.icons.icons :as icons]
|
||||
|
@ -216,8 +215,9 @@
|
|||
(chat.utils/format-author contact-with-names opts)))
|
||||
|
||||
(defview community-content [{:keys [community-id] :as message}]
|
||||
(letsubs [{:keys [name description verified] :as community} [:communities/community community-id]]
|
||||
(when (and config/communities-enabled? community)
|
||||
(letsubs [{:keys [name description verified] :as community} [:communities/community community-id]
|
||||
communities-enabled? [:communities/enabled?]]
|
||||
(when (and communities-enabled? community)
|
||||
[react/view {:style (assoc (style/message-wrapper message)
|
||||
:margin-vertical 10
|
||||
:margin-left 8
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
[status-im.ui.components.icons.icons :as icons]
|
||||
[status-im.utils.core :as utils]
|
||||
[status-im.ui.components.plus-button :as components.plus-button]
|
||||
[status-im.utils.config :as config]
|
||||
[re-frame.core :as re-frame]
|
||||
[status-im.ui.screens.chat.sheets :as sheets]))
|
||||
|
||||
|
@ -109,7 +108,7 @@
|
|||
true
|
||||
name
|
||||
(or color (rand-nth colors/chat-colors))])}]
|
||||
(when (and config/communities-management-enabled? can-manage-users?)
|
||||
(when can-manage-users?
|
||||
[quo/list-item
|
||||
{:theme :accent
|
||||
:title (i18n/label :t/export-key)
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
[quo.core :as quo]
|
||||
[status-im.i18n.i18n :as i18n]
|
||||
[status-im.utils.core :as utils]
|
||||
[status-im.utils.config :as config]
|
||||
[status-im.constants :as constants]
|
||||
[status-im.communities.core :as communities]
|
||||
[status-im.utils.handlers :refer [>evt <sub]]
|
||||
|
@ -114,11 +113,12 @@
|
|||
:render-fn community-list-item}])
|
||||
|
||||
(defn communities []
|
||||
(let [communities (<sub [:communities/section-list])]
|
||||
(let [communities (<sub [:communities/section-list])
|
||||
communities-enabled? (<sub [:communities/enabled?])]
|
||||
[react/view {:flex 1}
|
||||
[topbar/topbar (cond-> {:title (i18n/label :t/communities)
|
||||
:modal? true}
|
||||
config/communities-management-enabled?
|
||||
communities-enabled?
|
||||
(assoc :right-accessories [{:icon :main-icons/more
|
||||
:accessibility-label :chat-menu-button
|
||||
:on-press
|
||||
|
@ -127,7 +127,7 @@
|
|||
[communities-actions])
|
||||
:height 256}])}]))]
|
||||
[communities-list communities]
|
||||
(when config/communities-management-enabled?
|
||||
(when communities-enabled?
|
||||
[toolbar/toolbar
|
||||
{:show-border? true
|
||||
:center [quo/button {:on-press #(>evt [::communities/open-create-community])
|
||||
|
@ -162,4 +162,3 @@
|
|||
:padding-horizontal 8
|
||||
:padding-vertical 5}
|
||||
[quo/text {:color :link} name]]]])
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
:accessibility-label :join-public-chat-button
|
||||
:icon :main-icons/public-chat
|
||||
:on-press #(hide-sheet-and-dispatch [:navigate-to :new-public-chat])}]
|
||||
(when config/communities-enabled?
|
||||
(when @(re-frame/subscribe [:communities/enabled?])
|
||||
[quo/list-item
|
||||
{:theme :accent
|
||||
:title (i18n/label :t/communities-alpha)
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
[status-im.add-new.db :as db]
|
||||
[status-im.utils.debounce :as debounce]
|
||||
[status-im.utils.utils :as utils]
|
||||
[status-im.utils.config :as config]
|
||||
[cljs-bean.core :as bean]
|
||||
[status-im.multiaccounts.login.core :as multiaccounts.login]
|
||||
[status-im.ui.components.invite.views :as invite]
|
||||
|
@ -85,7 +84,7 @@
|
|||
[react/view {:flex-direction :row :flex-wrap :wrap :justify-content :center}
|
||||
(for [chat (new-public-chat/featured-public-chats)]
|
||||
(new-public-chat/render-topic chat))]]
|
||||
(when config/communities-enabled?
|
||||
(when @(re-frame/subscribe [:communities/enabled?])
|
||||
[react/view
|
||||
[react/i18n-text {:style {:margin-horizontal 16
|
||||
:text-align :center}
|
||||
|
|
|
@ -17,8 +17,7 @@
|
|||
[status-im.ui.screens.profile.group-chat.views :as profile.group-chat]
|
||||
[status-im.ui.components.tabbar.styles :as tabbar.styles]
|
||||
[status-im.ui.screens.stickers.views :as stickers]
|
||||
[status-im.ui.screens.notifications-center.views :as notifications-center]
|
||||
[status-im.utils.config :as config]))
|
||||
[status-im.ui.screens.notifications-center.views :as notifications-center]))
|
||||
|
||||
(defonce stack (navigation/create-stack))
|
||||
(defonce group-stack (navigation/create-stack))
|
||||
|
@ -69,19 +68,18 @@
|
|||
:insets {:bottom true
|
||||
:top false}
|
||||
:component communities.import/view}]
|
||||
(when config/communities-management-enabled?
|
||||
[{:name :community-edit
|
||||
:insets {:bottom true
|
||||
:top false}
|
||||
:component community.edit/edit}
|
||||
{:name :community-create
|
||||
:insets {:bottom true
|
||||
:top false}
|
||||
:component communities.create/view}
|
||||
{:name :community-membership
|
||||
:insets {:bottom true
|
||||
:top false}
|
||||
:component membership/membership}]))])
|
||||
[{:name :community-edit
|
||||
:insets {:bottom true
|
||||
:top false}
|
||||
:component community.edit/edit}
|
||||
{:name :community-create
|
||||
:insets {:bottom true
|
||||
:top false}
|
||||
:component communities.create/view}
|
||||
{:name :community-membership
|
||||
:insets {:bottom true
|
||||
:top false}
|
||||
:component membership/membership}])])
|
||||
|
||||
(defn new-group-chat []
|
||||
[group-stack {:header-mode :none
|
||||
|
|
|
@ -46,8 +46,6 @@
|
|||
(def quo-preview-enabled? (enabled? (get-config :ENABLE_QUO_PREVIEW "0")))
|
||||
(def google-free (enabled? (get-config :GOOGLE_FREE "0")))
|
||||
(def communities-enabled? (enabled? (get-config :COMMUNITIES_ENABLED "0")))
|
||||
(def communities-management-enabled? (and (enabled? (get-config :COMMUNITIES_MANAGEMENT_ENABLED "0"))
|
||||
communities-enabled?))
|
||||
(def database-management-enabled? (enabled? (get-config :DATABASE_MANAGEMENT_ENABLED "0")))
|
||||
(def debug-webview? (enabled? (get-config :DEBUG_WEBVIEW "0")))
|
||||
|
||||
|
|
Loading…
Reference in New Issue