From 31c905daa7e1b71855f06c1f781d67b266a688bb Mon Sep 17 00:00:00 2001 From: Andrey Shovkoplyas Date: Fri, 25 May 2018 14:05:36 +0300 Subject: [PATCH] make dapps great again Signed-off-by: Andrey Shovkoplyas --- .../ui/screens/add_new/open_dapp/views.cljs | 10 +++++----- src/status_im/ui/screens/browser/events.cljs | 7 +++---- src/status_im/ui/screens/browser/views.cljs | 12 ++++++------ src/status_im/ui/screens/contacts/subs.cljs | 7 ++++++- src/status_im/ui/screens/home/views/inner_item.cljs | 8 ++++---- 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/status_im/ui/screens/add_new/open_dapp/views.cljs b/src/status_im/ui/screens/add_new/open_dapp/views.cljs index bd8bb91cab..13f06575b6 100644 --- a/src/status_im/ui/screens/add_new/open_dapp/views.cljs +++ b/src/status_im/ui/screens/add_new/open_dapp/views.cljs @@ -14,14 +14,14 @@ [status-im.ui.screens.add-new.styles :as add-new.styles] [status-im.ui.screens.add-new.open-dapp.styles :as styles])) -(defn- render-contact [contact] - [contact-view/contact-view {:contact contact - :on-press #(re-frame/dispatch [:navigate-to :dapp-description contact]) +(defn- render-dapp [dapp] + [contact-view/contact-view {:contact dapp + :on-press #(re-frame/dispatch [:navigate-to :dapp-description dapp]) :show-forward? true :accessibility-label :dapp-item}]) (views/defview open-dapp [] - (views/letsubs [dapps [:all-dapp-with-url-contacts] + (views/letsubs [dapps [:all-dapps] url-text (atom nil)] [react/keyboard-avoiding-view styles/main-container [status-bar/status-bar] @@ -40,7 +40,7 @@ :return-key-type :go}]] [list/section-list {:sections dapps :key-fn :dapp-url - :render-fn render-contact + :render-fn render-dapp :default-separator? true :enableEmptySections true :keyboardShouldPersistTaps :always}]])) diff --git a/src/status_im/ui/screens/browser/events.cljs b/src/status_im/ui/screens/browser/events.cljs index b350aa21d6..8ba0786f01 100644 --- a/src/status_im/ui/screens/browser/events.cljs +++ b/src/status_im/ui/screens/browser/events.cljs @@ -34,12 +34,11 @@ (handlers/register-handler-fx :open-dapp-in-browser [re-frame/trim-v] - (fn [cofx [{:keys [name dapp-url] :as contact}]] - (let [browser {:browser-id (:whisper-identity contact) + (fn [cofx [{:keys [name dapp-url]}]] + (let [browser {:browser-id name :name name :dapp? true - :url dapp-url - :contact (:whisper-identity contact)}] + :url dapp-url}] (merge (add-browser-fx cofx browser) {:dispatch [:navigate-to :browser {:browser/browser-id (:browser-id browser)}]})))) diff --git a/src/status_im/ui/screens/browser/views.cljs b/src/status_im/ui/screens/browser/views.cljs index 679028b07b..7e2365e9e8 100644 --- a/src/status_im/ui/screens/browser/views.cljs +++ b/src/status_im/ui/screens/browser/views.cljs @@ -18,17 +18,17 @@ [status-im.ui.components.toolbar.actions :as actions] [status-im.ui.components.tooltip.views :as tooltip])) -(views/defview toolbar-content-dapp [contact-identity] - (views/letsubs [contact [:get-contact-by-identity contact-identity]] +(views/defview toolbar-content-dapp [name] + (views/letsubs [dapp [:get-dapp-by-name name]] [react/view [react/view styles/toolbar-content-dapp - [chat-icon.screen/dapp-icon-browser contact 36] + [chat-icon.screen/dapp-icon-browser dapp 36] [react/view styles/dapp-name [react/text {:style styles/dapp-name-text :number-of-lines 1 :font :toolbar-title :accessibility-label :dapp-name-text} - (:name contact)] + name] [react/text {:style styles/dapp-text} (i18n/label :t/dapp)]]]])) @@ -76,7 +76,7 @@ (views/defview browser [] (views/letsubs [webview (atom nil) {:keys [address]} [:get-current-account] - {:keys [dapp? contact url browser-id] :as browser} [:get-current-browser] + {:keys [dapp? url browser-id name] :as browser} [:get-current-browser] {:keys [can-go-back? can-go-forward? error?]} [:get :browser/options] rpc-url [:get :rpc-url] network-id [:get-network-id]] @@ -89,7 +89,7 @@ (when error? (re-frame/dispatch [:remove-browser browser-id]))))] (if dapp? - [toolbar-content-dapp contact] + [toolbar-content-dapp name] [toolbar-content browser])] (if url [components.webview-bridge/webview-bridge diff --git a/src/status_im/ui/screens/contacts/subs.cljs b/src/status_im/ui/screens/contacts/subs.cljs index f169d5dd77..12a247bac3 100644 --- a/src/status_im/ui/screens/contacts/subs.cljs +++ b/src/status_im/ui/screens/contacts/subs.cljs @@ -46,7 +46,7 @@ (defn- filter-dapps [v dev-mode?] (remove #(when-not dev-mode? (true? (:developer? %))) v)) -(reg-sub :all-dapp-with-url-contacts +(reg-sub :all-dapps :<- [:get-dapps] :<- [:get-current-account] (fn [[dapps {:keys [dev-mode?]}]] @@ -66,6 +66,11 @@ (fn [contacts [_ identity]] (get contacts identity))) +(reg-sub :get-dapp-by-name + :<- [:get-dapps] + (fn [dapps [_ name]] + (first (filter #(= (:name %) name) (apply concat (map :data dapps)))))) + (reg-sub :get-contact-name-by-identity :<- [:get-contacts] :<- [:get-current-account] diff --git a/src/status_im/ui/screens/home/views/inner_item.cljs b/src/status_im/ui/screens/home/views/inner_item.cljs index 7a53dfb103..a6982171fe 100644 --- a/src/status_im/ui/screens/home/views/inner_item.cljs +++ b/src/status_im/ui/screens/home/views/inner_item.cljs @@ -99,13 +99,13 @@ [message-content-text last-message] [unviewed-indicator chat-id]]]]]))) -(defview home-list-browser-item-inner-view [{:keys [browser-id name url dapp? contact] :as browser}] - (letsubs [contact' [:get-contact-by-identity contact]] +(defview home-list-browser-item-inner-view [{:keys [name url] :as browser}] + (letsubs [dapp [:get-dapp-by-name name]] [react/touchable-highlight {:on-press #(re-frame/dispatch [:open-browser browser])} [react/view styles/chat-container [react/view styles/chat-icon-container - (if contact' - [chat-icon.screen/dapp-icon-browser contact' 36] + (if dapp + [chat-icon.screen/dapp-icon-browser dapp 36] [react/view styles/browser-icon-container [vector-icons/icon :icons/discover {:color component.styles/color-light-gray6}]])] [react/view styles/chat-info-container