From d4d44063415ba3b8bbfb9cc7c594b6923ce2dc1a Mon Sep 17 00:00:00 2001 From: psdp <4315882+psdp@users.noreply.github.com> Date: Mon, 21 May 2018 13:50:55 +0000 Subject: [PATCH] [#4201] Remove browser item from home on back button if current page has error Signed-off-by: Julien Eluard --- src/status_im/ui/screens/browser/db.cljs | 4 +++- src/status_im/ui/screens/browser/views.cljs | 12 +++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/status_im/ui/screens/browser/db.cljs b/src/status_im/ui/screens/browser/db.cljs index f91c373e11..250110dbd6 100644 --- a/src/status_im/ui/screens/browser/db.cljs +++ b/src/status_im/ui/screens/browser/db.cljs @@ -12,13 +12,15 @@ (spec/def :browser/fullscreen? (spec/nilable boolean?)) (spec/def :browser/can-go-back? (spec/nilable boolean?)) (spec/def :browser/can-go-forward? (spec/nilable boolean?)) +(spec/def :browser/error? (spec/nilable boolean?)) (spec/def :browser/options (allowed-keys :opt-un [:browser/browser-id :browser/can-go-back? :browser/can-go-forward? - :browser/fullscreen?])) + :browser/fullscreen? + :browser/error?])) (spec/def :browser/browser (allowed-keys diff --git a/src/status_im/ui/screens/browser/views.cljs b/src/status_im/ui/screens/browser/views.cljs index 81bacce83a..475350a1ea 100644 --- a/src/status_im/ui/screens/browser/views.cljs +++ b/src/status_im/ui/screens/browser/views.cljs @@ -79,15 +79,19 @@ (views/defview browser [] (views/letsubs [webview (atom nil) {:keys [address]} [:get-current-account] - {:keys [dapp? contact url] :as browser} [:get-current-browser] - {:keys [can-go-back? can-go-forward?]} [:get :browser/options] + {:keys [dapp? contact url browser-id] :as browser} [:get-current-browser] + {:keys [can-go-back? can-go-forward? error?]} [:get :browser/options] extra-js [:web-view-extra-js] rpc-url [:get :rpc-url] network-id [:get-network-id]] [react/keyboard-avoiding-view styles/browser [status-bar/status-bar] [toolbar.view/toolbar {} - [toolbar.view/nav-button-with-count actions/default-close] + [toolbar.view/nav-button-with-count + (actions/close (fn [] + (re-frame/dispatch [:navigate-back]) + (when error? + (re-frame/dispatch [:remove-browser browser-id]))))] (if dapp? [toolbar-content-dapp contact] [toolbar-content browser])] @@ -102,6 +106,8 @@ :render-error web-view-error :render-loading web-view-loading :on-navigation-state-change #(on-navigation-change % browser) + :on-load #(re-frame/dispatch [:update-browser-options {:error? false}]) + :on-error #(re-frame/dispatch [:update-browser-options {:error? true}]) :injected-on-start-loading-java-script (str js-res/web3 js-res/jquery (get-inject-js url)