From 6bee2ea3c3da0cea385ab060ccf6012bf05f0114 Mon Sep 17 00:00:00 2001 From: Andrey Shovkoplyas Date: Mon, 1 Oct 2018 11:28:09 +0200 Subject: [PATCH] two permissions in a row --- src/cljs/status_dapp/core.cljs | 3 --- src/cljs/status_dapp/db.cljs | 7 +++++-- src/cljs/status_dapp/events.cljs | 5 ++--- src/cljs/status_dapp/views.cljs | 15 +++++++-------- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/cljs/status_dapp/core.cljs b/src/cljs/status_dapp/core.cljs index fab583f..fbf8a50 100644 --- a/src/cljs/status_dapp/core.cljs +++ b/src/cljs/status_dapp/core.cljs @@ -6,9 +6,6 @@ [status-dapp.views :as views] [status-dapp.config :as config])) -(js/window.addEventListener "statusapi" - #(re-frame/dispatch [:on-status-api (js->clj (.-detail %) :keywordize-keys true)])) - (defn dev-setup [] (when config/debug? (enable-console-print!) diff --git a/src/cljs/status_dapp/db.cljs b/src/cljs/status_dapp/db.cljs index abda65a..f414ec1 100644 --- a/src/cljs/status_dapp/db.cljs +++ b/src/cljs/status_dapp/db.cljs @@ -3,8 +3,11 @@ (def web3 (or (when (exists? js/web3) js/web3) (when js/ethereum - (js/setTimeout (fn [] (.then (.enable js/ethereum) #(do - (re-frame/dispatch [:set-default-account]))) 100)) + (js/setTimeout (fn [] + (.then (.enable js/ethereum) #(re-frame/dispatch [:set-default-account])) + (when js/ethereum.status + (.then (.getContactCode js/ethereum.status) #(re-frame/dispatch [:on-status-api :contact %])))) + 100) (js/Web3. js/ethereum)))) (def default-db diff --git a/src/cljs/status_dapp/events.cljs b/src/cljs/status_dapp/events.cljs index ab1097d..3b550d8 100644 --- a/src/cljs/status_dapp/events.cljs +++ b/src/cljs/status_dapp/events.cljs @@ -246,9 +246,8 @@ (re-frame/reg-event-fx :on-status-api - (fn [{db :db} [_ {:keys [data permissions]}]] - (println "ON MESSAGE DATA" data) - {:db (assoc-in db [:api :contact] (:CONTACT_CODE data))})) + (fn [{db :db} [_ api data]] + {:db (assoc-in db [:api api] data)})) (re-frame/reg-event-fx :set-default-account diff --git a/src/cljs/status_dapp/views.cljs b/src/cljs/status_dapp/views.cljs index cd2cc46..7d6eeb6 100644 --- a/src/cljs/status_dapp/views.cljs +++ b/src/cljs/status_dapp/views.cljs @@ -139,14 +139,13 @@ (when (= :api tab-view) [react/view - - [ui/button "Request contact code (public key)" - #(js/window.postMessage - (clj->js {:type "STATUS_API_REQUEST" :permissions ["CONTACT_CODE" "CONTACTS"]}) - "*")] - [react/view {:style {:margin-bottom 10}} - [ui/label "Contact code: " ""] - [react/text (:contact status-api)]] + (when (exists? js/window.ethereum.status) + [react/view + [ui/button "Request contact code (public key)" + (fn [] (.then (.getContactCode js/window.ethereum.status) #(re-frame/dispatch [:on-status-api :contact %])))] + [react/view {:style {:margin-bottom 10}} + [ui/label "Contact code: " ""] + [react/text (:contact status-api)]]]) [ui/button "Scan QR" (fn [] (if (and web3 (.-currentProvider web3) (.-scanQRCode (.-currentProvider web3)))