diff --git a/src/status_im/browser/core.cljs b/src/status_im/browser/core.cljs index 93fdadf0a2..9163f14ed3 100644 --- a/src/status_im/browser/core.cljs +++ b/src/status_im/browser/core.cljs @@ -52,6 +52,15 @@ :params [browser-id] :on-success #()}]}) +(fx/defn clear-all-browsers + {:events [:browser.ui/clear-all-browsers-pressed]} + [{:keys [db]}] + {:db (dissoc db :browser/browsers) + ::json-rpc/call (for [browser-id (keys (get db :browser/browsers))] + {:method "browsers_deleteBrowser" + :params [browser-id] + :on-success #()})}) + (defn update-dapp-name [{:keys [name] :as browser}] (assoc browser :dapp? false :name (or name (i18n/label :t/browser)))) diff --git a/src/status_im/ui/components/list/views.cljs b/src/status_im/ui/components/list/views.cljs index 2a77a3d470..1c909220ae 100644 --- a/src/status_im/ui/components/list/views.cljs +++ b/src/status_im/ui/components/list/views.cljs @@ -28,7 +28,6 @@ [status-im.ui.components.list-item.views :as list-item] [status-im.ui.components.list.styles :as styles] [status-im.ui.components.react :as react] - [status-im.ui.screens.home.animations.responder :as responder] [status-im.utils.platform :as platform] [status-im.ui.components.radio :as radio]) (:require-macros [status-im.utils.views :as views])) @@ -324,19 +323,4 @@ [react/view (merge styles/list-with-label-wrapper style) [react/text {:style styles/label} label] - list]) - -;;TODO DEPRECATED, use long-press -(views/defview deletable-list-item [{:keys [type id on-delete]} body] - (views/letsubs [swiped? [:delete-swipe-position type id]] - (let [offset-x (animation/create-value (if swiped? styles/delete-button-width 0)) - swipe-pan-responder (responder/swipe-pan-responder offset-x styles/delete-button-width id swiped?) - swipe-pan-handler (responder/pan-handlers swipe-pan-responder)] - [react/view swipe-pan-handler - [react/animated-view {:style {:flex 1 - :transform [{:translateX offset-x}]}} - body - [react/touchable-highlight {:style styles/delete-icon-highlight - :on-press on-delete} - [react/view {:style styles/delete-icon-container} - [vector-icons/icon :main-icons/delete {:color colors/red}]]]]]))) + list]) \ No newline at end of file diff --git a/src/status_im/ui/screens/browser/open_dapp/views.cljs b/src/status_im/ui/screens/browser/open_dapp/views.cljs index 40953fc76b..3b30261451 100644 --- a/src/status_im/ui/screens/browser/open_dapp/views.cljs +++ b/src/status_im/ui/screens/browser/open_dapp/views.cljs @@ -18,18 +18,35 @@ [reagent.core :as reagent]) (:require-macros [status-im.utils.views :as views])) +(defn hide-sheet-and-dispatch [event] + (re-frame/dispatch [:bottom-sheet/hide-sheet]) + (re-frame/dispatch event)) + (defn list-item [{:keys [browser-id name url]}] - [list/deletable-list-item {:type :browsers - :id browser-id - :on-delete #(do - (re-frame/dispatch [:set-swipe-position :browsers browser-id false]) - (re-frame/dispatch [:browser.ui/remove-browser-pressed browser-id]))} - [list-item/list-item - {:on-press #(re-frame/dispatch [:browser.ui/browser-item-selected browser-id]) - :title name - :subtitle (or url :t/dapp) - :icon [react/view styles/browser-icon-container - [vector-icons/icon :main-icons/browser {:color colors/gray}]]}]]) + [list-item/list-item + {:on-press #(re-frame/dispatch [:browser.ui/browser-item-selected browser-id]) + :on-long-press (fn [] + (re-frame/dispatch + [:bottom-sheet/show-sheet + {:content (fn [] + [react/view {:flex 1} + [list-item/list-item + {:theme :action + :title :t/remove + :accessibility-label :remove-dapp-from-list + :icon :main-icons/delete + :on-press #(hide-sheet-and-dispatch [:browser.ui/remove-browser-pressed browser-id])}] + [list-item/list-item + {:theme :action-destructive + :title :t/clear-all + :accessibility-label :clear-all-dapps + :icon :main-icons/delete + :on-press #(hide-sheet-and-dispatch [:browser.ui/clear-all-browsers-pressed])}]]) + :content-height 128}])) + :title name + :subtitle (or url :t/dapp) + :icon [react/view styles/browser-icon-container + [vector-icons/icon :main-icons/browser {:color colors/gray}]]}]) (def dapp-image-data {:image (resources/get-image :dapp-store) :width 768 :height 333}) (defn dapp-image [] [components.common/image-contain nil dapp-image-data]) diff --git a/src/status_im/ui/screens/home/animations/responder.cljs b/src/status_im/ui/screens/home/animations/responder.cljs deleted file mode 100644 index 7d660268e6..0000000000 --- a/src/status_im/ui/screens/home/animations/responder.cljs +++ /dev/null @@ -1,38 +0,0 @@ -(ns status-im.ui.screens.home.animations.responder - (:require [status-im.ui.components.react :as react] - [re-frame.core :as re-frame] - [status-im.ui.components.animation :as animation])) - -(defn get-updated-value [gesture end-offset-x swiped?] - (let [base-value (if swiped? end-offset-x 0)] - (- base-value (.-dx gesture)))) - -(defn on-start [_ gesture] - (> (js/Math.abs (.-dx gesture)) 10)) - -(defn on-move [animated-offset-x end-offset-x swiped?] - (fn [_ gesture] - (let [to-value (get-updated-value gesture end-offset-x swiped?)] - (animation/start (animation/spring animated-offset-x - {:toValue (- to-value) - :useNativeDriver true}))))) - -(defn on-release [animated-offset-x end-offset-x chat-id swiped?] - (fn [_ gesture] - (let [updated-value (get-updated-value gesture end-offset-x swiped?) - should-open? (> updated-value (/ end-offset-x 2)) - to-value (if should-open? end-offset-x 0)] - (re-frame/dispatch [:set-swipe-position :chats chat-id should-open?]) - (animation/start (animation/spring animated-offset-x - {:toValue (- to-value) - :useNativeDriver true}))))) - -(defn swipe-pan-responder [animated-offset-x end-offset-x chat-id swiped?] - (.create react/pan-responder - (clj->js {:onMoveShouldSetPanResponder on-start - :onPanResponderMove (on-move animated-offset-x end-offset-x swiped?) - :onPanResponderRelease (on-release animated-offset-x end-offset-x chat-id swiped?) - :onPanResponderTerminate (on-release animated-offset-x end-offset-x chat-id swiped?)}))) - -(defn pan-handlers [pan-responder] - (js->clj (.-panHandlers pan-responder))) diff --git a/translations/en.json b/translations/en.json index 8616ffa0a3..8631d8f809 100644 --- a/translations/en.json +++ b/translations/en.json @@ -128,6 +128,7 @@ "check-your-recovery-phrase": "Check your seed phrase", "choose-authentication-method": "Choose an authentication method to protect your multiaccount", "clear": "Clear", + "clear-all": "Clear all", "clear-history": "Clear history", "clear-history-action": "Clear", "clear-history-confirmation": "Clear history?",