|
1 | 1 | (ns status-im.multiaccounts.update.core
|
2 |
| - (:require [status-im2.constants :as constants] |
3 |
| - [utils.re-frame :as rf] |
4 |
| - [status-im.utils.types :as types] |
5 |
| - [taoensso.timbre :as log])) |
| 2 | + (:require [status-im.utils.types :as types] |
| 3 | + [status-im2.constants :as constants] |
| 4 | + [taoensso.timbre :as log] |
| 5 | + [utils.re-frame :as rf])) |
6 | 6 |
|
7 |
| -(rf/defn send-multiaccount-update |
8 |
| - [{:keys [db] :as cofx}] |
9 |
| - (let [multiaccount (:multiaccount db) |
10 |
| - {:keys [name preferred-name address]} multiaccount] |
| 7 | +(rf/defn send-contact-update |
| 8 | + [{:keys [db]}] |
| 9 | + (let [{:keys [name preferred-name display-name address]} (:multiaccount db)] |
11 | 10 | {:json-rpc/call [{:method "wakuext_sendContactUpdates"
|
12 |
| - :params [(or preferred-name name) ""] |
| 11 | + :params [(or preferred-name display-name name) ""] |
13 | 12 | :on-success #(log/debug "sent contact update")}]}))
|
14 | 13 |
|
| 14 | +(rf/defn update-multiaccount-account-name |
| 15 | + "This updates the profile name in the profile list before login" |
| 16 | + {:events [:multiaccounts.ui/update-name]} |
| 17 | + [{:keys [db] :as cofx} raw-multiaccounts-from-status-go] |
| 18 | + (let [{:keys [key-uid name preferred-name |
| 19 | + display-name]} (:multiaccount db) |
| 20 | + account (some #(and (= (:key-uid %) key-uid) %) raw-multiaccounts-from-status-go)] |
| 21 | + (when-let [new-name (and account (or preferred-name display-name name))] |
| 22 | + (rf/merge cofx |
| 23 | + {:json-rpc/call [{:method "multiaccounts_updateAccount" |
| 24 | + :params [(assoc account :name new-name)] |
| 25 | + :on-success #(log/debug "sent multiaccount update")}]})))) |
| 26 | + |
15 | 27 | (rf/defn multiaccount-update
|
16 | 28 | "Takes effects (containing :db) + new multiaccount fields, adds all effects necessary for multiaccount update.
|
17 | 29 | Optionally, one can specify a success-event to be dispatched after fields are persisted."
|
|
25 | 37 | (throw
|
26 | 38 | (js/Error.
|
27 | 39 | "Please shake the phone to report this error and restart the app. multiaccount is currently empty, which means something went wrong when trying to update it with"))
|
28 |
| - (rf/merge cofx |
29 |
| - {:db (if setting-value |
30 |
| - (assoc-in db [:multiaccount setting] setting-value) |
31 |
| - (update db :multiaccount dissoc setting)) |
32 |
| - :json-rpc/call |
33 |
| - [{:method "settings_saveSetting" |
34 |
| - :params [setting setting-value] |
35 |
| - :on-success on-success}]} |
36 |
| - (when (and (not dont-sync?) |
37 |
| - (#{:name :prefered-name} setting)) |
38 |
| - (send-multiaccount-update)))))) |
| 40 | + (rf/merge |
| 41 | + cofx |
| 42 | + {:db (if setting-value |
| 43 | + (assoc-in db [:multiaccount setting] setting-value) |
| 44 | + (update db :multiaccount dissoc setting)) |
| 45 | + :json-rpc/call |
| 46 | + [{:method "settings_saveSetting" |
| 47 | + :params [setting setting-value] |
| 48 | + :on-success on-success}]} |
| 49 | + |
| 50 | + (when (#{:name :preferred-name} setting) |
| 51 | + (constantly {:setup/open-multiaccounts #(rf/dispatch [:multiaccounts.ui/update-name %])})) |
| 52 | + |
| 53 | + (when (and (not dont-sync?) (#{:name :preferred-name} setting)) |
| 54 | + (send-contact-update)))))) |
39 | 55 |
|
40 | 56 | (rf/defn clean-seed-phrase
|
41 | 57 | "A helper function that removes seed phrase from storage."
|
|
44 | 60 |
|
45 | 61 | (defn augment-synchronized-recent-stickers
|
46 | 62 | "Add 'url' parameter to stickers that are synchronized from other devices.
|
47 |
| - It is not sent from aanother devices but we have it in our db." |
| 63 | + It is not sent from another devices but we have it in our db." |
48 | 64 | [synced-stickers stickers-from-db]
|
49 | 65 | (mapv #(assoc %
|
50 | 66 | :url
|
|
0 commit comments