|
1 | 1 | (ns status-im.contexts.wallet.common.activity-tab.events
|
2 | 2 | (:require [camel-snake-kebab.extras :as cske]
|
| 3 | + [status-im.contexts.wallet.common.activity-tab.constants :as constants] |
3 | 4 | [utils.collection :as collection]
|
4 | 5 | [utils.ethereum.chain :as chain]
|
5 | 6 | [utils.re-frame :as rf]
|
|
92 | 93 | :wallet/activity-filtering-for-current-account-done
|
93 | 94 | (fn [{:keys [db]} [{:keys [message]}]]
|
94 | 95 | (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))] |
105 |
| - {:db (-> db |
106 |
| - (assoc-in [:wallet :activities address] updated-activities) |
107 |
| - (assoc-in [:wallet :ui :activity-tab :request :offset] offset) |
108 |
| - (assoc-in [:wallet :ui :activity-tab :request :has-more?] hasMore) |
109 |
| - (assoc-in [:wallet :ui :activity-tab :request :loading?] false))}))) |
| 96 | + remove-all-existing-activities?]} (get-in db [:wallet :ui :activity-tab :request]) |
| 97 | + message-clj (transforms/json->clj message) |
| 98 | + {:keys [activities offset hasMore errorCode]} message-clj] |
| 99 | + (if (= errorCode constants/activity-request-success) |
| 100 | + (let [new-activities (->> activities |
| 101 | + (cske/transform-keys |
| 102 | + transforms/->kebab-case-keyword) |
| 103 | + (collection/index-by :key)) |
| 104 | + existing-activities (get-in db [:wallet :activities address]) |
| 105 | + updated-activities (if remove-all-existing-activities? |
| 106 | + new-activities |
| 107 | + (nested-merge existing-activities |
| 108 | + new-activities))] |
| 109 | + {:db (-> db |
| 110 | + (assoc-in [:wallet :activities address] updated-activities) |
| 111 | + (assoc-in [:wallet :ui :activity-tab :request :offset] offset) |
| 112 | + (assoc-in [:wallet :ui :activity-tab :request :has-more?] hasMore) |
| 113 | + (assoc-in [:wallet :ui :activity-tab :request :loading?] false))}) |
| 114 | + {:db (assoc-in db [:wallet :ui :activity-tab :request :loading?] false)})))) |
110 | 115 |
|
111 | 116 | (rf/reg-event-fx
|
112 | 117 | :wallet/activities-filtering-entries-updated
|
|
0 commit comments