Fixes #919 Confirmation dialog for the delete actions
This commit is contained in:
parent
e16b93fbd0
commit
48709aced3
|
@ -20,6 +20,7 @@
|
||||||
[status-im.components.context-menu :refer [context-menu]]
|
[status-im.components.context-menu :refer [context-menu]]
|
||||||
[status-im.components.contact.contact :refer [contact-view]]
|
[status-im.components.contact.contact :refer [contact-view]]
|
||||||
[status-im.utils.platform :refer [platform-specific ios? android?]]
|
[status-im.utils.platform :refer [platform-specific ios? android?]]
|
||||||
|
[status-im.utils.utils :as u]
|
||||||
[status-im.i18n :refer [label]]
|
[status-im.i18n :refer [label]]
|
||||||
[status-im.contacts.styles :as st]
|
[status-im.contacts.styles :as st]
|
||||||
[status-im.components.styles :refer [color-blue
|
[status-im.components.styles :refer [color-blue
|
||||||
|
@ -48,7 +49,10 @@
|
||||||
:title (label :t/edit-contacts)}])
|
:title (label :t/edit-contacts)}])
|
||||||
|
|
||||||
(defn contact-options [{:keys [unremovable?] :as contact} group]
|
(defn contact-options [{:keys [unremovable?] :as contact} group]
|
||||||
(let [delete-contact-opt {:value #(dispatch [:hide-contact contact])
|
(let [delete-contact-opt {:value #(u/show-confirmation
|
||||||
|
(str (label :t/delete-contact) "?") (label :t/delete-contact-confirmation)
|
||||||
|
(label :t/delete)
|
||||||
|
(fn[] (dispatch [:hide-contact contact])))
|
||||||
:text (label :t/delete-contact)
|
:text (label :t/delete-contact)
|
||||||
:destructive? true}
|
:destructive? true}
|
||||||
options (if unremovable? [] [delete-contact-opt])]
|
options (if unremovable? [] [delete-contact-opt])]
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
list-item]]
|
list-item]]
|
||||||
[status-im.components.renderers.renderers :as renderers]
|
[status-im.components.renderers.renderers :as renderers]
|
||||||
[status-im.components.sticky-button :refer [sticky-button]]
|
[status-im.components.sticky-button :refer [sticky-button]]
|
||||||
|
[status-im.utils.utils :as u]
|
||||||
[status-im.utils.listview :refer [to-datasource]]
|
[status-im.utils.listview :refer [to-datasource]]
|
||||||
[status-im.new-group.styles :as st]
|
[status-im.new-group.styles :as st]
|
||||||
[status-im.new-group.views.group :refer [group-toolbar
|
[status-im.new-group.views.group :refer [group-toolbar
|
||||||
|
@ -62,9 +63,11 @@
|
||||||
[add-btn #(dispatch [:navigate-to :add-contacts-toggle-list])]
|
[add-btn #(dispatch [:navigate-to :add-contacts-toggle-list])]
|
||||||
[group-contacts-view group]
|
[group-contacts-view group]
|
||||||
[view st/separator]
|
[view st/separator]
|
||||||
[delete-btn #(do
|
[delete-btn #(u/show-confirmation
|
||||||
|
(str (label :t/delete-group) "?") (label :t/delete-group-confirmation) (label :t/delete)
|
||||||
|
(fn[]
|
||||||
(dispatch [:delete-group])
|
(dispatch [:delete-group])
|
||||||
(dispatch [:navigate-to-clean :contact-list]))]]
|
(dispatch [:navigate-to-clean :contact-list])))]]
|
||||||
(when save-btn-enabled?
|
(when save-btn-enabled?
|
||||||
[sticky-button (label :t/save) #(dispatch [:set-group-name])])]))
|
[sticky-button (label :t/save) #(dispatch [:set-group-name])])]))
|
||||||
|
|
||||||
|
|
|
@ -162,6 +162,7 @@
|
||||||
:contacts "Contacts"
|
:contacts "Contacts"
|
||||||
:new-contact "New contact"
|
:new-contact "New contact"
|
||||||
:delete-contact "Delete contact"
|
:delete-contact "Delete contact"
|
||||||
|
:delete-contact-confirmation "This contact will be removed from your contacts"
|
||||||
:remove-from-group "Remove from group"
|
:remove-from-group "Remove from group"
|
||||||
:edit-contacts "Edit contacts"
|
:edit-contacts "Edit contacts"
|
||||||
:search-contacts "Search contacts"
|
:search-contacts "Search contacts"
|
||||||
|
@ -178,6 +179,7 @@
|
||||||
;group-settings
|
;group-settings
|
||||||
:remove "Remove"
|
:remove "Remove"
|
||||||
:save "Save"
|
:save "Save"
|
||||||
|
:delete "Delete"
|
||||||
:change-color "Change color"
|
:change-color "Change color"
|
||||||
:clear-history "Clear history"
|
:clear-history "Clear history"
|
||||||
:mute-notifications "Mute notifications"
|
:mute-notifications "Mute notifications"
|
||||||
|
@ -216,6 +218,7 @@
|
||||||
:group-name "Group name"
|
:group-name "Group name"
|
||||||
:edit-group "Edit group"
|
:edit-group "Edit group"
|
||||||
:delete-group "Delete group"
|
:delete-group "Delete group"
|
||||||
|
:delete-group-confirmation "This group will be removed from your groups. This will not affect contacts"
|
||||||
:delete-group-prompt "This will not affect contacts"
|
:delete-group-prompt "This will not affect contacts"
|
||||||
:group-members "Group members"
|
:group-members "Group members"
|
||||||
:contact-s {:one "contact"
|
:contact-s {:one "contact"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
(ns status-im.utils.utils
|
(ns status-im.utils.utils
|
||||||
(:require [status-im.constants :as const]
|
(:require [status-im.constants :as const]
|
||||||
|
[status-im.i18n :refer [label]]
|
||||||
[reagent.core :as r]
|
[reagent.core :as r]
|
||||||
[clojure.string :as str]))
|
[clojure.string :as str]))
|
||||||
|
|
||||||
|
@ -18,6 +19,21 @@
|
||||||
title
|
title
|
||||||
content))
|
content))
|
||||||
|
|
||||||
|
(defn show-confirmation
|
||||||
|
([title content on-accept]
|
||||||
|
(show-confirmation title content nil on-accept))
|
||||||
|
([title content s on-accept]
|
||||||
|
(show-confirmation title content s on-accept nil))
|
||||||
|
([title content s on-accept on-cancel]
|
||||||
|
(.alert (.-Alert react-native)
|
||||||
|
title
|
||||||
|
content
|
||||||
|
; Styles are only relevant on iOS. On Android first button is 'neutral' and second is 'positive'
|
||||||
|
(clj->js
|
||||||
|
(vector (merge {:text (label :t/cancel) :style "cancel"}
|
||||||
|
(when on-cancel {:onPress on-cancel}))
|
||||||
|
{:text (or s "OK") :onPress on-accept :style "destructive"})))))
|
||||||
|
|
||||||
(defn http-post
|
(defn http-post
|
||||||
([action data on-success]
|
([action data on-success]
|
||||||
(http-post action data on-success nil))
|
(http-post action data on-success nil))
|
||||||
|
|
Loading…
Reference in New Issue