|
96 | 96 | (take 7)))
|
97 | 97 |
|
98 | 98 | (defn recovery-phrase-screen
|
99 |
| - [{:keys [banner-offset initial-insets keypair title recovering-keypair? render-controls]}] |
| 99 | + [{:keys [banner-offset initial-insets keypair title on-success render-controls]}] |
100 | 100 | (reagent/with-let [keyboard-shown? (reagent/atom false)
|
101 | 101 | keyboard-show-listener (.addListener rn/keyboard
|
102 | 102 | "keyboardDidShow"
|
|
120 | 120 | (reset! seed-phrase new-phrase))
|
121 | 121 | on-submit (fn []
|
122 | 122 | (swap! seed-phrase clean-seed-phrase)
|
123 |
| - (if recovering-keypair? |
124 |
| - (rf/dispatch [:wallet/seed-phrase-entered |
125 |
| - (security/mask-data |
126 |
| - @seed-phrase) |
127 |
| - set-invalid-seed-phrase]) |
128 |
| - (rf/dispatch [:onboarding/seed-phrase-entered |
129 |
| - (security/mask-data @seed-phrase) |
130 |
| - set-invalid-seed-phrase])))] |
| 123 | + (rf/dispatch |
| 124 | + [:profile.recover/validate-recovery-phrase |
| 125 | + (security/mask-data @seed-phrase) |
| 126 | + {:on-success (fn [mnemonic key-uid] |
| 127 | + (if on-success |
| 128 | + (on-success |
| 129 | + {:key-uid key-uid |
| 130 | + :phrase mnemonic |
| 131 | + :on-error |
| 132 | + set-invalid-seed-phrase}) |
| 133 | + (rf/dispatch |
| 134 | + [:onboarding/seed-phrase-validated |
| 135 | + mnemonic key-uid]))) |
| 136 | + :on-error set-invalid-seed-phrase}]))] |
131 | 137 | (let [words-coll (mnemonic/passphrase->words @seed-phrase)
|
132 | 138 | last-word (peek words-coll)
|
133 | 139 | pick-suggested-word (fn [pressed-word]
|
|
191 | 197 | [rn/view {:style style/keyboard-container}
|
192 | 198 | [quo/predictive-keyboard
|
193 | 199 | {:type suggestions-state
|
194 |
| - :blur? (not recovering-keypair?) |
| 200 | + :blur? (not on-success) |
195 | 201 | :text suggestions-text
|
196 | 202 | :words (keyboard-suggestions last-word)
|
197 | 203 | :on-press pick-suggested-word}]])])
|
|
200 | 206 | (.remove keyboard-hide-listener))))
|
201 | 207 |
|
202 | 208 | (defn screen
|
203 |
| - [{:keys [title keypair navigation-icon recovering-keypair? render-controls]}] |
| 209 | + [{:keys [title keypair navigation-icon on-success render-controls]}] |
204 | 210 | (let [[insets _] (rn/use-state (safe-area/get-insets))
|
205 | 211 | banner-offset (rf/sub [:alert-banners/top-margin])]
|
206 | 212 | [rn/view {:style style/full-layout}
|
|
209 | 215 | {:margin-top (:top insets)
|
210 | 216 | :background :blur
|
211 | 217 | :icon-name (or navigation-icon
|
212 |
| - (if recovering-keypair? :i/close :i/arrow-left)) |
| 218 | + (if on-success :i/close :i/arrow-left)) |
213 | 219 | :on-press #(rf/dispatch [:navigate-back])}]
|
214 | 220 | [recovery-phrase-screen
|
215 |
| - {:title title |
216 |
| - :keypair keypair |
217 |
| - :render-controls render-controls |
218 |
| - :banner-offset banner-offset |
219 |
| - :initial-insets insets |
220 |
| - :recovering-keypair? recovering-keypair?}]]])) |
| 221 | + {:title title |
| 222 | + :keypair keypair |
| 223 | + :render-controls render-controls |
| 224 | + :banner-offset banner-offset |
| 225 | + :initial-insets insets |
| 226 | + :on-success on-success}]]])) |
221 | 227 |
|
222 | 228 | (defn view
|
223 | 229 | []
|
224 |
| - (let [{:keys [recovering-keypair?]} (rf/sub [:get-screen-params])] |
| 230 | + (let [{:keys [on-success]} (rf/sub [:get-screen-params])] |
225 | 231 | (rn/use-unmount
|
226 |
| - #(rf/dispatch [:onboarding/clear-navigated-to-enter-seed-phrase-from-screen])) |
| 232 | + (when-not on-success |
| 233 | + #(rf/dispatch [:onboarding/clear-navigated-to-enter-seed-phrase-from-screen]))) |
227 | 234 | [screen
|
228 |
| - {:title (i18n/label :t/use-recovery-phrase) |
229 |
| - :recovering-keypair? recovering-keypair?}])) |
| 235 | + {:title (i18n/label :t/use-recovery-phrase) |
| 236 | + :on-success on-success}])) |
0 commit comments