From 5f06ebc27d390a89aa1e235a04e8918f19b93c8c Mon Sep 17 00:00:00 2001 From: Aleksandr Pantiukhov Date: Fri, 19 Oct 2018 18:58:11 +0200 Subject: [PATCH] Temporary that makes it possible to install only one extension at a time (required for the hackathon) Signed-off-by: Aleksandr Pantiukhov --- src/status_im/data_store/accounts.cljs | 4 ++-- src/status_im/events.cljs | 8 +++---- src/status_im/extensions/core.cljs | 24 +++++++++---------- .../ui/screens/extensions/add/events.cljs | 4 ++-- .../ui/screens/extensions/views.cljs | 4 ++-- 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/status_im/data_store/accounts.cljs b/src/status_im/data_store/accounts.cljs index 837440694a..fd027ccc7b 100644 --- a/src/status_im/data_store/accounts.cljs +++ b/src/status_im/data_store/accounts.cljs @@ -26,8 +26,8 @@ (defn- deserialize-extensions [extensions] (reduce-kv - (fn [acc _ {:keys [name] :as extension}] - (assoc acc name extension)) + (fn [acc _ {:keys [id] :as extension}] + (assoc acc id extension)) {} extensions)) diff --git a/src/status_im/events.cljs b/src/status_im/events.cljs index 2ffe8e3f69..a1556fbd77 100644 --- a/src/status_im/events.cljs +++ b/src/status_im/events.cljs @@ -426,8 +426,8 @@ (handlers/register-handler-fx :extensions.ui/add-extension-pressed - (fn [cofx [_ name]] - (extensions/edit cofx name))) + (fn [cofx [_ id]] + (extensions/edit cofx id))) (handlers/register-handler-fx :extensions.ui/input-changed @@ -436,8 +436,8 @@ (handlers/register-handler-fx :extensions.ui/activation-checkbox-pressed - (fn [cofx [_ name state]] - (extensions/toggle-activation cofx name state))) + (fn [cofx [_ id state]] + (extensions/toggle-activation cofx id state))) (handlers/register-handler-fx :extensions.ui/show-button-pressed diff --git a/src/status_im/extensions/core.cljs b/src/status_im/extensions/core.cljs index d89c2a6f99..4efb97a4e7 100644 --- a/src/status_im/extensions/core.cljs +++ b/src/status_im/extensions/core.cljs @@ -250,19 +250,21 @@ [{:keys [db]} input-key value] {:db (update db :extensions/manage assoc input-key {:value value})}) -(fx/defn fetch [cofx name] - (get-in cofx [:db :account/account :extensions name])) +(fx/defn fetch [cofx id] + (get-in cofx [:db :account/account :extensions id])) (fx/defn edit - [cofx name] - (let [{:keys [url]} (fetch cofx name)] + [cofx id] + (let [{:keys [url]} (fetch cofx id)] (fx/merge (set-input cofx :url (str url)) (navigation/navigate-to-cofx :edit-extension nil)))) (fx/defn add [cofx extension-data active?] - (when-let [extension-key (get-in extension-data ['meta :name])] + (let [extension-key "extension" + extension-data (assoc-in extension-data ['meta :name] extension-key)] (fx/merge cofx + #(registry/deactivate extension-key %) #(registry/add extension-data %) (when active? #(registry/activate extension-key %))))) @@ -273,13 +275,11 @@ extension-data] (let [extension-key (get-in extension-data ['meta :name]) {:keys [url id]} manage - extension {:id (-> (:value id) - (or (random-id-generator)) - (string/replace "-" "")) + extension {:id (or (:value id) "extension") :name (str extension-key) :url (:value url) :active? true} - new-extensions (assoc (:extensions account) (:name extension) extension)] + new-extensions (assoc (:extensions account) (:id extension) extension)] (fx/merge cofx {:ui/show-confirmation {:title (i18n/label :t/success) :content (i18n/label :t/extension-installed) @@ -289,15 +289,15 @@ (add extension-data true)))) (fx/defn toggle-activation - [cofx name state] + [cofx id state] (let [toggle-fn (get {true registry/activate false registry/deactivate} state) extensions (get-in cofx [:db :account/account :extensions]) - new-extensions (assoc-in extensions [name :active?] state)] + new-extensions (assoc-in extensions [id :active?] state)] (fx/merge cofx (accounts.update/account-update {:extensions new-extensions} {:success-event nil}) - #(toggle-fn name %)))) + #(toggle-fn id %)))) (fx/defn load [cofx url] diff --git a/src/status_im/ui/screens/extensions/add/events.cljs b/src/status_im/ui/screens/extensions/add/events.cljs index 094cd1eff7..87e7b71d83 100644 --- a/src/status_im/ui/screens/extensions/add/events.cljs +++ b/src/status_im/ui/screens/extensions/add/events.cljs @@ -27,6 +27,6 @@ (handlers/register-handler-fx :extensions/deactivate-all (fn [cofx [_ extensions]] - (apply fx/merge cofx (map (fn [{:keys [name]}] - (partial registry/deactivate name)) + (apply fx/merge cofx (map (fn [{:keys [id]}] + (partial registry/deactivate id)) extensions)))) \ No newline at end of file diff --git a/src/status_im/ui/screens/extensions/views.cljs b/src/status_im/ui/screens/extensions/views.cljs index 77d86fa75c..04b04ec1db 100644 --- a/src/status_im/ui/screens/extensions/views.cljs +++ b/src/status_im/ui/screens/extensions/views.cljs @@ -14,10 +14,10 @@ [react/view (styles/wnode-icon true) [vector-icons/icon :icons/wnode {:color :white}]]) -(defn- render-extension [{:keys [name url active?]}] +(defn- render-extension [{:keys [id name url active?]}] [list/list-item-with-checkbox {:checked? active? - :on-value-change #(re-frame/dispatch [:extensions.ui/activation-checkbox-pressed name %])} + :on-value-change #(re-frame/dispatch [:extensions.ui/activation-checkbox-pressed id %])} [list/item wnode-icon [list/item-content