From 20bd65c0c08e04b83bd7e1c64c42c25f07cac9d1 Mon Sep 17 00:00:00 2001 From: yenda Date: Mon, 19 Nov 2018 13:46:16 +0100 Subject: [PATCH] [refactor] differentiate private and public chat and contact subs - aliased namespace keywords are used for local subs used for caching - synthetic :chat namespace is used for subs used elsewhere Signed-off-by: yenda --- .../chat/commands/impl/transactions.cljs | 8 +- src/status_im/chat/db.cljs | 16 +- src/status_im/chat/subs.cljs | 240 +++++++++--------- src/status_im/contact/subs.cljs | 116 ++++----- src/status_im/search/subs.cljs | 2 +- .../ui/components/chat_icon/screen.cljs | 2 +- .../ui/components/connectivity/view.cljs | 2 +- src/status_im/ui/components/desktop/tabs.cljs | 2 +- src/status_im/ui/components/toolbar/view.cljs | 2 +- .../ui/screens/add_new/new_chat/views.cljs | 2 +- .../ui/screens/add_new/open_dapp/views.cljs | 2 +- .../ui/screens/chat/bottom_info.cljs | 4 +- .../chat/input/animations/expandable.cljs | 8 +- .../ui/screens/chat/input/input.cljs | 24 +- .../ui/screens/chat/input/parameter_box.cljs | 4 +- .../ui/screens/chat/input/send_button.cljs | 4 +- .../ui/screens/chat/input/suggestions.cljs | 2 +- .../chat/input/validation_messages.cljs | 6 +- .../ui/screens/chat/message/message.cljs | 19 +- .../ui/screens/chat/message/options.cljs | 2 +- src/status_im/ui/screens/chat/photos.cljs | 2 +- .../ui/screens/chat/toolbar_content.cljs | 8 +- src/status_im/ui/screens/chat/views.cljs | 20 +- .../screens/desktop/main/add_new/views.cljs | 2 +- .../ui/screens/desktop/main/chat/views.cljs | 30 +-- .../screens/desktop/main/tabs/home/views.cljs | 12 +- .../ui/screens/group/add_contacts/views.cljs | 6 +- src/status_im/ui/screens/group/subs.cljs | 2 +- src/status_im/ui/screens/home/subs.cljs | 2 +- .../ui/screens/home/views/inner_item.cljs | 8 +- src/status_im/ui/screens/main_tabs/views.cljs | 2 +- .../ui/screens/profile/contact/views.cljs | 4 +- .../ui/screens/profile/group_chat/views.cljs | 4 +- .../ui/screens/wallet/components/views.cljs | 4 +- .../wallet/transaction_sent/views.cljs | 2 +- .../ui/screens/wallet/transactions/subs.cljs | 2 +- 36 files changed, 285 insertions(+), 292 deletions(-) diff --git a/src/status_im/chat/commands/impl/transactions.cljs b/src/status_im/chat/commands/impl/transactions.cljs index 7708b8d6ff..733f8efcad 100644 --- a/src/status_im/chat/commands/impl/transactions.cljs +++ b/src/status_im/chat/commands/impl/transactions.cljs @@ -105,7 +105,7 @@ :placeholder (i18n/label :t/send-request-amount)}]) (defview choose-nft-token [selected-event-creator] - (letsubs [{:keys [input-params]} [:selected-chat-command] + (letsubs [{:keys [input-params]} [:chats/selected-chat-command] collectibles [:collectibles]] (let [collectible-tokens (get collectibles (keyword (:symbol input-params)))] [react/view {:flex-direction :row @@ -189,8 +189,8 @@ ;; `/send` command (defview send-status [tx-hash outgoing] - (letsubs [confirmed? [:transaction-confirmed? tx-hash] - tx-exists? [:wallet-transaction-exists? tx-hash]] + (letsubs [confirmed? [:chats/transaction-confirmed? tx-hash] + tx-exists? [:chats/wallet-transaction-exists? tx-hash]] [react/touchable-highlight {:on-press #(when tx-exists? (re-frame/dispatch [:show-transaction-details tx-hash]))} [react/view transactions-styles/command-send-status-container @@ -405,7 +405,7 @@ (defview request-preview [{:keys [message-id content outgoing timestamp timestamp-str group-chat]}] - (letsubs [id->command [:get-id->command] + (letsubs [id->command [:chats/id->command] status-initialized? [:get :status-module-initialized?] network [:network-name] prices [:prices]] diff --git a/src/status_im/chat/db.cljs b/src/status_im/chat/db.cljs index e0d6a69d08..6a2a92bb4e 100644 --- a/src/status_im/chat/db.cljs +++ b/src/status_im/chat/db.cljs @@ -84,7 +84,7 @@ (and (not outgoing) (not (= :user-message message-type))))) - ; any message that comes after this amount of ms will be grouped separately +;; any message that comes after this amount of ms will be grouped separately (def ^:private group-ms 60000) (defn add-positional-metadata @@ -93,18 +93,18 @@ [{:keys [stream last-outgoing-seen]} {:keys [type message-type from datemark outgoing timestamp] :as message}] (let [previous-message (peek stream) - ; Was the previous message from a different author or this message - ; comes after x ms + ;; Was the previous message from a different author or this message + ;; comes after x ms last-in-group? (or (= :system-message message-type) (not= from (:from previous-message)) (> (- (:timestamp previous-message) timestamp) group-ms)) same-direction? (= outgoing (:outgoing previous-message)) - ; Have we seen an outgoing message already? + ;; Have we seen an outgoing message already? last-outgoing? (and (not last-outgoing-seen) outgoing) datemark? (= :datemark (:type message)) - ; If this is a datemark or this is the last-message of a group, - ; then the previous message was the first + ;; If this is a datemark or this is the last-message of a group, + ;; then the previous message was the first previous-first-in-group? (or datemark? last-in-group?) new-message (assoc message @@ -114,12 +114,12 @@ :last-outgoing? last-outgoing?)] {:stream (cond-> stream previous-first-in-group? - ; update previuous message if necessary + ;; update previous message if necessary set-previous-message-info :always (conj new-message)) - ; mark the last message sent by the user + ;; mark the last message sent by the user :last-outgoing-seen (or last-outgoing-seen last-outgoing?)})) (defn messages-stream diff --git a/src/status_im/chat/subs.cljs b/src/status_im/chat/subs.cljs index 1324acb39c..575b438a0e 100644 --- a/src/status_im/chat/subs.cljs +++ b/src/status_im/chat/subs.cljs @@ -8,51 +8,91 @@ [status-im.models.transactions :as transactions] [status-im.utils.platform :as platform])) -(re-frame/reg-sub :get-chats :chats) - -(re-frame/reg-sub :get-current-chat-id :current-chat-id) - -(re-frame/reg-sub :chat-ui-props :chat-ui-props) - -(re-frame/reg-sub :get-id->command :id->command) - -(re-frame/reg-sub :get-access-scope->command-id :access-scope->command-id) +(re-frame/reg-sub ::chats :chats) +(re-frame/reg-sub ::access-scope->command-id :access-scope->command-id) +(re-frame/reg-sub ::chat-ui-props :chat-ui-props) (re-frame/reg-sub - :get-current-chat-ui-props - :<- [:chat-ui-props] - :<- [:get-current-chat-id] + ::cooldown-enabled? + (fn [db] + (:chat/cooldown-enabled? db))) + +(re-frame/reg-sub + ::show-suggestions? + :<- [::show-suggestions-view?] + :<- [:chats/selected-chat-command] + (fn [[show-suggestions-box? selected-command]] + (and show-suggestions-box? (not selected-command)))) + +(re-frame/reg-sub + ::show-suggestions-view? + :<- [:chats/current-chat-ui-prop :show-suggestions?] + :<- [:chats/current-chat] + :<- [:chats/all-available-commands] + (fn [[show-suggestions? {:keys [input-text]} commands]] + (and (or show-suggestions? + (commands.input/starts-as-command? (string/trim (or input-text "")))) + (seq commands)))) + +(re-frame/reg-sub + ::get-commands-for-chat + :<- [:chats/id->command] + :<- [::access-scope->command-id] + :<- [:chats/current-chat] + (fn [[id->command access-scope->command-id chat]] + (commands/chat-commands id->command access-scope->command-id chat))) + +(re-frame/reg-sub :chats/id->command :id->command) +(re-frame/reg-sub :chats/current-chat-id :current-chat-id) + +(re-frame/reg-sub + :chats/chat + :<- [:chats/active-chats] + (fn [chats [_ chat-id]] + (get chats chat-id))) + +(re-frame/reg-sub + :chats/current-chat-ui-props + :<- [::chat-ui-props] + :<- [:chats/current-chat-id] (fn [[chat-ui-props id]] (get chat-ui-props id))) (re-frame/reg-sub - :get-current-chat-name - :<- [:get-current-chat-contact] - :<- [:get-current-chat] + :chats/current-chat-contact + :<- [:contacts/contacts] + :<- [:chats/current-chat-id] + (fn [[contacts chat-id]] + (get contacts chat-id))) + +(re-frame/reg-sub + :chats/current-chat-name + :<- [:chats/current-chat-contact] + :<- [:chats/current-chat] (fn [[contact chat]] (chat.db/chat-name chat contact))) (re-frame/reg-sub - :get-chat-name - :<- [:get-contacts] - :<- [:get-chats] + :chats/chat-name + :<- [:contacts/contacts] + :<- [::chats] (fn [[contacts chats] [_ chat-id]] (chat.db/chat-name (get chats chat-id) (get contacts chat-id)))) (re-frame/reg-sub - :get-current-chat-ui-prop - :<- [:get-current-chat-ui-props] + :chats/current-chat-ui-prop + :<- [:chats/current-chat-ui-props] (fn [ui-props [_ prop]] (get ui-props prop))) (re-frame/reg-sub - :validation-messages - :<- [:get-current-chat-ui-props] + :chats/validation-messages + :<- [:chats/current-chat-ui-props] (fn [ui-props] (some-> ui-props :validation-messages))) (re-frame/reg-sub - :chat-input-margin + :chats/input-margin :<- [:get :keyboard-height] (fn [kb-height] (cond @@ -61,118 +101,104 @@ :default 0))) (re-frame/reg-sub - :get-active-chats - :<- [:get-contacts] - :<- [:get-chats] + :chats/active-chats + :<- [:contacts/contacts] + :<- [::chats] :<- [:account/account] (fn [[contacts chats account]] (chat.db/active-chats contacts chats account))) (re-frame/reg-sub - :get-chat - :<- [:get-active-chats] - (fn [chats [_ chat-id]] - (get chats chat-id))) - -(re-frame/reg-sub - :get-current-chat - :<- [:get-active-chats] - :<- [:get-current-chat-id] + :chats/current-chat + :<- [:chats/active-chats] + :<- [:chats/current-chat-id] (fn [[chats current-chat-id]] (get chats current-chat-id))) (re-frame/reg-sub - :get-current-chat-message - :<- [:get-current-chat] + :chats/current-chat-message + :<- [:chats/current-chat] (fn [{:keys [messages]} [_ message-id]] (get messages message-id))) (re-frame/reg-sub - :get-current-chat-messages - :<- [:get-current-chat] + :chats/current-chat-messages + :<- [:chats/current-chat] (fn [{:keys [messages]}] (or messages {}))) (re-frame/reg-sub - :get-current-chat-message-groups - :<- [:get-current-chat] + :chats/current-chat-message-groups + :<- [:chats/current-chat] (fn [{:keys [message-groups]}] (or message-groups {}))) (re-frame/reg-sub - :get-current-chat-message-statuses - :<- [:get-current-chat] + :chats/current-chat-message-statuses + :<- [:chats/current-chat] (fn [{:keys [message-statuses]}] (or message-statuses {}))) (re-frame/reg-sub - :get-current-chat-referenced-messages - :<- [:get-current-chat] + :chats/current-chat-referenced-messages + :<- [:chats/current-chat] (fn [{:keys [referenced-messages]}] (or referenced-messages {}))) (re-frame/reg-sub - :get-current-chat-messages-stream - :<- [:get-current-chat-messages] - :<- [:get-current-chat-message-groups] - :<- [:get-current-chat-message-statuses] - :<- [:get-current-chat-referenced-messages] + :chats/current-chat-messages-stream + :<- [:chats/current-chat-messages] + :<- [:chats/current-chat-message-groups] + :<- [:chats/current-chat-message-statuses] + :<- [:chats/current-chat-referenced-messages] (fn [[messages message-groups message-statuses referenced-messages]] (-> (chat.db/sort-message-groups message-groups messages) (chat.db/messages-with-datemarks-and-statuses messages message-statuses referenced-messages) chat.db/messages-stream))) (re-frame/reg-sub - :get-commands-for-chat - :<- [:get-id->command] - :<- [:get-access-scope->command-id] - :<- [:get-current-chat] - (fn [[id->command access-scope->command-id chat]] - (commands/chat-commands id->command access-scope->command-id chat))) - -(re-frame/reg-sub - :get-available-commands - :<- [:get-commands-for-chat] - :<- [:get-current-chat] + :chats/available-commands + :<- [::get-commands-for-chat] + :<- [:chats/current-chat] (fn [[commands chat]] (chat.db/available-commands commands chat))) (re-frame/reg-sub - :get-all-available-commands - :<- [:get-commands-for-chat] + :chats/all-available-commands + :<- [::get-commands-for-chat] (fn [commands] (chat.db/map->sorted-seq commands))) (re-frame/reg-sub - :selected-chat-command - :<- [:get-current-chat] - :<- [:get-current-chat-ui-prop :selection] - :<- [:get-commands-for-chat] + :chats/selected-chat-command + :<- [:chats/current-chat] + :<- [:chats/current-chat-ui-prop :selection] + :<- [::get-commands-for-chat] (fn [[{:keys [input-text]} selection commands]] (commands.input/selected-chat-command input-text selection commands))) (re-frame/reg-sub - :chat-input-placeholder - :<- [:get-current-chat] - :<- [:selected-chat-command] + :chats/input-placeholder + :<- [:chats/current-chat] + :<- [:chats/selected-chat-command] (fn [[{:keys [input-text]} {:keys [params current-param-position]}]] (when (string/ends-with? (or input-text "") chat.constants/spacing-char) (get-in params [current-param-position :placeholder])))) (re-frame/reg-sub - :chat-parameter-box - :<- [:get-current-chat] - :<- [:selected-chat-command] + :chats/parameter-box + :<- [:chats/current-chat] + :<- [:chats/selected-chat-command] (fn [[_ {:keys [current-param-position params]}]] (when (and params current-param-position) (get-in params [current-param-position :suggestions])))) (re-frame/reg-sub - :show-parameter-box? - :<- [:chat-parameter-box] - :<- [:show-suggestions?] - :<- [:validation-messages] - :<- [:selected-chat-command] + :chats/show-parameter-box? + :<- [:chats/parameter-box] + :<- [::show-suggestions?] + :<- [:chats/validation-messages] + :<- [:chats/selected-chat-command] (fn [[chat-parameter-box show-suggestions? validation-messages {:keys [command-completion]}]] (and chat-parameter-box (not validation-messages) @@ -180,32 +206,15 @@ (not (= :complete command-completion))))) (re-frame/reg-sub - :show-suggestions-view? - :<- [:get-current-chat-ui-prop :show-suggestions?] - :<- [:get-current-chat] - :<- [:get-all-available-commands] - (fn [[show-suggestions? {:keys [input-text]} commands]] - (and (or show-suggestions? - (commands.input/starts-as-command? (string/trim (or input-text "")))) - (seq commands)))) - -(re-frame/reg-sub - :show-suggestions? - :<- [:show-suggestions-view?] - :<- [:selected-chat-command] - (fn [[show-suggestions-box? selected-command]] - (and show-suggestions-box? (not selected-command)))) - -(re-frame/reg-sub - :unviewed-messages-count + :chats/unviewed-messages-count (fn [[_ chat-id]] - (re-frame/subscribe [:get-chat chat-id])) + (re-frame/subscribe [:chats/chat chat-id])) (fn [{:keys [unviewed-messages]}] (count unviewed-messages))) (re-frame/reg-sub - :get-photo-path - :<- [:get-contacts] + :chats/photo-path + :<- [:contacts/contacts] :<- [:account/account] (fn [[contacts account] [_ id]] (or (:photo-path (contacts id)) @@ -213,9 +222,9 @@ (:photo-path account))))) (re-frame/reg-sub - :get-last-message + :chats/last-message (fn [[_ chat-id]] - (re-frame/subscribe [:get-chat chat-id])) + (re-frame/subscribe [:chats/chat chat-id])) (fn [{:keys [messages message-groups]}] (->> (chat.db/sort-message-groups message-groups messages) first @@ -225,44 +234,33 @@ (get messages)))) (re-frame/reg-sub - :chat-animations - (fn [db [_ key type]] - (let [chat-id (re-frame/subscribe [:get-current-chat-id])] - (get-in db [:animations :chats @chat-id key type])))) - -(re-frame/reg-sub - :get-chats-unread-messages-number - :<- [:get-active-chats] + :chats/unread-messages-number + :<- [:chats/active-chats] (fn [chats _] (apply + (map (comp count :unviewed-messages) (vals chats))))) (re-frame/reg-sub - :transaction-confirmed? + :chats/transaction-confirmed? (fn [db [_ tx-hash]] (-> (get-in db [:wallet :transactions tx-hash :confirmations] "0") (js/parseInt) (>= transactions/confirmations-count-threshold)))) (re-frame/reg-sub - :wallet-transaction-exists? + :chats/wallet-transaction-exists? (fn [db [_ tx-hash]] (not (nil? (get-in db [:wallet :transactions tx-hash]))))) (re-frame/reg-sub - :chat/cooldown-enabled? - (fn [db] - (:chat/cooldown-enabled? db))) - -(re-frame/reg-sub - :chat-cooldown-enabled? - :<- [:get-current-chat] - :<- [:chat/cooldown-enabled?] + :chats/cooldown-enabled? + :<- [:chats/current-chat] + :<- [::cooldown-enabled?] (fn [[{:keys [public?]} cooldown-enabled?]] (and public? cooldown-enabled?))) (re-frame/reg-sub - :get-reply-message - :<- [:get-current-chat] + :chats/reply-message + :<- [:chats/current-chat] (fn [{:keys [metadata messages]}] (get messages (:responding-to-message metadata)))) diff --git a/src/status_im/contact/subs.cljs b/src/status_im/contact/subs.cljs index a1f81359b1..f21ca30bba 100644 --- a/src/status_im/contact/subs.cljs +++ b/src/status_im/contact/subs.cljs @@ -3,31 +3,14 @@ [status-im.utils.identicon :as identicon] [status-im.contact.db :as contact.db])) -(re-frame/reg-sub :get-current-contact-identity :contacts/identity) - -(re-frame/reg-sub :get-contacts :contacts/contacts) - -(re-frame/reg-sub :get-dapps - (fn [db] - (:contacts/dapps db))) +(re-frame/reg-sub + ::dapps + (fn [db] + (:contacts/dapps db))) (re-frame/reg-sub - :get-current-contact - :<- [:get-contacts] - :<- [:get-current-contact-identity] - (fn [[contacts identity]] - (contacts identity))) - -(re-frame/reg-sub - :get-current-chat-contact - :<- [:get-contacts] - :<- [:get-current-chat-id] - (fn [[contacts chat-id]] - (get contacts chat-id))) - -(re-frame/reg-sub - :all-added-contacts - :<- [:get-contacts] + ::all-added-contacts + :<- [:contacts/contacts] (fn [contacts] (->> contacts (remove (fn [[_ {:keys [pending? hide-contact?]}]] @@ -35,14 +18,38 @@ (contact.db/sort-contacts)))) (re-frame/reg-sub - :all-added-people-contacts - :<- [:all-added-contacts] + ::query-current-chat-contacts + :<- [:chats/current-chat] + :<- [:contacts/contacts] + (fn [[chat contacts] [_ query-fn]] + (contact.db/query-chat-contacts chat contacts query-fn))) + +(re-frame/reg-sub + :contacts/contacts + (fn [db] + (get db :contacts/contacts))) + +(re-frame/reg-sub + :contacts/current-contact-identity + (fn [db] + (get db :contacts/identity))) + +(re-frame/reg-sub + :contacts/current-contact + :<- [:contacts/contacts] + :<- [:contacts/current-contact-identity] + (fn [[contacts identity]] + (contacts identity))) + +(re-frame/reg-sub + :contacts/all-added-people-contacts + :<- [::all-added-contacts] (fn [contacts] (remove :dapp? contacts))) (re-frame/reg-sub - :all-dapps - :<- [:get-dapps] + :contacts/all-dapps + :<- [::dapps] :<- [:account/account] (fn [[dapps {:keys [dev-mode?]}]] (map (fn [m] (update m :data @@ -50,15 +57,9 @@ dapps))) (re-frame/reg-sub - :get-people-in-current-chat - :<- [:get-current-chat-contacts] - (fn [contacts] - (remove #(true? (:dapp? %)) contacts))) - -(re-frame/reg-sub - :get-contact-by-identity - :<- [:get-contacts] - :<- [:get-current-chat] + :contacts/contact-by-identity + :<- [:contacts/contacts] + :<- [:chats/current-chat] (fn [[all-contacts {:keys [contacts]}] [_ identity]] (let [identity' (or identity (first contacts))] (or @@ -67,7 +68,7 @@ (re-frame/reg-sub :contacts/dapps-by-name - :<- [:all-dapps] + :<- [:contacts/all-dapps] (fn [dapps] (reduce (fn [dapps-by-name category] (merge dapps-by-name @@ -79,8 +80,8 @@ dapps))) (re-frame/reg-sub - :get-contact-name-by-identity - :<- [:get-contacts] + :contacts/contact-name-by-identity + :<- [:contacts/contacts] :<- [:account/account] (fn [[contacts current-account] [_ identity]] (let [me? (= (:public-key current-account) identity)] @@ -89,41 +90,34 @@ (:name (contacts identity)))))) (re-frame/reg-sub - :query-current-chat-contacts - :<- [:get-current-chat] - :<- [:get-contacts] - (fn [[chat contacts] [_ query-fn]] - (contact.db/query-chat-contacts chat contacts query-fn))) - -(re-frame/reg-sub - :get-all-contacts-not-in-current-chat - :<- [:query-current-chat-contacts remove] + :contacts/all-contacts-not-in-current-chat + :<- [::query-current-chat-contacts remove] (fn [contacts] (->> contacts (remove :dapp?) (sort-by (comp clojure.string/lower-case :name))))) (re-frame/reg-sub - :get-current-chat-contacts - :<- [:get-current-chat] - :<- [:get-contacts] + :contacts/current-chat-contacts + :<- [:chats/current-chat] + :<- [:contacts/contacts] :<- [:account/account] (fn [[{:keys [contacts]} all-contacts current-account]] (contact.db/get-all-contacts-in-group-chat contacts all-contacts current-account))) (re-frame/reg-sub - :get-contacts-by-chat + :contacts/contacts-by-chat (fn [[_ _ chat-id] _] - [(re-frame/subscribe [:get-chat chat-id]) - (re-frame/subscribe [:get-contacts])]) + [(re-frame/subscribe [:chats/chat chat-id]) + (re-frame/subscribe [:contacts/contacts])]) (fn [[chat all-contacts] [_ query-fn]] (contact.db/query-chat-contacts chat all-contacts query-fn))) (re-frame/reg-sub - :get-chat-photo + :contacts/chat-photo (fn [[_ chat-id] _] - [(re-frame/subscribe [:get-chat chat-id]) - (re-frame/subscribe [:get-contacts-by-chat filter chat-id])]) + [(re-frame/subscribe [:chats/chat chat-id]) + (re-frame/subscribe [:contacts/contacts-by-chat filter chat-id])]) (fn [[chat contacts] [_ chat-id]] (when (and chat (not (:group-chat chat))) (cond @@ -137,14 +131,14 @@ (identicon/identicon chat-id))))) (re-frame/reg-sub - :get-contact-by-address - :<- [:get-contacts] + :contacts/contact-by-address + :<- [:contacts/contacts] (fn [contacts [_ address]] (contact.db/find-contact-by-address contacts address))) (re-frame/reg-sub - :get-contacts-by-address - :<- [:get-contacts] + :contacts/contacts-by-address + :<- [:contacts/contacts] (fn [contacts] (reduce (fn [acc [_ {:keys [address] :as contact}]] (if address diff --git a/src/status_im/search/subs.cljs b/src/status_im/search/subs.cljs index 04bba7a1f5..42d5599715 100644 --- a/src/status_im/search/subs.cljs +++ b/src/status_im/search/subs.cljs @@ -23,7 +23,7 @@ (re-frame/reg-sub :search/filtered-active-chats - :<- [:get-active-chats] + :<- [:chats/active-chats] :<- [:search/filter] filter-chats) diff --git a/src/status_im/ui/components/chat_icon/screen.cljs b/src/status_im/ui/components/chat_icon/screen.cljs index 70d40d2ee7..317c71d18d 100644 --- a/src/status_im/ui/components/chat_icon/screen.cljs +++ b/src/status_im/ui/components/chat_icon/screen.cljs @@ -28,7 +28,7 @@ [react/view pending-inner-circle]]]))) (defview chat-icon-view [chat-id _group-chat name _online styles & [hide-dapp?]] - (letsubs [photo-path [:get-chat-photo chat-id] + (letsubs [photo-path [:contacts/chat-photo chat-id] dapp? [:get-in [:contacts/contacts chat-id :dapp?]]] [react/view (:container styles) (if-not (string/blank? photo-path) diff --git a/src/status_im/ui/components/connectivity/view.cljs b/src/status_im/ui/components/connectivity/view.cljs index 10919ee28c..d699f6b120 100644 --- a/src/status_im/ui/components/connectivity/view.cljs +++ b/src/status_im/ui/components/connectivity/view.cljs @@ -29,7 +29,7 @@ disconnected? [:disconnected?] mailserver-error? [:mailserver/error] mailserver-fetching? [:mailserver/fetching?] - current-chat-contact [:get-current-chat-contact] + current-chat-contact [:chats/current-chat-contact] view-id [:get :view-id] window-width [:dimensions/window-width]] (when-let [label (cond diff --git a/src/status_im/ui/components/desktop/tabs.cljs b/src/status_im/ui/components/desktop/tabs.cljs index 482a988124..e8a1517c9a 100644 --- a/src/status_im/ui/components/desktop/tabs.cljs +++ b/src/status_im/ui/components/desktop/tabs.cljs @@ -15,7 +15,7 @@ :content {:title "Home" :icon-inactive :icons/home :icon-active :icons/home-active} - :count-subscription :get-chats-unread-messages-number} + :count-subscription :chats/unread-messages-number} #_{:view-id :wallet :content {:title "Wallet" :icon-inactive :icons/wallet diff --git a/src/status_im/ui/components/toolbar/view.cljs b/src/status_im/ui/components/toolbar/view.cljs index dba0d100ff..fab0ef3284 100644 --- a/src/status_im/ui/components/toolbar/view.cljs +++ b/src/status_im/ui/components/toolbar/view.cljs @@ -31,7 +31,7 @@ icon-opts)]]) (defview nav-button-with-count [props] - (letsubs [unread-messages-number [:get-chats-unread-messages-number]] + (letsubs [unread-messages-number [:chats/unread-messages-number]] (let [unread-messages? (pos? unread-messages-number)] [react/view {:flex-direction :row} [nav-button (assoc props :unread-messages? unread-messages?)] diff --git a/src/status_im/ui/screens/add_new/new_chat/views.cljs b/src/status_im/ui/screens/add_new/new_chat/views.cljs index beedfae657..415ba4c497 100644 --- a/src/status_im/ui/screens/add_new/new_chat/views.cljs +++ b/src/status_im/ui/screens/add_new/new_chat/views.cljs @@ -19,7 +19,7 @@ :show-forward? true}]) (views/defview new-chat [] - (views/letsubs [contacts [:all-added-people-contacts] + (views/letsubs [contacts [:contacts/all-added-people-contacts] error-message [:new-identity-error]] [react/keyboard-avoiding-view open-dapp.styles/main-container [status-bar/status-bar] diff --git a/src/status_im/ui/screens/add_new/open_dapp/views.cljs b/src/status_im/ui/screens/add_new/open_dapp/views.cljs index db22101e6c..d89e76d5fd 100644 --- a/src/status_im/ui/screens/add_new/open_dapp/views.cljs +++ b/src/status_im/ui/screens/add_new/open_dapp/views.cljs @@ -21,7 +21,7 @@ :accessibility-label :dapp-item}]) (views/defview open-dapp [] - (views/letsubs [dapps [:all-dapps] + (views/letsubs [dapps [:contacts/all-dapps] url-text (atom nil)] [react/keyboard-avoiding-view styles/main-container [status-bar/status-bar] diff --git a/src/status_im/ui/screens/chat/bottom_info.cljs b/src/status_im/ui/screens/chat/bottom_info.cljs index decceece93..a106a04288 100644 --- a/src/status_im/ui/screens/chat/bottom_info.cljs +++ b/src/status_im/ui/screens/chat/bottom_info.cljs @@ -61,8 +61,8 @@ [message-status-row contact row]))) (defn bottom-info-view [] - (let [bottom-info (re-frame/subscribe [:get-current-chat-ui-prop :bottom-info]) - contacts (re-frame/subscribe [:get-contacts])] + (let [bottom-info (re-frame/subscribe [:chats/current-chat-ui-prop :bottom-info]) + contacts (re-frame/subscribe [:contacts/contacts])] (reagent/create-class {:display-name "bottom-info-view" :reagent-render diff --git a/src/status_im/ui/screens/chat/input/animations/expandable.cljs b/src/status_im/ui/screens/chat/input/animations/expandable.cljs index c75de891b4..b5a8244c70 100644 --- a/src/status_im/ui/screens/chat/input/animations/expandable.cljs +++ b/src/status_im/ui/screens/chat/input/animations/expandable.cljs @@ -18,10 +18,10 @@ (defview expandable-view [{:keys [key]} & elements] (letsubs [anim-value (animation/create-value 0) - input-height [:get-current-chat-ui-prop :input-height] - input-focused? [:get-current-chat-ui-prop :input-focused?] - messages-focused? [:get-current-chat-ui-prop :messages-focused?] - chat-input-margin [:chat-input-margin] + input-height [:chats/current-chat-ui-prop :input-height] + input-focused? [:chats/current-chat-ui-prop :input-focused?] + messages-focused? [:chats/current-chat-ui-prop :messages-focused?] + chat-input-margin [:chats/input-margin] keyboard-height [:get :keyboard-height] chat-layout-height [:get :layout-height]] (let [input-height (or input-height (+ input-style/padding-vertical diff --git a/src/status_im/ui/screens/chat/input/input.cljs b/src/status_im/ui/screens/chat/input/input.cljs index da5e131aa0..979c4e2e0c 100644 --- a/src/status_im/ui/screens/chat/input/input.cljs +++ b/src/status_im/ui/screens/chat/input/input.cljs @@ -21,8 +21,8 @@ [status-im.utils.utils :as utils])) (defview basic-text-input [{:keys [set-container-width-fn height single-line-input?]}] - (letsubs [{:keys [input-text]} [:get-current-chat] - cooldown-enabled? [:chat-cooldown-enabled?]] + (letsubs [{:keys [input-text]} [:chats/current-chat] + cooldown-enabled? [:chats/cooldown-enabled?]] [react/text-input (merge {:ref #(when % (re-frame/dispatch [:chat.ui/set-chat-ui-props {:input-ref %}])) @@ -49,7 +49,7 @@ {:placeholder (i18n/label :cooldown/text-input-disabled)}))])) (defview invisible-input [{:keys [set-layout-width-fn value]}] - (letsubs [{:keys [input-text]} [:get-current-chat]] + (letsubs [{:keys [input-text]} [:chats/current-chat]] [react/text {:style style/invisible-input-text :on-layout #(let [w (-> (.-nativeEvent %) (.-layout) @@ -65,7 +65,7 @@ :duration 300}))))) (defview input-helper [{:keys [width]}] - (letsubs [placeholder [:chat-input-placeholder] + (letsubs [placeholder [:chats/input-placeholder] opacity-value (animation/create-value 0) on-update (input-helper-view-on-update {:opacity-value opacity-value :placeholder placeholder})] @@ -82,7 +82,7 @@ nil)) (defview input-view [{:keys [single-line-input?]}] - (letsubs [command [:selected-chat-command]] + (letsubs [command [:chats/selected-chat-command]] (let [component (reagent/current-component) set-layout-width-fn #(reagent/set-state component {:width %}) set-container-width-fn #(reagent/set-state component {:container-width %}) @@ -95,8 +95,8 @@ [input-helper {:width width}]]]))) (defview commands-button [] - (letsubs [commands [:get-all-available-commands] - reply-message [:get-reply-message]] + (letsubs [commands [:chats/all-available-commands] + reply-message [:chats/reply-message]] (when (and (not reply-message) (seq commands)) [react/touchable-highlight {:on-press #(re-frame/dispatch [:chat.ui/set-command-prefix]) @@ -106,14 +106,14 @@ :color :dark}]]]))) (defview reply-message [from message-text] - (letsubs [username [:get-contact-name-by-identity from] + (letsubs [username [:contacts/contact-name-by-identity from] current-public-key [:account/public-key]] [react/view {:style style/reply-message-content} [react/text {:style style/reply-message-author} (chat-utils/format-reply-author from username current-public-key)] [react/text {:style (message-style/style-message-text false)} message-text]])) (defview reply-message-view [] - (letsubs [{:keys [content from] :as message} [:get-reply-message]] + (letsubs [{:keys [content from] :as message} [:chats/reply-message]] (when message [react/view {:style style/reply-message-container} [react/view {:style style/reply-message} @@ -128,9 +128,9 @@ :color colors/white}]]]]))) (defview input-container [] - (letsubs [margin [:chat-input-margin] - {:keys [input-text]} [:get-current-chat] - result-box [:get-current-chat-ui-prop :result-box]] + (letsubs [margin [:chats/input-margin] + {:keys [input-text]} [:chats/current-chat] + result-box [:chats/current-chat-ui-prop :result-box]] (let [single-line-input? (:singleLineInput result-box)] [react/view {:style (style/root margin) :on-layout #(let [h (-> (.-nativeEvent %) diff --git a/src/status_im/ui/screens/chat/input/parameter_box.cljs b/src/status_im/ui/screens/chat/input/parameter_box.cljs index cc70cf6e48..35eb744b45 100644 --- a/src/status_im/ui/screens/chat/input/parameter_box.cljs +++ b/src/status_im/ui/screens/chat/input/parameter_box.cljs @@ -5,13 +5,13 @@ [status-im.ui.components.react :as react])) (defview parameter-box-container [] - (letsubs [parameter-box [:chat-parameter-box]] + (letsubs [parameter-box [:chats/parameter-box]] (when parameter-box [react/view style/root [parameter-box]]))) (defview parameter-box-view [] - (letsubs [show-box? [:show-parameter-box?]] + (letsubs [show-box? [:chats/show-parameter-box?]] (when show-box? [react/view] [expandable/expandable-view {:key :parameter-box} diff --git a/src/status_im/ui/screens/chat/input/send_button.cljs b/src/status_im/ui/screens/chat/input/send_button.cljs index ed9736892b..6299c056a8 100644 --- a/src/status_im/ui/screens/chat/input/send_button.cljs +++ b/src/status_im/ui/screens/chat/input/send_button.cljs @@ -21,8 +21,8 @@ (= :offline network-status))))) (defview send-button-view [] - (letsubs [{:keys [command-completion]} [:selected-chat-command] - {:keys [input-text seq-arg-input-text]} [:get-current-chat] + (letsubs [{:keys [command-completion]} [:chats/selected-chat-command] + {:keys [input-text seq-arg-input-text]} [:chats/current-chat] network-status [:network-status] spin-value (animation/create-value 1)] {:component-did-update (send-button-view-on-update {:spin-value spin-value diff --git a/src/status_im/ui/screens/chat/input/suggestions.cljs b/src/status_im/ui/screens/chat/input/suggestions.cljs index b10f639530..f4b07217e4 100644 --- a/src/status_im/ui/screens/chat/input/suggestions.cljs +++ b/src/status_im/ui/screens/chat/input/suggestions.cljs @@ -17,7 +17,7 @@ description]]]) (defview suggestions-view [] - (letsubs [available-commands [:get-available-commands]] + (letsubs [available-commands [:chats/available-commands]] [expandable/expandable-view {:key :suggestions} [react/view [react/scroll-view {:keyboard-should-persist-taps :always diff --git a/src/status_im/ui/screens/chat/input/validation_messages.cljs b/src/status_im/ui/screens/chat/input/validation_messages.cljs index bb899735c8..0b3a754e56 100644 --- a/src/status_im/ui/screens/chat/input/validation_messages.cljs +++ b/src/status_im/ui/screens/chat/input/validation_messages.cljs @@ -17,9 +17,9 @@ markup]) (defview validation-messages-view [] - (letsubs [chat-input-margin [:chat-input-margin] - input-height [:get-current-chat-ui-prop :input-height] - validation-result [:validation-messages]] + (letsubs [chat-input-margin [:chats/input-margin] + input-height [:chats/current-chat-ui-prop :input-height] + validation-result [:chats/validation-messages]] (when validation-result (let [message (if (string? validation-result) {:title (i18n/label :t/error) diff --git a/src/status_im/ui/screens/chat/message/message.cljs b/src/status_im/ui/screens/chat/message/message.cljs index 16de50daba..7960d65b82 100644 --- a/src/status_im/ui/screens/chat/message/message.cljs +++ b/src/status_im/ui/screens/chat/message/message.cljs @@ -24,7 +24,7 @@ (defview message-content-command [command-message] - (letsubs [id->command [:get-id->command]] + (letsubs [id->command [:chats/id->command]] (if-let [command (commands-receiving/lookup-command-by-ref command-message id->command)] (commands/generate-preview command command-message) [react/text (str "Unhandled command: " (-> command-message :content :command-path first))]))) @@ -41,14 +41,15 @@ (get content :command-ref)) content]]) -; We can't use CSS as nested Text element don't accept margins nor padding -; so we pad the invisible placeholder with some spaces to avoid having too -; close to the text. -(defn timestamp-with-padding [t] +(defn timestamp-with-padding + "We can't use CSS as nested Text element don't accept margins nor padding + so we pad the invisible placeholder with some spaces to avoid having too + close to the text" + [t] (str " " t)) (defview quoted-message [{:keys [from text]} outgoing current-public-key] - (letsubs [username [:get-contact-name-by-identity from]] + (letsubs [username [:contacts/contact-name-by-identity from]] [react/view {:style (style/quoted-message-container outgoing)} [react/view {:style style/quoted-message-author-container} [vector-icons/icon :icons/reply {:color (if outgoing colors/wild-blue-yonder colors/gray)}] @@ -131,8 +132,8 @@ (i18n/message-status-label status)]]) (defview group-message-delivery-status [{:keys [message-id current-public-key user-statuses] :as msg}] - (letsubs [{participants :contacts} [:get-current-chat] - contacts [:get-contacts]] + (letsubs [{participants :contacts} [:chats/current-chat] + contacts [:contacts/contacts]] (let [outgoing-status (or (get-in user-statuses [current-public-key :status]) :sending) delivery-statuses (dissoc user-statuses current-public-key) delivery-statuses-count (count delivery-statuses) @@ -210,7 +211,7 @@ [text-status status])))))))) (defview message-author-name [from message-username] - (letsubs [username [:get-contact-name-by-identity from]] + (letsubs [username [:contacts/contact-name-by-identity from]] [react/text {:style style/message-author-name} (chat.utils/format-author from (or username message-username))])) diff --git a/src/status_im/ui/screens/chat/message/options.cljs b/src/status_im/ui/screens/chat/message/options.cljs index 535828b7d9..4239c6693f 100644 --- a/src/status_im/ui/screens/chat/message/options.cljs +++ b/src/status_im/ui/screens/chat/message/options.cljs @@ -18,7 +18,7 @@ :key label}]]]]) (defn view [] - (let [{:keys [chat-id message-id]} @(re-frame/subscribe [:get-current-chat-ui-prop :message-options]) + (let [{:keys [chat-id message-id]} @(re-frame/subscribe [:chats/current-chat-ui-prop :message-options]) close-message-options-fn #(re-frame/dispatch [:chat.ui/set-chat-ui-props {:show-message-options? false}])] [bottom-info/overlay {:on-click-outside close-message-options-fn} [bottom-info/container (* styles/item-height 2) diff --git a/src/status_im/ui/screens/chat/photos.cljs b/src/status_im/ui/screens/chat/photos.cljs index 76d09bd98c..460b3c16d7 100644 --- a/src/status_im/ui/screens/chat/photos.cljs +++ b/src/status_im/ui/screens/chat/photos.cljs @@ -23,7 +23,7 @@ [react/view {:style (style/photo-border size)}]]) (defview member-photo [from] - (letsubs [photo-path [:get-photo-path from]] + (letsubs [photo-path [:chats/photo-path from]] (photo (if (string/blank? photo-path) (identicon/identicon from) photo-path) diff --git a/src/status_im/ui/screens/chat/toolbar_content.cljs b/src/status_im/ui/screens/chat/toolbar_content.cljs index 94e9d02170..5e58dfb64f 100644 --- a/src/status_im/ui/screens/chat/toolbar_content.cljs +++ b/src/status_im/ui/screens/chat/toolbar_content.cljs @@ -63,11 +63,11 @@ (defview toolbar-content-view [] (letsubs [{:keys [group-chat color online contacts - public? chat-id] :as chat} [:get-current-chat] - chat-name [:get-current-chat-name] - show-actions? [:get-current-chat-ui-prop :show-actions?] + public? chat-id] :as chat} [:chats/current-chat] + chat-name [:chats/current-chat-name] + show-actions? [:chats/current-chat-ui-prop :show-actions?] accounts [:accounts/accounts] - contact [:get-current-chat-contact] + contact [:chats/current-chat-contact] sync-state [:sync-state]] (let [has-subtitle? (or group-chat (not= :done sync-state))] [react/view {:style st/toolbar-container} diff --git a/src/status_im/ui/screens/chat/views.cljs b/src/status_im/ui/screens/chat/views.cljs index e983fc1e85..8bde7a55bb 100644 --- a/src/status_im/ui/screens/chat/views.cljs +++ b/src/status_im/ui/screens/chat/views.cljs @@ -26,7 +26,7 @@ [status-im.ui.components.toolbar.actions :as toolbar.actions])) (defview add-contact-bar [contact-identity] - (letsubs [{:keys [hide-contact?] :as contact} [:get-contact-by-identity]] + (letsubs [{:keys [hide-contact?] :as contact} [:contacts/contact-by-identity]] (when (and (not hide-contact?) (models.contact/can-add-to-contacts? contact)) [react/view style/add-contact @@ -48,8 +48,8 @@ :options (actions/actions group-chat? chat-id public?)})) (defview chat-toolbar [public? modal?] - (letsubs [name [:get-current-chat-name] - {:keys [group-chat chat-id contacts]} [:get-current-chat]] + (letsubs [name [:chats/current-chat-name] + {:keys [group-chat chat-id contacts]} [:chats/current-chat]] [react/view [status-bar/status-bar (when modal? {:type :modal-white})] [toolbar/platform-agnostic-toolbar {} @@ -101,7 +101,7 @@ message-view]]])) (defview empty-chat-container [{:keys [group-chat chat-id]}] - (letsubs [contact [:get-contact-by-identity chat-id]] + (letsubs [contact [:contacts/contact-by-identity chat-id]] (let [one-to-one (and (not group-chat) (not (:dapp? contact)))] [react/view style/empty-chat-container @@ -115,8 +115,8 @@ (i18n/label :t/empty-chat-description))]]))) (defview messages-view [group-chat modal?] - (letsubs [messages [:get-current-chat-messages-stream] - chat [:get-current-chat] + (letsubs [messages [:chats/current-chat-messages-stream] + chat [:chats/current-chat] current-public-key [:account/public-key]] {:component-did-mount #(re-frame/dispatch [:chat.ui/set-chat-ui-props {:messages-focused? true :input-focused? false}])} @@ -135,10 +135,10 @@ :keyboardShouldPersistTaps :handled}]))) (defview chat-root [modal?] - (letsubs [{:keys [group-chat public?]} [:get-current-chat] - show-bottom-info? [:get-current-chat-ui-prop :show-bottom-info?] - show-message-options? [:get-current-chat-ui-prop :show-message-options?] - current-view [:get :view-id]] + (letsubs [{:keys [group-chat public?]} [:chats/current-chat] + show-bottom-info? [:chats/current-chat-ui-prop :show-bottom-info?] + show-message-options? [:chats/current-chat-ui-prop :show-message-options?] + current-view [:get :view-id]] ;; this scroll-view is a hack that allows us to use on-blur and on-focus on Android ;; more details here: https://github.com/facebook/react-native/issues/11071 [react/scroll-view {:scroll-enabled false diff --git a/src/status_im/ui/screens/desktop/main/add_new/views.cljs b/src/status_im/ui/screens/desktop/main/add_new/views.cljs index c8dcc0c3d8..f2a3d0e7cd 100644 --- a/src/status_im/ui/screens/desktop/main/add_new/views.cljs +++ b/src/status_im/ui/screens/desktop/main/add_new/views.cljs @@ -39,7 +39,7 @@ (views/defview new-contact [] (views/letsubs [new-contact-identity [:get :contacts/new-identity] - contacts [:all-added-people-contacts] + contacts [:contacts/all-added-people-contacts] chat-error [:new-identity-error] topic [:get :public-group-topic] topic-error [:public-chat.new/topic-error-message]] diff --git a/src/status_im/ui/screens/desktop/main/chat/views.cljs b/src/status_im/ui/screens/desktop/main/chat/views.cljs index 91929ef126..79c48f0158 100644 --- a/src/status_im/ui/screens/desktop/main/chat/views.cljs +++ b/src/status_im/ui/screens/desktop/main/chat/views.cljs @@ -27,8 +27,8 @@ (views/defview toolbar-chat-view [{:keys [chat-id color public-key public? group-chat] :as current-chat}] - (views/letsubs [chat-name [:get-current-chat-name] - {:keys [pending? public-key photo-path]} [:get-current-chat-contact]] + (views/letsubs [chat-name [:chats/current-chat-name] + {:keys [pending? public-key photo-path]} [:chats/current-chat-contact]] [react/view {:style styles/toolbar-chat-view} [react/view {:style {:flex-direction :row :flex 1}} @@ -69,14 +69,14 @@ (i18n/label :t/delete-chat)]]])) (views/defview message-author-name [{:keys [from]}] - (views/letsubs [incoming-name [:get-contact-name-by-identity from]] + (views/letsubs [incoming-name [:contacts/contact-name-by-identity from]] (let [name (chat-utils/format-author from incoming-name)] [react/touchable-highlight {:on-press #(re-frame/dispatch [:show-contact-dialog from name (boolean incoming-name)])} [react/text {:style styles/author :font :medium} name]]))) (views/defview member-photo [from] (views/letsubs [current-public-key [:account/public-key] - photo-path [:get-photo-path from]] + photo-path [:chats/photo-path from]] [react/view {:style {:width 40 :margin-horizontal 16}} [react/view {:style {:position :absolute}} [react/touchable-highlight {:on-press #(when-not (= current-public-key from) @@ -88,7 +88,7 @@ :style styles/photo-style}]]]]])) (views/defview quoted-message [{:keys [from text]} outgoing current-public-key] - (views/letsubs [username [:get-contact-name-by-identity from]] + (views/letsubs [username [:contacts/contact-name-by-identity from]] [react/view {:style styles/quoted-message-container} [react/view {:style styles/quoted-message-author-container} [icons/icon :icons/reply {:style (styles/reply-icon outgoing) @@ -175,12 +175,12 @@ (defmethod message :default [text me? {:keys [message-id chat-id message-status user-statuses from current-public-key content-type outgoing type value] :as message}] - (when (nil? message-id) - (log/debug "nil?" message)) (if (= type :datemark) ^{:key (str "datemark" message-id)} [message.datemark/chat-datemark value] (when (contains? constants/desktop-content-types content-type) + (when (nil? message-id) + (log/debug "nil?" message)) (reagent.core/create-class {:component-did-mount #(when (and message-id @@ -206,7 +206,7 @@ (reset! messages-to-load next-count))) (views/defview messages-view [{:keys [chat-id group-chat]}] - (views/letsubs [messages [:get-current-chat-messages-stream] + (views/letsubs [messages [:chats/current-chat-messages-stream] current-public-key [:account/public-key] messages-to-load (reagent/atom load-step) chat-id* (reagent/atom nil)] @@ -243,7 +243,7 @@ [connectivity/error-view]]))) (views/defview send-button [inp-ref network-status] - (views/letsubs [{:keys [input-text]} [:get-current-chat]] + (views/letsubs [{:keys [input-text]} [:chats/current-chat]] (let [empty? (= "" input-text) offline? (= :offline network-status) inactive? (or empty? offline?)] @@ -258,7 +258,7 @@ [icons/icon :icons/arrow-left {:style (styles/send-icon-arrow inactive?)}]]]))) (views/defview reply-message [from message-text] - (views/letsubs [username [:get-contact-name-by-identity from] + (views/letsubs [username [:contacts/contact-name-by-identity from] current-public-key [:account/public-key]] [react/view {:style styles/reply-content-container} [react/text {:style styles/reply-content-author} @@ -266,14 +266,14 @@ [react/text {:style styles/reply-content-message} message-text]])) (views/defview reply-member-photo [from] - (views/letsubs [photo-path [:get-photo-path from]] + (views/letsubs [photo-path [:chats/photo-path from]] [react/image {:source {:uri (if (string/blank? photo-path) (identicon/identicon from) photo-path)} :style styles/reply-photo-style}])) (views/defview reply-message-view [] - (views/letsubs [{:keys [content from] :as message} [:get-reply-message]] + (views/letsubs [{:keys [content from] :as message} [:chats/reply-message]] (when message [react/view {:style styles/reply-wrapper} [react/view {:style styles/reply-container} @@ -320,7 +320,7 @@ [send-button inp-ref network-status]]))) (views/defview chat-view [] - (views/letsubs [{:keys [input-text chat-id] :as current-chat} [:get-current-chat]] + (views/letsubs [{:keys [input-text chat-id] :as current-chat} [:chats/current-chat]] [react/view {:style styles/chat-view} [toolbar-chat-view current-chat] [react/view {:style styles/separator}] @@ -330,8 +330,8 @@ [chat-text-input chat-id input-text]])) (views/defview chat-profile [] - (views/letsubs [identity [:get-current-contact-identity] - maybe-contact [:get-current-contact]] + (views/letsubs [identity [:contacts/current-contact-identity] + maybe-contact [:contacts/current-contact]] (let [contact (or maybe-contact (contact.db/public-key->new-contact identity)) {:keys [pending? public-key]} contact] [react/view {:style styles/chat-profile-body} diff --git a/src/status_im/ui/screens/desktop/main/tabs/home/views.cljs b/src/status_im/ui/screens/desktop/main/tabs/home/views.cljs index 1088a4b9ca..71caa86ae5 100644 --- a/src/status_im/ui/screens/desktop/main/tabs/home/views.cljs +++ b/src/status_im/ui/screens/desktop/main/tabs/home/views.cljs @@ -13,18 +13,18 @@ [status-im.constants :as constants])) (views/defview unviewed-indicator [chat-id] - (let [unviewed-messages-count (re-frame/subscribe [:unviewed-messages-count chat-id])] + (let [unviewed-messages-count (re-frame/subscribe [:chats/unviewed-messages-count chat-id])] (when (pos? @unviewed-messages-count) [react/view [react/text {:font :medium} @unviewed-messages-count]]))) (views/defview chat-list-item-inner-view [{:keys [chat-id name group-chat color public? public-key] :as chat-item}] - (letsubs [photo-path [:get-chat-photo chat-id] - unviewed-messages-count [:unviewed-messages-count chat-id] - chat-name [:get-chat-name chat-id] - current-chat-id [:get-current-chat-id] - {:keys [content] :as last-message} [:get-last-message chat-id]] + (letsubs [photo-path [:contacts/chat-photo chat-id] + unviewed-messages-count [:chats/unviewed-messages-count chat-id] + chat-name [:chats/chat-name chat-id] + current-chat-id [:chats/current-chat-id] + {:keys [content] :as last-message} [:chats/last-message chat-id]] (let [name (or chat-name (gfycat/generate-gfy public-key)) [unviewed-messages-label large?] (if (< 9 unviewed-messages-count) diff --git a/src/status_im/ui/screens/group/add_contacts/views.cljs b/src/status_im/ui/screens/group/add_contacts/views.cljs index cbcd0cb704..32d9ae63da 100644 --- a/src/status_im/ui/screens/group/add_contacts/views.cljs +++ b/src/status_im/ui/screens/group/add_contacts/views.cljs @@ -63,7 +63,7 @@ ;; Start group chat (defview contact-toggle-list [] - (letsubs [contacts [:all-added-people-contacts] + (letsubs [contacts [:contacts/all-added-people-contacts] selected-contacts-count [:selected-contacts-count]] [react/keyboard-avoiding-view {:style styles/group-container} [status-bar] @@ -77,8 +77,8 @@ ;; Add participants to existing group chat (defview add-participants-toggle-list [] - (letsubs [contacts [:get-all-contacts-not-in-current-chat] - {:keys [name]} [:get-current-chat] + (letsubs [contacts [:contacts/all-contacts-not-in-current-chat] + {:keys [name]} [:chats/current-chat] selected-contacts-count [:selected-participants-count]] [react/keyboard-avoiding-view {:style styles/group-container} [status-bar] diff --git a/src/status_im/ui/screens/group/subs.cljs b/src/status_im/ui/screens/group/subs.cljs index 6f937f638d..9ba470da7c 100644 --- a/src/status_im/ui/screens/group/subs.cljs +++ b/src/status_im/ui/screens/group/subs.cljs @@ -16,7 +16,7 @@ (reg-sub :selected-contacts-count :<- [:get :group/selected-contacts] - :<- [:get-contacts] + :<- [:contacts/contacts] (fn [[selected-contacts contacts]] (count (filter-selected-contacts selected-contacts contacts)))) diff --git a/src/status_im/ui/screens/home/subs.cljs b/src/status_im/ui/screens/home/subs.cljs index e216387a40..31b9054981 100644 --- a/src/status_im/ui/screens/home/subs.cljs +++ b/src/status_im/ui/screens/home/subs.cljs @@ -3,7 +3,7 @@ (re-frame/reg-sub :home-items - :<- [:get-active-chats] + :<- [:chats/active-chats] :<- [:browser/browsers] (fn [[chats browsers]] (sort-by #(-> % second :timestamp) > (merge chats browsers)))) diff --git a/src/status_im/ui/screens/home/views/inner_item.cljs b/src/status_im/ui/screens/home/views/inner_item.cljs index 7fea4a049a..cd8520e0cf 100644 --- a/src/status_im/ui/screens/home/views/inner_item.cljs +++ b/src/status_im/ui/screens/home/views/inner_item.cljs @@ -22,7 +22,7 @@ [status-im.browser.core :as browser])) (defview command-short-preview [message] - (letsubs [id->command [:get-id->command]] + (letsubs [id->command [:chats/id->command]] (when-let [command (commands-receiving/lookup-command-by-ref message id->command)] (commands/generate-short-preview command message)))) @@ -63,7 +63,7 @@ (time/to-short-str timestamp)])) (defview unviewed-indicator [chat-id] - (letsubs [unviewed-messages-count [:unviewed-messages-count chat-id]] + (letsubs [unviewed-messages-count [:chats/unviewed-messages-count chat-id]] (when (pos? unviewed-messages-count) [components.common/counter {:size 22 :accessibility-label :unread-messages-count-text} @@ -89,8 +89,8 @@ group-chat public? public-key timestamp]}] - (letsubs [last-message [:get-last-message chat-id] - chat-name [:get-chat-name chat-id]] + (letsubs [last-message [:chats/last-message chat-id] + chat-name [:chats/chat-name chat-id]] (let [truncated-chat-name (utils/truncate-str chat-name 30)] [react/touchable-highlight {:on-press #(re-frame/dispatch [:chat.ui/navigate-to-chat chat-id])} [react/view styles/chat-container diff --git a/src/status_im/ui/screens/main_tabs/views.cljs b/src/status_im/ui/screens/main_tabs/views.cljs index 8067c63aa3..92f7657f51 100644 --- a/src/status_im/ui/screens/main_tabs/views.cljs +++ b/src/status_im/ui/screens/main_tabs/views.cljs @@ -17,7 +17,7 @@ :content {:title (i18n/label :t/home) :icon-inactive :icons/home :icon-active :icons/home-active} - :count-subscription :get-chats-unread-messages-number + :count-subscription :chats/unread-messages-number :accessibility-label :home-tab-button} {:view-id :wallet :content {:title (i18n/label :t/wallet) diff --git a/src/status_im/ui/screens/profile/contact/views.cljs b/src/status_im/ui/screens/profile/contact/views.cljs index 4600749cc0..966c81d36a 100644 --- a/src/status_im/ui/screens/profile/contact/views.cljs +++ b/src/status_im/ui/screens/profile/contact/views.cljs @@ -62,8 +62,8 @@ [profile-info-contact-code-item public-key]]) (defview profile [] - (letsubs [identity [:get-current-contact-identity] - maybe-contact [:get-current-contact]] + (letsubs [identity [:contacts/current-contact-identity] + maybe-contact [:contacts/current-contact]] (let [contact (or maybe-contact (contact.db/public-key->new-contact identity))] [react/view profile.components.styles/profile [status-bar/status-bar] diff --git a/src/status_im/ui/screens/profile/group_chat/views.cljs b/src/status_im/ui/screens/profile/group_chat/views.cljs index ae99de71fe..781e8c5ffe 100644 --- a/src/status_im/ui/screens/profile/group_chat/views.cljs +++ b/src/status_im/ui/screens/profile/group_chat/views.cljs @@ -72,7 +72,7 @@ #(re-frame/dispatch [(if platform/desktop? :show-profile-desktop :chat.ui/show-profile) public-key]))}]]) (defview chat-group-members-view [chat-id admin? current-user-identity] - (letsubs [members [:get-current-chat-contacts]] + (letsubs [members [:contacts/current-chat-contacts]] (when (seq members) [react/view [list/flat-list {:data members @@ -86,7 +86,7 @@ [chat-group-members-view chat-id admin? current-user-identity]]) (defview group-chat-profile [] - (letsubs [{:keys [admins chat-id] :as current-chat} [:get-current-chat] + (letsubs [{:keys [admins chat-id] :as current-chat} [:chats/current-chat] editing? [:get :group-chat-profile/editing?] changed-chat [:get :group-chat-profile/profile] current-pk [:account/public-key]] diff --git a/src/status_im/ui/screens/wallet/components/views.cljs b/src/status_im/ui/screens/wallet/components/views.cljs index 8de881fbf5..5febb416f4 100644 --- a/src/status_im/ui/screens/wallet/components/views.cljs +++ b/src/status_im/ui/screens/wallet/components/views.cljs @@ -184,7 +184,7 @@ (i18n/label :t/specify-recipient)))]) (views/defview recipient-contact [address name request?] - (views/letsubs [contact [:get-contact-by-address address]] + (views/letsubs [contact [:contacts/contact-by-address address]] (let [address? (and (not (nil? address)) (not= address ""))] [react/view styles/recipient-container [react/view styles/recipient-icon @@ -211,7 +211,7 @@ (ethereum/normalized-address (:address contact))]]]]) (views/defview recent-recipients [] - (views/letsubs [contacts [:all-added-people-contacts]] + (views/letsubs [contacts [:contacts/all-added-people-contacts]] [simple-screen [toolbar (i18n/label :t/recipient)] [react/view styles/recent-recipients diff --git a/src/status_im/ui/screens/wallet/transaction_sent/views.cljs b/src/status_im/ui/screens/wallet/transaction_sent/views.cljs index 584e8191c5..3e33f3366b 100644 --- a/src/status_im/ui/screens/wallet/transaction_sent/views.cljs +++ b/src/status_im/ui/screens/wallet/transaction_sent/views.cljs @@ -13,7 +13,7 @@ [status-im.ui.components.colors :as colors])) (defview transaction-sent [& [modal?]] - (letsubs [chat-id [:get-current-chat-id]] + (letsubs [chat-id [:chats/current-chat-id]] [react/view wallet.styles/wallet-modal-container [status-bar/status-bar {:type (if modal? :modal-wallet :transparent)}] [react/view styles/transaction-sent-container diff --git a/src/status_im/ui/screens/wallet/transactions/subs.cljs b/src/status_im/ui/screens/wallet/transactions/subs.cljs index 4eebd026cd..f0d5f92727 100644 --- a/src/status_im/ui/screens/wallet/transactions/subs.cljs +++ b/src/status_im/ui/screens/wallet/transactions/subs.cljs @@ -27,7 +27,7 @@ (reg-sub :wallet.transactions/transactions :<- [:wallet] - :<- [:get-contacts-by-address] + :<- [:contacts/contacts-by-address] (fn [[wallet contacts]] (reduce (fn [acc [hash transaction]] (assoc acc hash (enrich-transaction transaction contacts)))