mirror of
https://github.com/status-im/status-react.git
synced 2025-02-17 05:16:46 +00:00
preload chats
Signed-off-by: andrey <motor4ik@gmail.com>
This commit is contained in:
parent
f940f8dfc8
commit
25a6495d37
@ -29,14 +29,24 @@
|
|||||||
new-chats)
|
new-chats)
|
||||||
chats (merge old-chats chats)]
|
chats (merge old-chats chats)]
|
||||||
{:db (assoc db :chats chats
|
{:db (assoc db :chats chats
|
||||||
|
:chats/all-chats-loading? false
|
||||||
:chats/loading? false)}))
|
:chats/loading? false)}))
|
||||||
|
|
||||||
(fx/defn initialize-chats
|
(fx/defn initialize-chats
|
||||||
"Initialize persisted chats on startup"
|
"Initialize persisted chats on startup"
|
||||||
[cofx]
|
[cofx]
|
||||||
(data-store.chats/fetch-chats-rpc cofx {:on-success
|
(data-store.chats/fetch-some-chats-rpc cofx {:num 60
|
||||||
#(re-frame/dispatch
|
:on-success
|
||||||
[:chats-list/load-success %])}))
|
#(re-frame/dispatch
|
||||||
|
[:chats-list/load-success %])}))
|
||||||
|
|
||||||
|
(fx/defn load-all-chats
|
||||||
|
"Initialize persisted chats on startup"
|
||||||
|
{:events [:load-all-chats]}
|
||||||
|
[{:keys [db]}]
|
||||||
|
(when-not (:chats/all-chats-loaded? db)
|
||||||
|
(fx/merge {:db (assoc db :chats/all-chats-loaded? true :chats/all-chats-loading? true)}
|
||||||
|
(data-store.chats/fetch-chats-rpc {:on-success #(re-frame/dispatch [:chats-list/load-success %])}))))
|
||||||
|
|
||||||
(fx/defn handle-failed-loading-messages
|
(fx/defn handle-failed-loading-messages
|
||||||
{:events [::failed-loading-messages]}
|
{:events [::failed-loading-messages]}
|
||||||
|
@ -70,8 +70,14 @@
|
|||||||
(update :last-message #(when % (messages/<-rpc %)))
|
(update :last-message #(when % (messages/<-rpc %)))
|
||||||
(dissoc :members)))
|
(dissoc :members)))
|
||||||
|
|
||||||
(fx/defn fetch-chats-rpc [cofx {:keys [on-success]}]
|
(fx/defn fetch-chats-rpc [_ {:keys [on-success]}]
|
||||||
{::json-rpc/call [{:method (json-rpc/call-ext-method "chats")
|
{::json-rpc/call [{:method (json-rpc/call-ext-method "chats")
|
||||||
:params []
|
:params []
|
||||||
:on-success #(on-success (map <-rpc %))
|
:on-success #(on-success (map <-rpc %))
|
||||||
:on-failure #(log/error "failed to fetch chats" 0 -1 %)}]})
|
:on-failure #(log/error "failed to fetch chats" 0 -1 %)}]})
|
||||||
|
|
||||||
|
(fx/defn fetch-some-chats-rpc [_ {:keys [on-success num]}]
|
||||||
|
{::json-rpc/call [{:method (json-rpc/call-ext-method "latestActiveNChats")
|
||||||
|
:params [num]
|
||||||
|
:on-success #(on-success (map <-rpc %))
|
||||||
|
:on-failure #(log/error "failed to fetch chats" 0 -1 %)}]})
|
@ -73,6 +73,7 @@
|
|||||||
"wakuext_sendContactUpdate" {}
|
"wakuext_sendContactUpdate" {}
|
||||||
"wakuext_sendContactUpdates" {}
|
"wakuext_sendContactUpdates" {}
|
||||||
"wakuext_chats" {}
|
"wakuext_chats" {}
|
||||||
|
"wakuext_latestActiveNChats" {}
|
||||||
"wakuext_activeChats" {}
|
"wakuext_activeChats" {}
|
||||||
"wakuext_addSystemMessages" {}
|
"wakuext_addSystemMessages" {}
|
||||||
"wakuext_deleteMessagesFrom" {}
|
"wakuext_deleteMessagesFrom" {}
|
||||||
|
@ -121,6 +121,8 @@
|
|||||||
(reg-root-key-sub :group-chat/invitations :group-chat/invitations)
|
(reg-root-key-sub :group-chat/invitations :group-chat/invitations)
|
||||||
(reg-root-key-sub :chats/mention-suggestions :chats/mention-suggestions)
|
(reg-root-key-sub :chats/mention-suggestions :chats/mention-suggestions)
|
||||||
(reg-root-key-sub :chat/inputs-with-mentions :chat/inputs-with-mentions)
|
(reg-root-key-sub :chat/inputs-with-mentions :chat/inputs-with-mentions)
|
||||||
|
(reg-root-key-sub :chats/all-chats-loading? :chats/all-chats-loading?)
|
||||||
|
|
||||||
;;browser
|
;;browser
|
||||||
(reg-root-key-sub :browsers :browser/browsers)
|
(reg-root-key-sub :browsers :browser/browsers)
|
||||||
(reg-root-key-sub :browser/options :browser/options)
|
(reg-root-key-sub :browser/options :browser/options)
|
||||||
|
@ -141,7 +141,8 @@
|
|||||||
|
|
||||||
(views/defview communities-and-chats []
|
(views/defview communities-and-chats []
|
||||||
(views/letsubs [{:keys [items search-filter]} [:home-items]
|
(views/letsubs [{:keys [items search-filter]} [:home-items]
|
||||||
hide-home-tooltip? [:hide-home-tooltip?]]
|
hide-home-tooltip? [:hide-home-tooltip?]
|
||||||
|
all-chats-loading? [:chats/all-chats-loading?]]
|
||||||
(if (and (empty? items)
|
(if (and (empty? items)
|
||||||
(empty? search-filter)
|
(empty? search-filter)
|
||||||
hide-home-tooltip?
|
hide-home-tooltip?
|
||||||
@ -154,6 +155,7 @@
|
|||||||
:keyboard-should-persist-taps :always
|
:keyboard-should-persist-taps :always
|
||||||
:data items
|
:data items
|
||||||
:render-fn render-fn
|
:render-fn render-fn
|
||||||
|
:on-end-reached #(re-frame/dispatch [:load-all-chats])
|
||||||
:header [:<>
|
:header [:<>
|
||||||
(when (or (seq items) @search-active? (seq search-filter))
|
(when (or (seq items) @search-active? (seq search-filter))
|
||||||
[search-input-wrapper search-filter (empty? items)])
|
[search-input-wrapper search-filter (empty? items)])
|
||||||
@ -161,9 +163,12 @@
|
|||||||
(when (and (empty? items)
|
(when (and (empty? items)
|
||||||
(or @search-active? (seq search-filter)))
|
(or @search-active? (seq search-filter)))
|
||||||
[start-suggestion search-filter])]
|
[start-suggestion search-filter])]
|
||||||
:footer (if (and (not hide-home-tooltip?) (not @search-active?))
|
:footer [:<>
|
||||||
[home-tooltip-view]
|
(when all-chats-loading?
|
||||||
[react/view {:height 68}])}])))
|
[react/activity-indicator])
|
||||||
|
(if (and (not hide-home-tooltip?) (not @search-active?))
|
||||||
|
[home-tooltip-view]
|
||||||
|
[react/view {:height 68}])]}])))
|
||||||
|
|
||||||
(views/defview chats-list []
|
(views/defview chats-list []
|
||||||
(views/letsubs [loading? [:chats/loading?]]
|
(views/letsubs [loading? [:chats/loading?]]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"_comment": "DO NOT EDIT THIS FILE BY HAND. USE 'scripts/update-status-go.sh <tag>' instead",
|
"_comment": "DO NOT EDIT THIS FILE BY HAND. USE 'scripts/update-status-go.sh <tag>' instead",
|
||||||
"owner": "status-im",
|
"owner": "status-im",
|
||||||
"repo": "status-go",
|
"repo": "status-go",
|
||||||
"version": "v0.83.14",
|
"version": "v0.83.16",
|
||||||
"commit-sha1": "c51f9b800c62867c821096e59220a564a96603c6",
|
"commit-sha1": "ab08042f214bb4473eb677949643b18e46824a15",
|
||||||
"src-sha256": "0zgk6zgp84bz6c344iyxabr4cw8gnnm1ld2y7k07vzq3r37cxnhq"
|
"src-sha256": "0cas8fmllqbkllicypwbjjpdjn7jp3asl4jzwrnr3y8c5y9mbxy0"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user