Add error for seed phrase not valid

This commit is contained in:
Ulises M
2023-05-25 13:08:10 -06:00
parent 79b4456f70
commit 36384801cc
2 changed files with 32 additions and 20 deletions
@@ -44,7 +44,8 @@
(i18n/label-pluralize seed-phrase-count :t/words-n)]]])
(defn- recovery-form
[{:keys [seed-phrase word-count error-state? all-words-valid? on-change-seed-phrase]}]
[{:keys [seed-phrase word-count error-state? all-words-valid? on-change-seed-phrase
on-invalid-seed-phrase]}]
(let [button-disabled? (or error-state?
(not (constants/seed-phrase-valid-length word-count))
(not all-words-valid?))]
@@ -68,7 +69,7 @@
:disabled button-disabled?
:on-press #(rf/dispatch [:onboarding-2/seed-phrase-entered
(security/mask-data seed-phrase)
(fn [] (js/alert "Invalid seed phrase"))])}
on-invalid-seed-phrase])}
(i18n/label :t/continue)]]))
(defn keyboard-suggestions
@@ -79,15 +80,20 @@
(defn screen
[]
(reagent/with-let [keyboard-shown? (reagent/atom false)
keyboard-show-listener (.addListener rn/keyboard
"keyboardDidShow"
#(reset! keyboard-shown? true))
keyboard-hide-listener (.addListener rn/keyboard
"keyboardDidHide"
#(reset! keyboard-shown? false))
seed-phrase (reagent/atom "")
on-change-seed-phrase #(reset! seed-phrase (string/lower-case %))]
(reagent/with-let [keyboard-shown? (reagent/atom false)
keyboard-show-listener (.addListener rn/keyboard
"keyboardDidShow"
#(reset! keyboard-shown? true))
keyboard-hide-listener (.addListener rn/keyboard
"keyboardDidHide"
#(reset! keyboard-shown? false))
invalid-seed-phrase? (reagent/atom false)
set-invalid-seed-phrase #(reset! invalid-seed-phrase? true)
seed-phrase (reagent/atom "")
on-change-seed-phrase (fn [new-phrase]
(when @invalid-seed-phrase?
(reset! invalid-seed-phrase? false))
(reset! seed-phrase (string/lower-case new-phrase)))]
(let [words-coll (mnemonic/passphrase->words @seed-phrase)
last-word (peek words-coll)
pick-suggested-word (fn [pressed-word]
@@ -103,21 +109,25 @@
error-in-words? (or (not last-partial-word-valid?)
(not butlast-words-valid?))
suggestions-state (cond
(or error-in-words? words-exceeded?) :error
(or error-in-words?
words-exceeded?
@invalid-seed-phrase?) :error
(string/blank? @seed-phrase) :info
(string/ends-with? @seed-phrase " ") :empty
:else :words)
suggestions-text (cond
words-exceeded? (i18n/label :t/seed-phrase-words-exceeded)
error-in-words? (i18n/label :t/seed-phrase-error)
:else (i18n/label :t/seed-phrase-info))]
words-exceeded? (i18n/label :t/seed-phrase-words-exceeded)
error-in-words? (i18n/label :t/seed-phrase-error)
@invalid-seed-phrase? (i18n/label :t/seed-phrase-invalid)
:else (i18n/label :t/seed-phrase-info))]
[:<>
[recovery-form
{:seed-phrase @seed-phrase
:error-state? (= suggestions-state :error)
:all-words-valid? all-words-valid?
:on-change-seed-phrase on-change-seed-phrase
:word-count word-count}]
{:seed-phrase @seed-phrase
:error-state? (= suggestions-state :error)
:all-words-valid? all-words-valid?
:on-change-seed-phrase on-change-seed-phrase
:word-count word-count
:on-invalid-seed-phrase set-invalid-seed-phrase}]
(when @keyboard-shown?
[rn/view {:style style/keyboard-container}
[quo/predictive-keyboard
+2
View File
@@ -1492,6 +1492,7 @@
"seed-phrase-placeholder": "Type or paste your recovery phrase",
"seed-phrase-words-exceeded": "Recovery phrase cannot exceed 24 words",
"seed-phrase-error": "Recovery phrase contains invalid words",
"seed-phrase-invalid": "Invalid recovery phrase",
"seed-phrase-info": "Enter 12, 18 or 24 words separated by spaces",
"word-count": "Word count",
"word-n": "Word #{{number}}",
@@ -2180,3 +2181,4 @@
"token-gated-communities-info": "Here will be something relevant about this topic. This will help the user get more context and therefore have a better understanding of it.",
"dont-yell-at-me": "Dont yell at me"
}