mirror of
https://github.com/status-im/status-mobile.git
synced 2025-02-26 15:21:08 +00:00
[#15779] Disable input and buttons while loggin in
This commit is contained in:
parent
a60235abf3
commit
6598873343
@ -1,17 +1,16 @@
|
|||||||
(ns status-im2.contexts.onboarding.events
|
(ns status-im2.contexts.onboarding.events
|
||||||
(:require
|
(:require
|
||||||
[utils.re-frame :as rf]
|
[clojure.string :as string]
|
||||||
[taoensso.timbre :as log]
|
[native-module.core :as native-module]
|
||||||
[re-frame.core :as re-frame]
|
[re-frame.core :as re-frame]
|
||||||
|
[status-im.ethereum.core :as ethereum]
|
||||||
[status-im.utils.types :as types]
|
[status-im.utils.types :as types]
|
||||||
[status-im2.config :as config]
|
[status-im2.config :as config]
|
||||||
[clojure.string :as string]
|
|
||||||
[utils.i18n :as i18n]
|
|
||||||
[utils.security.core :as security]
|
|
||||||
[native-module.core :as native-module]
|
|
||||||
[status-im.ethereum.core :as ethereum]
|
|
||||||
[status-im2.constants :as constants]
|
[status-im2.constants :as constants]
|
||||||
[status-im2.contexts.onboarding.profiles.view :as profiles.view]))
|
[taoensso.timbre :as log]
|
||||||
|
[utils.i18n :as i18n]
|
||||||
|
[utils.re-frame :as rf]
|
||||||
|
[utils.security.core :as security]))
|
||||||
|
|
||||||
(re-frame/reg-fx
|
(re-frame/reg-fx
|
||||||
:multiaccount/create-account-and-login
|
:multiaccount/create-account-and-login
|
||||||
@ -140,10 +139,8 @@
|
|||||||
{:title (i18n/label :t/multiaccount-exists-title)
|
{:title (i18n/label :t/multiaccount-exists-title)
|
||||||
:content (i18n/label :t/multiaccount-exists-content)
|
:content (i18n/label :t/multiaccount-exists-content)
|
||||||
:confirm-button-text (i18n/label :t/unlock)
|
:confirm-button-text (i18n/label :t/unlock)
|
||||||
:on-accept #(do
|
:on-accept (fn []
|
||||||
(re-frame/dispatch [:pop-to-root :profiles])
|
(re-frame/dispatch [:pop-to-root :profiles])
|
||||||
;; FIXME(rasom): obviously not cool
|
|
||||||
(reset! profiles.view/show-profiles? false)
|
|
||||||
(re-frame/dispatch
|
(re-frame/dispatch
|
||||||
[:multiaccounts.login.ui/multiaccount-selected key-uid]))
|
[:multiaccounts.login.ui/multiaccount-selected key-uid]))
|
||||||
:on-cancel #(re-frame/dispatch [:pop-to-root :multiaccounts])}}
|
:on-cancel #(re-frame/dispatch [:pop-to-root :multiaccounts])}}
|
||||||
|
@ -12,8 +12,6 @@
|
|||||||
[utils.security.core :as security]
|
[utils.security.core :as security]
|
||||||
[utils.transforms :as types]))
|
[utils.transforms :as types]))
|
||||||
|
|
||||||
(def show-profiles? (reagent/atom false))
|
|
||||||
|
|
||||||
(defn login-multiaccount
|
(defn login-multiaccount
|
||||||
[]
|
[]
|
||||||
(rf/dispatch [:multiaccounts.login.ui/password-input-submitted]))
|
(rf/dispatch [:multiaccounts.login.ui/password-input-submitted]))
|
||||||
@ -43,7 +41,7 @@
|
|||||||
:context context
|
:context context
|
||||||
:button-text (i18n/label :t/remove)
|
:button-text (i18n/label :t/remove)
|
||||||
:close-button-text (i18n/label :t/cancel)
|
:close-button-text (i18n/label :t/cancel)
|
||||||
:on-press #(do
|
:on-press (fn []
|
||||||
(rf/dispatch [:hide-bottom-sheet])
|
(rf/dispatch [:hide-bottom-sheet])
|
||||||
(native-module/delete-multiaccount
|
(native-module/delete-multiaccount
|
||||||
key-uid
|
key-uid
|
||||||
@ -72,7 +70,9 @@
|
|||||||
{:content (fn [] [profile-options key-uid context])}]))
|
{:content (fn [] [profile-options key-uid context])}]))
|
||||||
|
|
||||||
(defn profile-card
|
(defn profile-card
|
||||||
[{:keys [name key-uid customization-color keycard-pairing last-index] :as multiaccount} index]
|
[{:keys [name key-uid customization-color keycard-pairing last-index set-hide-profiles]
|
||||||
|
:as multiaccount}
|
||||||
|
index]
|
||||||
(let [last-item? (= last-index index)
|
(let [last-item? (= last-index index)
|
||||||
profile-picture (:uri (first (:images multiaccount)))]
|
profile-picture (:uri (first (:images multiaccount)))]
|
||||||
[quo/profile-card
|
[quo/profile-card
|
||||||
@ -89,15 +89,18 @@
|
|||||||
{:name name
|
{:name name
|
||||||
:color customization-color
|
:color customization-color
|
||||||
:profile-picture profile-picture})
|
:profile-picture profile-picture})
|
||||||
:on-card-press #(do
|
:on-card-press (fn []
|
||||||
(rf/dispatch
|
(rf/dispatch
|
||||||
[:multiaccounts.login.ui/multiaccount-selected key-uid])
|
[:multiaccounts.login.ui/multiaccount-selected key-uid])
|
||||||
(when-not keycard-pairing (reset! show-profiles? false)))}]))
|
(when-not keycard-pairing (set-hide-profiles)))}]))
|
||||||
|
|
||||||
(defn profiles-section
|
(defn profiles-section
|
||||||
[]
|
[{:keys [set-hide-profiles]}]
|
||||||
(let [multiaccounts (vals (rf/sub [:multiaccounts/multiaccounts]))
|
(let [multiaccounts (vals (rf/sub [:multiaccounts/multiaccounts]))
|
||||||
multiaccounts (map #(assoc % :last-index (- (count multiaccounts) 1)) multiaccounts)]
|
profiles-data (map #(assoc %
|
||||||
|
:last-index (- (count multiaccounts) 1)
|
||||||
|
:set-hide-profiles set-hide-profiles)
|
||||||
|
multiaccounts)]
|
||||||
[rn/view
|
[rn/view
|
||||||
{:style style/profiles-container}
|
{:style style/profiles-container}
|
||||||
[rn/view
|
[rn/view
|
||||||
@ -116,7 +119,7 @@
|
|||||||
:override-theme :dark}
|
:override-theme :dark}
|
||||||
:main-icons/add]]
|
:main-icons/add]]
|
||||||
[rn/flat-list
|
[rn/flat-list
|
||||||
{:data (sort-by :timestamp > multiaccounts)
|
{:data (sort-by :timestamp > profiles-data)
|
||||||
:key-fn :key-uid
|
:key-fn :key-uid
|
||||||
:content-container-style {:padding-bottom 20}
|
:content-container-style {:padding-bottom 20}
|
||||||
:render-fn profile-card}]]))
|
:render-fn profile-card}]]))
|
||||||
@ -169,8 +172,8 @@
|
|||||||
(i18n/label :t/forgot-your-password-info-create-new-password-description)]]]]])
|
(i18n/label :t/forgot-your-password-info-create-new-password-description)]]]]])
|
||||||
|
|
||||||
(defn login-section
|
(defn login-section
|
||||||
[]
|
[{:keys [set-show-profiles]}]
|
||||||
(let [{:keys [name customization-color error processing]
|
(let [{:keys [name customization-color error processing password]
|
||||||
:as multiaccount} (rf/sub [:multiaccounts/login])
|
:as multiaccount} (rf/sub [:multiaccounts/login])
|
||||||
sign-in-enabled? (rf/sub [:sign-in-enabled?])
|
sign-in-enabled? (rf/sub [:sign-in-enabled?])
|
||||||
profile-picture (:uri (first (:images multiaccount)))]
|
profile-picture (:uri (first (:images multiaccount)))]
|
||||||
@ -180,7 +183,8 @@
|
|||||||
{:size 32
|
{:size 32
|
||||||
:type :blur-bg
|
:type :blur-bg
|
||||||
:icon true
|
:icon true
|
||||||
:on-press #(reset! show-profiles? true)
|
:on-press set-show-profiles
|
||||||
|
:disabled processing
|
||||||
:override-theme :dark
|
:override-theme :dark
|
||||||
:width 32
|
:width 32
|
||||||
:accessibility-label :show-profiles
|
:accessibility-label :show-profiles
|
||||||
@ -197,18 +201,18 @@
|
|||||||
[quo/input
|
[quo/input
|
||||||
{:type :password
|
{:type :password
|
||||||
:blur? true
|
:blur? true
|
||||||
:override-theme :dark
|
:disabled? processing
|
||||||
:placeholder (i18n/label :t/type-your-password)
|
:placeholder (i18n/label :t/type-your-password)
|
||||||
:auto-focus true
|
:auto-focus true
|
||||||
:error? (when (not-empty error) error)
|
:error? (seq error)
|
||||||
:label (i18n/label :t/profile-password)
|
:label (i18n/label :t/profile-password)
|
||||||
:secure-text-entry true
|
|
||||||
:on-change-text (fn [password]
|
:on-change-text (fn [password]
|
||||||
(rf/dispatch [:set-in [:multiaccounts/login :password]
|
(rf/dispatch [:set-in [:multiaccounts/login :password]
|
||||||
(security/mask-data password)])
|
(security/mask-data password)])
|
||||||
(rf/dispatch [:set-in [:multiaccounts/login :error] ""]))
|
(rf/dispatch [:set-in [:multiaccounts/login :error] ""]))
|
||||||
|
:default-value (security/safe-unmask-data password)
|
||||||
:on-submit-editing (when sign-in-enabled? login-multiaccount)}]
|
:on-submit-editing (when sign-in-enabled? login-multiaccount)}]
|
||||||
(when (not-empty error)
|
(when (seq error)
|
||||||
[quo/info-message
|
[quo/info-message
|
||||||
{:type :error
|
{:type :error
|
||||||
:size :default
|
:size :default
|
||||||
@ -219,6 +223,7 @@
|
|||||||
{:size 40
|
{:size 40
|
||||||
:type :ghost
|
:type :ghost
|
||||||
:before :i/info
|
:before :i/info
|
||||||
|
:disabled processing
|
||||||
:accessibility-label :forget-password-button
|
:accessibility-label :forget-password-button
|
||||||
:override-theme :dark
|
:override-theme :dark
|
||||||
:style style/forget-password-button
|
:style style/forget-password-button
|
||||||
@ -239,10 +244,12 @@
|
|||||||
|
|
||||||
(defn views
|
(defn views
|
||||||
[]
|
[]
|
||||||
(reset! show-profiles? false)
|
(let [show-profiles? (reagent/atom false)
|
||||||
|
set-show-profiles #(reset! show-profiles? true)
|
||||||
|
set-hide-profiles #(reset! show-profiles? false)]
|
||||||
(fn []
|
(fn []
|
||||||
[:<>
|
[:<>
|
||||||
[background/view true]
|
[background/view true]
|
||||||
(if @show-profiles?
|
(if @show-profiles?
|
||||||
[profiles-section]
|
[profiles-section {:set-hide-profiles set-hide-profiles}]
|
||||||
[login-section])]))
|
[login-section {:set-show-profiles set-show-profiles}])])))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user