|
35 | 35 | chain-ids (chain/chain-ids db) |
36 | 36 | params [[address] chain-ids (create-default-filters) limit-per-request]] |
37 | 37 | {:db (-> db |
38 | | - (update-in [:wallet :activities] dissoc address) |
39 | 38 | (update-in [:wallet :ui :activity-tab :request] dissoc :request-id) |
40 | 39 | (update-in [:wallet :ui :activity-tab :request] |
41 | 40 | assoc |
42 | | - :address address |
43 | | - :loading? true |
44 | | - :initial-request? true)) |
| 41 | + :address address |
| 42 | + :loading? true |
| 43 | + :remove-all-previous-activites? true)) |
45 | 44 | :fx [[:json-rpc/call |
46 | 45 | [{:method "wallet_startActivityFilterSessionV2" |
47 | 46 | :params params |
|
69 | 68 | has-more? (get-in db [:wallet :ui :activity-tab :request :has-more?]) |
70 | 69 | params [session-id limit-per-request]] |
71 | 70 | (when (and session-id has-more?) |
72 | | - {:fx [[:json-rpc/call |
| 71 | + {:db (assoc-in db [:wallet :ui :activity-tab :request :remove-all-existing-activities?] false) |
| 72 | + :fx [[:json-rpc/call |
73 | 73 | [{:method "wallet_getMoreForActivityFilterSession" |
74 | 74 | :params params |
75 | 75 | :on-error [:wallet/log-rpc-error |
|
80 | 80 | :wallet/reset-activities-filter-session |
81 | 81 | (fn [{:keys [db]}] |
82 | 82 | (when-let [session-id (get-in db [:wallet :ui :activity-tab :request :request-id])] |
83 | | - {:db (assoc-in db [:wallet :ui :activity-tab :request :initial-request?] true) |
| 83 | + {:db (assoc-in db [:wallet :ui :activity-tab :request :remove-all-existing-activities?] true) |
84 | 84 | :fx [[:json-rpc/call |
85 | 85 | [{:method "wallet_resetActivityFilterSession" |
86 | 86 | :params [session-id limit-per-request] |
|
91 | 91 | (rf/reg-event-fx |
92 | 92 | :wallet/activity-filtering-for-current-account-done |
93 | 93 | (fn [{:keys [db]} [{:keys [message]}]] |
94 | | - (let [{:keys [address initial-request?]} (get-in db [:wallet :ui :activity-tab :request]) |
95 | | - {:keys [activities offset hasMore]} (transforms/json->clj message) |
96 | | - new-activities (->> activities |
97 | | - (cske/transform-keys transforms/->kebab-case-keyword) |
98 | | - (collection/index-by :key)) |
99 | | - existing-activities (get-in db [:wallet :activities address]) |
100 | | - updated-activities (if initial-request? |
101 | | - new-activities |
102 | | - (nested-merge existing-activities new-activities))] |
| 94 | + (let [{:keys [address |
| 95 | + remove-all-existing-activities?]} (get-in db [:wallet :ui :activity-tab :request]) |
| 96 | + {:keys [activities offset hasMore]} (transforms/json->clj message) |
| 97 | + new-activities (->> activities |
| 98 | + (cske/transform-keys |
| 99 | + transforms/->kebab-case-keyword) |
| 100 | + (collection/index-by :key)) |
| 101 | + existing-activities (get-in db [:wallet :activities address]) |
| 102 | + updated-activities (if remove-all-existing-activities? |
| 103 | + new-activities |
| 104 | + (nested-merge existing-activities new-activities))] |
103 | 105 | {:db (-> db |
104 | 106 | (assoc-in [:wallet :activities address] updated-activities) |
105 | 107 | (assoc-in [:wallet :ui :activity-tab :request :offset] offset) |
106 | 108 | (assoc-in [:wallet :ui :activity-tab :request :has-more?] hasMore) |
107 | | - (assoc-in [:wallet :ui :activity-tab :request :loading?] false) |
108 | | - (assoc-in [:wallet :ui :activity-tab :request :initial-request?] false))}))) |
| 109 | + (assoc-in [:wallet :ui :activity-tab :request :loading?] false))}))) |
109 | 110 |
|
110 | 111 | (rf/reg-event-fx |
111 | 112 | :wallet/activities-filtering-entries-updated |
|
0 commit comments