-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update password & seedphrase backup flow #1692
Conversation
* Update: Add OnboardingProgress component * Update: Complete OnboardingProgress component * Update: Move OnboardingProgress to separate UI component * Update: Add text to OnboardingProgress component * Add lineHeight * Update: Increase marginTop * Update: styles and text * Update: text * Update: make prop required * Update: translations * Update styles * Update: translation * Update: Make steps a prop * Add single track method to dedupe code a bit * Add ChoosePassword to Onboarding flow * Update: add marginHorizontal prop * Update: use ref to measure and get marginHorizontal dynamically * Update: only run setState call once * Fallback to 0 just in case * Create wallet on Create Password step * Destructure state for readability * Update styles, add checkbox * Update: Add learnMore style * Add Scan QR code * Update: add ImportFromSeed button * Update: use fontPrimary * Update: cleanup * Update: Add passwordsMatch const * Add transalations * Update: add translations for steps * Update: Add Learn More link * Update: Get learn more link functioning correctly * Add some logging for Linking * Update: adjust position of checkmark * Update: OnboardingProgress component * Update: stings and colors * Update: snapshots * Fallback to 0 * Remove label animation * OnboardingProgress: remove constructor, use purecomponent * Use callback for toggleShowHide * Check accounts.length to create or recreate * Check width * Align metamask title logo * Check '@MetaMask:existingUser' to determine if user exists * Remove width check * Update styles * Add switch back in * Update translations * Add propType descriptions and defaultProps * Do not submit until ready * Add loading view * Add missing image style * Remove old state * Remove back button when creating wallet * Update: checkbox styles * Use @react-native-community/checkbox * delete biometricsContainer * Update: styles * Add boxType square to CheckBox * Add react-native-step-indicator * patch react-native-step-indicator * Update: snapshots * Update patch Co-authored-by: Etienne Dusseault <[email protected]> Co-authored-by: Andre Pimenta <[email protected]>
* locales: add test for ManualBackupStep1 * ManualBackupStep1: new component, in place of AccountBackupStep2 * ManualBackuptStep1: Style seed words, use mock array for data * add react-native-community/blur dep * Locales: more text * Styles: add extraBold option and new grey * StyledButtonStyles: add styles for view button * ManualBackupStep1: Implement seed phrase concealer * Update: Add OnboardingProgress component * Update: Complete OnboardingProgress component * Update: Move OnboardingProgress to separate UI component * Update: Add text to OnboardingProgress component * ManualBackupStep1: use OnboardingProgress from other PR, tidy up positioning * ManualBackupStep1: disable button if seed phrase hidden * locales: add text for ManualBackupStep2 * ManualBackupStep2: create screen, add styles * ManualBackupStep2: More styling & config * locales: add text for ManualBackup * ManualBackupStep1 & 2: fix styling, pass data through navigation * ObnoardingProgress: make compatible with ManualBackup- likely to change later * ManualBackup: add step 3, navigate to step 3 from 2, remove success modal * ManualBackupStep3: implement layout * locales: add text for ManualBackupStep3 * locales: add more strings for ManualBackupStep3 * ManualBackupStep3: implement hint + styles * ManualBackupStep3 save hint in async storage * ManualBackupStep3: implement confetti * ManualBackupStep1: grab seedphrase from navigation, arrive here from ChoosePassword * Nav/Main: fix navigation routes. Replace AccountBackup with ManualBackup, implement header for each screen * ManualBackups: use action view * BackupAlert: disable with ManualBackup * OnboardingProgress: update to latest work from ricky * ManualBackupStep 1 2 3: get steps from navigation params in constructor, fix props for OnboardingProgress * ManualBackupStep 1 2 3: clean styling for smaller devices * ManualBackupStep1: get words from nav * add tests for manual seedphrase backup, update existing * OnboardingProgress: remove constructor, use purecomponent * ManualBackupStep 1 2: fix styles to use flex, remove redundant method * ManualBackupStep3: remove react-native-confetti, use react-native-confetti-cannon * ManualBackupStep3: save seedphrase hint in an object * ManualBackupStep3: store hint as object string, update instead of overwriting * ManualBackupStep1: add password entry if phrase not available in nav params * ManualBackupStep2: randomize display of seedphrase * locales: add manualbackup text * ManualBackupStep2: dont randomize seedphrase during tests * ManualBackupStep1: onPasswordChange * lint fix * Fix conflict with colors Co-authored-by: rickycodes <[email protected]> Co-authored-by: Andre Pimenta <[email protected]>
* UI finished but without stepper * Merging OnboardingProgress component and fix some styles * Fix styles and locale lang * Moved bold to other PR & update tests * update tests * Update url * update snapshot * Handle skiping coming from onboard and wallet * Update snapshots
* Moving biometric logic to login and added button to start biometric auth on login * Fix icon centered * Update tests * Fix yarn.lock * Image on assets and hitSlop on styles * Update unit test * Move back to previous entry code * Update tests
* tip added * Spanish translation * fix key name * Styles and copy * Added confetti animation * Set header * Translations * Local & style fixes & url fix * Change confetti animation
As mentioned on standup call @omnat @cjeria this is not implemented in this PR Not sure if there are Trello cards up for this already for work to be carried out post V1 Issue 1:I get a crash upon logging out and attempting to create a new password; seen here = https://recordit.co/0AudtgHf5g Steps:
I should note that if creating a wallet from this branch, it's not reproducible on that flow, so it must be something when already having the app from develop installed Issue 2:If I am already logged in and then I log out, and intend to sync with extension, I have to tap on scan twice, and I get the warning alert twice, which is a bit redundant; seen here = http://recordit.co/Vnuu6gvOjo Steps:
Issue 3:Currently on prod, when a user wants to log out and import a new wallet via seed phrase, we show an alert, however on this branch we do not show an alert, seen here (This branch is on left, while prod is on right)= https://recordit.co/LT7c8Y8rXi Steps:
Perhaps this will get tackled in @estebanmino 's PR with this? Issue 4:On step 3 “Secure your wallet” after creating a new wallet, on Android a user is able to tap on the device back button which takes them back to create password, should we disable this ability? Issue 5:The ‘seed phrase’ modal has the second paragraph repeated twice instead of the third paragraph Issue 6:I’m noticing that the sequence of numbers of steps are filled in earlier than what is shown in figma Issue 7:On the Congratulations view, we have “loose it” instead of “lose it” Issue 8:On the Recovery hint modal, I am able to tap the Save CTA without inputting any text in the text input field |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🐛
The header and subheader copy in the carousel needs to be updated to the latest copy. Here's a direct link to the designs |
Issue 9: I'm noticing that for the fingerprint feature, we correctly show it when launching app (and if I cancel I'm still able to initiate it again), however, if I'm already logged in, and then I log out, tapping on the finger print does nothing nor does killing the app then relaunching; seen here = http://recordit.co/G58PvrDM6w Same on iOS as well when tapping on face id icon I get the following warning: Is this buggy, or is this how it was intended to work @cjeria / @andrepimenta ? Also it seems like device pin does not having any design or functionality with this new flow; seen here = http://recordit.co/423nklhQuF I have to manually enter my password Issue 10: I am not able to get Face recognition / Irises / Pin to work on my android device. Basically if I have either enabled, when I get to the create password view, I'm not even asked to Sign in with Face recognition / Irises / Pin (the only one that works for me is finger print). In this example = https://recordit.co/IU9qjMEqQv I have Iris enabled, but I'm not asked to log in with it, thus it's never registered in the app and I have to manually type in my password each time. (same goes for face recognition and pin) I'm assuming the create password page has to be able to detect/recognize if the device has face recognition/ iris scanner/ pin enabled and prompt the user accordingly; cc: @rickycodes |
Issue 12 Seems like we missed the security feature of blocking screenshots on Android on import via seed phrase flow this branch = https://recordit.co/S1jrlwY8SA |
Issue 4a: In addition to Issue 4 above which was for android, on iOS I'm noticing that by swiping left I get to the create password view which I'm assuming would create a brand new wallet and I'm unsure if we provide a warning upon checking this flow out it does look like we attempt another wallet creation = http://recordit.co/Ns8Zuwyuep perhaps we don't allow any way to get back to that view? Disable swiping and native android back button probably should do the trick |
Issue 13 Similar to issue 3, when I am already logged in then I log out and attempt to create a new wallet, on prod I'm prompted with a warning, however, on this branch there is no warning; seen here = http://recordit.co/Znp4SVYphn (prod on left, this branch on right) |
Not really an issue per-se but more of an observation On a smaller device, (i'm currently on iPhone 5s simulator) after a user inputs password, the page doesn't automatically scroll to the bottom, and there is no indication that the user should scroll down to continue, I'm wondering if this would confuse some users; seen here = http://recordit.co/5b0gKog21T |
Issue 14: On a smaller device (left in screencast and screenshot is Android Galaxy_Nexus emulator) the confirm CTA on the manual seed phrase back up flow is covering the password text input field; seen here = https://recordit.co/DyDpWNQBwu to get here you have to do the create wallet > create password > skip backup > then tap on alert on bottom of screen, then continue with backup |
* showQrCode here instead of navigating to import wallet * Fix second paragraph repeated issue * Center metamask logotype on Wallet imported screen * Add Modal for Scan QR code * Update onboarding_carousel * Add missing QR code logic * Update locales * Hide login when loading * Update stepper positions * Update styling * Update locales * Update snapshots * Fix onPressCreate
# Conflicts: # app/components/Views/AccountBackupStep1/__snapshots__/index.test.js.snap # app/components/Views/ChoosePassword/__snapshots__/index.test.js.snap # yarn.lock
* use pending deeplink * rm logs * deeplink * comment
…com/MetaMask/metamask-mobile into feature/update-password-backup-flow
* ManualBackupStep3: dismiss hint when tapping anywhere outside keyboard * snapshot
* remove unused backupAlertPress * call seedphraseNotBackedUp to bring back BackupAlert * Fix learnMore link * Make QR code steps list look good on smaller devices * Fix Getting started CTA on smaller screens * Fix testIDs * Update OnboardingCarousel snapshot
* modal * rewquest close * paddingVertical * fontStyles.normal * call toggleQrCodeModal on showQrCode Co-authored-by: rickycodes <[email protected]>
Issue 18: On a newly created wallet from develop that never had funds sent, as soon as funds are sent on this branch, I get the old secure your wallet modal, but it took me to the new create password flow and created a new wallet (funds lost) = http://recordit.co/aytLTHBHvT Here at the 1 second mark you can see my address on account 1 with funds: But the newly created wallet with a new address as account 1 with no funds: Steps to reproduce:
|
* Only create wallet if the user does not already exist * use from in navigation so we know where the user is coming from * remove existing check since this will be on the onBoarding * create appConstant for PREVIOUS_SCREEN * Remove console.log * undo * remove console.log
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we are QA Passed 🚀
* Create password (required step) (#1622) * Update: Add OnboardingProgress component * Update: Complete OnboardingProgress component * Update: Move OnboardingProgress to separate UI component * Update: Add text to OnboardingProgress component * Add lineHeight * Update: Increase marginTop * Update: styles and text * Update: text * Update: make prop required * Update: translations * Update styles * Update: translation * Update: Make steps a prop * Add single track method to dedupe code a bit * Add ChoosePassword to Onboarding flow * Update: add marginHorizontal prop * Update: use ref to measure and get marginHorizontal dynamically * Update: only run setState call once * Fallback to 0 just in case * Create wallet on Create Password step * Destructure state for readability * Update styles, add checkbox * Update: Add learnMore style * Add Scan QR code * Update: add ImportFromSeed button * Update: use fontPrimary * Update: cleanup * Update: Add passwordsMatch const * Add transalations * Update: add translations for steps * Update: Add Learn More link * Update: Get learn more link functioning correctly * Add some logging for Linking * Update: adjust position of checkmark * Update: OnboardingProgress component * Update: stings and colors * Update: snapshots * Fallback to 0 * Remove label animation * OnboardingProgress: remove constructor, use purecomponent * Use callback for toggleShowHide * Check accounts.length to create or recreate * Check width * Align metamask title logo * Check '@MetaMask:existingUser' to determine if user exists * Remove width check * Update styles * Add switch back in * Update translations * Add propType descriptions and defaultProps * Do not submit until ready * Add loading view * Add missing image style * Remove old state * Remove back button when creating wallet * Update: checkbox styles * Use @react-native-community/checkbox * delete biometricsContainer * Update: styles * Add boxType square to CheckBox * Add react-native-step-indicator * patch react-native-step-indicator * Update: snapshots * Update patch Co-authored-by: Etienne Dusseault <[email protected]> Co-authored-by: Andre Pimenta <[email protected]> * Manual Seedphrase Backup Designs (#1641) * locales: add test for ManualBackupStep1 * ManualBackupStep1: new component, in place of AccountBackupStep2 * ManualBackuptStep1: Style seed words, use mock array for data * add react-native-community/blur dep * Locales: more text * Styles: add extraBold option and new grey * StyledButtonStyles: add styles for view button * ManualBackupStep1: Implement seed phrase concealer * Update: Add OnboardingProgress component * Update: Complete OnboardingProgress component * Update: Move OnboardingProgress to separate UI component * Update: Add text to OnboardingProgress component * ManualBackupStep1: use OnboardingProgress from other PR, tidy up positioning * ManualBackupStep1: disable button if seed phrase hidden * locales: add text for ManualBackupStep2 * ManualBackupStep2: create screen, add styles * ManualBackupStep2: More styling & config * locales: add text for ManualBackup * ManualBackupStep1 & 2: fix styling, pass data through navigation * ObnoardingProgress: make compatible with ManualBackup- likely to change later * ManualBackup: add step 3, navigate to step 3 from 2, remove success modal * ManualBackupStep3: implement layout * locales: add text for ManualBackupStep3 * locales: add more strings for ManualBackupStep3 * ManualBackupStep3: implement hint + styles * ManualBackupStep3 save hint in async storage * ManualBackupStep3: implement confetti * ManualBackupStep1: grab seedphrase from navigation, arrive here from ChoosePassword * Nav/Main: fix navigation routes. Replace AccountBackup with ManualBackup, implement header for each screen * ManualBackups: use action view * BackupAlert: disable with ManualBackup * OnboardingProgress: update to latest work from ricky * ManualBackupStep 1 2 3: get steps from navigation params in constructor, fix props for OnboardingProgress * ManualBackupStep 1 2 3: clean styling for smaller devices * ManualBackupStep1: get words from nav * add tests for manual seedphrase backup, update existing * OnboardingProgress: remove constructor, use purecomponent * ManualBackupStep 1 2: fix styles to use flex, remove redundant method * ManualBackupStep3: remove react-native-confetti, use react-native-confetti-cannon * ManualBackupStep3: save seedphrase hint in an object * ManualBackupStep3: store hint as object string, update instead of overwriting * ManualBackupStep1: add password entry if phrase not available in nav params * ManualBackupStep2: randomize display of seedphrase * locales: add manualbackup text * ManualBackupStep2: dont randomize seedphrase during tests * ManualBackupStep1: onPasswordChange * lint fix * Fix conflict with colors Co-authored-by: rickycodes <[email protected]> Co-authored-by: Andre Pimenta <[email protected]> * Prompt to backup seedphrase (#1647) * UI finished but without stepper * Merging OnboardingProgress component and fix some styles * Fix styles and locale lang * Moved bold to other PR & update tests * update tests * Update url * update snapshot * Handle skiping coming from onboard and wallet * Update snapshots * Feature/fingerprint in login (#1651) * Moving biometric logic to login and added button to start biometric auth on login * Fix icon centered * Update tests * Fix yarn.lock * Image on assets and hitSlop on styles * Update unit test * Move back to previous entry code * Update tests * Feature/update import extension tip (#1668) * tip added * Spanish translation * fix key name * Styles and copy * Added confetti animation * Set header * Translations * Local & style fixes & url fix * Change confetti animation * Navigations * Fix fingerprint and QR navigation * Update snapshots * Remove setGenericPassword and removeItem * showQrCode instead of navigating to import wallet (#1706) * showQrCode here instead of navigating to import wallet * Fix second paragraph repeated issue * Center metamask logotype on Wallet imported screen * Add Modal for Scan QR code * Update onboarding_carousel * Add missing QR code logic * Update locales * Hide login when loading * Update stepper positions * Update styling * Update locales * Update snapshots * Fix onPressCreate * Fix fingerprint on logout & disallow backbutton on backup flow & button on manual backup on small screens (#1709) * Fix fingerprint on logout & disallow backbutton on backup flow * fix manual backup button on small devices * Don't save hint if empty * Fix skip and fix submit password button on smaller devices * Fix step on backup 1B and copy * Fix dismissing hint modal * Fix keyboard blocking continue on manual step * Update tests * bugfix/pending deeplink (#1716) * use pending deeplink * rm logs * deeplink * comment * Fix font * Confetti working android and ios (#1717) * Fix not able to dismiss keyboard during seedphrase hint (#1719) * ManualBackupStep3: dismiss hint when tapping anywhere outside keyboard * snapshot * UI fixes for feature/update-password-backup-flow (#1715) * remove unused backupAlertPress * call seedphraseNotBackedUp to bring back BackupAlert * Fix learnMore link * Make QR code steps list look good on smaller devices * Fix Getting started CTA on smaller screens * Fix testIDs * Update OnboardingCarousel snapshot * fix going to wallet at the end of manual backup * Styles scan modal (#1721) * modal * rewquest close * paddingVertical * fontStyles.normal * call toggleQrCodeModal on showQrCode Co-authored-by: rickycodes <[email protected]> * Only create wallet if the user does not already exist (#1725) * Only create wallet if the user does not already exist * use from in navigation so we know where the user is coming from * remove existing check since this will be on the onBoarding * create appConstant for PREVIOUS_SCREEN * Remove console.log * undo * remove console.log * Fix account creation image size * Scale (#1726) * Scale * Update tests Co-authored-by: ricky <[email protected]> Co-authored-by: Etienne Dusseault <[email protected]> Co-authored-by: Esteban Miño <[email protected]>
This is a PR for the update of the password & backup flow that includes five PRs/tasks:
Create password (required step)
#1622
https://trello.com/c/EOp3hZu9/121-create-password-required-step
Prompt to backup seedphrase:
#1647
https://trello.com/c/ytGa96Ps/123-prompt-me-to-backup-my-seedphrase
Manual Seedphrase Backup Designs
#1641
https://trello.com/c/dxgEt2zb/124-save-my-seedphrase-manually-by-writing-it-down
Feature/update import extension tip:
#1668
https://trello.com/c/JqpSbZ7b/122-inform-me-that-my-password-is-same-as-extension
Feature/fingerprint in login
#1651
https://trello.com/c/JHZAyoof/132-allow-me-to-use-fingerprint-option-to-log-in