diff options
author | Dan J Miller <danjm.com@gmail.com> | 2019-08-06 11:24:19 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-06 11:24:19 +0800 |
commit | 010e3927da0f98857c1703b9c568e91abce72db9 (patch) | |
tree | e56c97c5569e41332b8ba7bc62c6c6cdc3922503 /ui/app | |
parent | 1779dc8be4f30cdf69ab47c5a26a6765f8b50ad3 (diff) | |
download | tangerine-wallet-browser-010e3927da0f98857c1703b9c568e91abce72db9.tar.gz tangerine-wallet-browser-010e3927da0f98857c1703b9c568e91abce72db9.tar.zst tangerine-wallet-browser-010e3927da0f98857c1703b9c568e91abce72db9.zip |
Show seed phrase challenge in browser (#6961)
* Open backup challenge screen, prompted from notification, in browser window
* Remove no longer used showingSeedPhraseBackupAfterOnboarding related code
* Make incremental-security.spec.js click through the seed phrase success screen
Diffstat (limited to 'ui/app')
-rw-r--r-- | ui/app/ducks/app/app.js | 12 | ||||
-rw-r--r-- | ui/app/helpers/constants/routes.js | 3 | ||||
-rw-r--r-- | ui/app/pages/first-time-flow/first-time-flow.component.js | 11 | ||||
-rw-r--r-- | ui/app/pages/first-time-flow/first-time-flow.container.js | 8 | ||||
-rw-r--r-- | ui/app/pages/first-time-flow/seed-phrase/seed-phrase.component.js | 11 | ||||
-rw-r--r-- | ui/app/pages/home/home.component.js | 13 | ||||
-rw-r--r-- | ui/app/pages/home/home.container.js | 2 | ||||
-rw-r--r-- | ui/app/store/actions.js | 17 |
8 files changed, 39 insertions, 38 deletions
diff --git a/ui/app/ducks/app/app.js b/ui/app/ducks/app/app.js index 6fe2a3a9a..029c755cd 100644 --- a/ui/app/ducks/app/app.js +++ b/ui/app/ducks/app/app.js @@ -73,7 +73,6 @@ function reduceApp (state, action) { networksTabSelectedRpcUrl: '', networksTabIsInAddMode: false, loadingMethodData: false, - showingSeedPhraseBackupAfterOnboarding: false, }, state.appState) switch (action.type) { @@ -757,17 +756,6 @@ function reduceApp (state, action) { loadingMethodData: false, }) - case actions.SHOW_SEED_PHRASE_BACKUP_AFTER_ONBOARDING: - return extend(appState, { - showingSeedPhraseBackupAfterOnboarding: true, - }) - - case actions.HIDE_SEED_PHRASE_BACKUP_AFTER_ONBOARDING: - return extend(appState, { - showingSeedPhraseBackupAfterOnboarding: false, - }) - - default: return appState } diff --git a/ui/app/helpers/constants/routes.js b/ui/app/helpers/constants/routes.js index adcd3f14d..cd26b3628 100644 --- a/ui/app/helpers/constants/routes.js +++ b/ui/app/helpers/constants/routes.js @@ -32,6 +32,7 @@ const INITIALIZE_CREATE_PASSWORD_ROUTE = '/initialize/create-password' const INITIALIZE_IMPORT_WITH_SEED_PHRASE_ROUTE = '/initialize/create-password/import-with-seed-phrase' const INITIALIZE_SELECT_ACTION_ROUTE = '/initialize/select-action' const INITIALIZE_SEED_PHRASE_ROUTE = '/initialize/seed-phrase' +const INITIALIZE_BACKUP_SEED_PHRASE_ROUTE = '/initialize/backup-seed-phrase' const INITIALIZE_END_OF_FLOW_ROUTE = '/initialize/end-of-flow' const INITIALIZE_CONFIRM_SEED_PHRASE_ROUTE = '/initialize/seed-phrase/confirm' const INITIALIZE_METAMETRICS_OPT_IN_ROUTE = '/initialize/metametrics-opt-in' @@ -90,4 +91,6 @@ module.exports = { CONTACT_MY_ACCOUNTS_VIEW_ROUTE, CONTACT_MY_ACCOUNTS_EDIT_ROUTE, NETWORKS_ROUTE, + INITIALIZE_BACKUP_SEED_PHRASE_ROUTE, } + diff --git a/ui/app/pages/first-time-flow/first-time-flow.component.js b/ui/app/pages/first-time-flow/first-time-flow.component.js index df9631e15..91415d2ee 100644 --- a/ui/app/pages/first-time-flow/first-time-flow.component.js +++ b/ui/app/pages/first-time-flow/first-time-flow.component.js @@ -18,6 +18,7 @@ import { INITIALIZE_SELECT_ACTION_ROUTE, INITIALIZE_END_OF_FLOW_ROUTE, INITIALIZE_METAMETRICS_OPT_IN_ROUTE, + INITIALIZE_BACKUP_SEED_PHRASE_ROUTE, } from '../../helpers/constants/routes' export default class FirstTimeFlow extends PureComponent { @@ -114,6 +115,16 @@ export default class FirstTimeFlow extends PureComponent { )} /> <Route + path={INITIALIZE_BACKUP_SEED_PHRASE_ROUTE} + render={props => ( + <SeedPhrase + { ...props } + seedPhrase={seedPhrase} + verifySeedPhrase={verifySeedPhrase} + /> + )} + /> + <Route path={INITIALIZE_CREATE_PASSWORD_ROUTE} render={props => ( <CreatePassword diff --git a/ui/app/pages/first-time-flow/first-time-flow.container.js b/ui/app/pages/first-time-flow/first-time-flow.container.js index 76fd12bcd..ec9920d74 100644 --- a/ui/app/pages/first-time-flow/first-time-flow.container.js +++ b/ui/app/pages/first-time-flow/first-time-flow.container.js @@ -7,9 +7,13 @@ import { unlockAndGetSeedPhrase, verifySeedPhrase, } from '../../store/actions' +import { + INITIALIZE_BACKUP_SEED_PHRASE_ROUTE, +} from '../../helpers/constants/routes' -const mapStateToProps = state => { - const { metamask: { completedOnboarding, isInitialized, isUnlocked, seedPhraseBackedUp }, appState: { showingSeedPhraseBackupAfterOnboarding } } = state +const mapStateToProps = (state, ownProps) => { + const { metamask: { completedOnboarding, isInitialized, isUnlocked, seedPhraseBackedUp } } = state + const showingSeedPhraseBackupAfterOnboarding = Boolean(ownProps.location.pathname.match(INITIALIZE_BACKUP_SEED_PHRASE_ROUTE)) return { completedOnboarding, diff --git a/ui/app/pages/first-time-flow/seed-phrase/seed-phrase.component.js b/ui/app/pages/first-time-flow/seed-phrase/seed-phrase.component.js index 79cb27c52..ae38757d9 100644 --- a/ui/app/pages/first-time-flow/seed-phrase/seed-phrase.component.js +++ b/ui/app/pages/first-time-flow/seed-phrase/seed-phrase.component.js @@ -6,6 +6,7 @@ import ConfirmSeedPhrase from './confirm-seed-phrase' import { INITIALIZE_SEED_PHRASE_ROUTE, INITIALIZE_CONFIRM_SEED_PHRASE_ROUTE, + INITIALIZE_BACKUP_SEED_PHRASE_ROUTE, DEFAULT_ROUTE, } from '../../../helpers/constants/routes' import HTML5Backend from 'react-dnd-html5-backend' @@ -68,6 +69,16 @@ export default class SeedPhrase extends PureComponent { /> )} /> + <Route + exact + path={INITIALIZE_BACKUP_SEED_PHRASE_ROUTE} + render={props => ( + <RevealSeedPhrase + { ...props } + seedPhrase={seedPhrase || verifiedSeedPhrase} + /> + )} + /> </Switch> </div> </DragDropContextProvider> diff --git a/ui/app/pages/home/home.component.js b/ui/app/pages/home/home.component.js index dca4c8540..66d962ff1 100644 --- a/ui/app/pages/home/home.component.js +++ b/ui/app/pages/home/home.component.js @@ -12,7 +12,7 @@ import { RESTORE_VAULT_ROUTE, CONFIRM_TRANSACTION_ROUTE, CONFIRM_ADD_SUGGESTED_TOKEN_ROUTE, - INITIALIZE_SEED_PHRASE_ROUTE, + INITIALIZE_BACKUP_SEED_PHRASE_ROUTE, } from '../../helpers/constants/routes' export default class Home extends PureComponent { @@ -43,8 +43,8 @@ export default class Home extends PureComponent { viewingUnconnectedDapp: PropTypes.bool.isRequired, forceApproveProviderRequestByOrigin: PropTypes.func, shouldShowSeedPhraseReminder: PropTypes.bool, - showSeedPhraseBackupAfterOnboarding: PropTypes.bool, rejectProviderRequestByOrigin: PropTypes.func, + isPopup: PropTypes.bool, } componentWillMount () { @@ -82,8 +82,8 @@ export default class Home extends PureComponent { viewingUnconnectedDapp, forceApproveProviderRequestByOrigin, shouldShowSeedPhraseReminder, - showSeedPhraseBackupAfterOnboarding, rejectProviderRequestByOrigin, + isPopup, } = this.props if (forgottenPassword) { @@ -140,8 +140,11 @@ export default class Home extends PureComponent { descriptionText={t('backupApprovalNotice')} acceptText={t('backupNow')} onAccept={() => { - showSeedPhraseBackupAfterOnboarding() - history.push(INITIALIZE_SEED_PHRASE_ROUTE) + if (isPopup) { + global.platform.openExtensionInBrowser(INITIALIZE_BACKUP_SEED_PHRASE_ROUTE) + } else { + history.push(INITIALIZE_BACKUP_SEED_PHRASE_ROUTE) + } }} infoText={t('backupApprovalInfo')} key="home-backupApprovalNotice" diff --git a/ui/app/pages/home/home.container.js b/ui/app/pages/home/home.container.js index 434d4b7e3..f03ffdc02 100644 --- a/ui/app/pages/home/home.container.js +++ b/ui/app/pages/home/home.container.js @@ -7,7 +7,6 @@ import { getCurrentEthBalance } from '../../selectors/selectors' import { forceApproveProviderRequestByOrigin, unsetMigratedPrivacyMode, - showSeedPhraseBackupAfterOnboarding, rejectProviderRequestByOrigin, } from '../../store/actions' import { getEnvironmentType } from '../../../../app/scripts/lib/util' @@ -60,7 +59,6 @@ const mapDispatchToProps = (dispatch) => ({ unsetMigratedPrivacyMode: () => dispatch(unsetMigratedPrivacyMode()), forceApproveProviderRequestByOrigin: (origin) => dispatch(forceApproveProviderRequestByOrigin(origin)), rejectProviderRequestByOrigin: origin => dispatch(rejectProviderRequestByOrigin(origin)), - showSeedPhraseBackupAfterOnboarding: () => dispatch(showSeedPhraseBackupAfterOnboarding()), }) export default compose( diff --git a/ui/app/store/actions.js b/ui/app/store/actions.js index 9d8c7c6b2..adb5fe450 100644 --- a/ui/app/store/actions.js +++ b/ui/app/store/actions.js @@ -377,11 +377,6 @@ var actions = { LOADING_TOKEN_PARAMS_FINISHED: 'LOADING_TOKEN_PARAMS_FINISHED', setSeedPhraseBackedUp, - showSeedPhraseBackupAfterOnboarding, - SHOW_SEED_PHRASE_BACKUP_AFTER_ONBOARDING: 'SHOW_SEED_PHRASE_BACKUP_AFTER_ONBOARDING', - hideSeedPhraseBackupAfterOnboarding, - HIDE_SEED_PHRASE_BACKUP_AFTER_ONBOARDING: 'HIDE_SEED_PHRASE_BACKUP_AFTER_ONBOARDING', - verifySeedPhrase, SET_SEED_PHRASE_BACKED_UP_TO_TRUE: 'SET_SEED_PHRASE_BACKED_UP_TO_TRUE', } @@ -2796,15 +2791,3 @@ function setSeedPhraseBackedUp (seedPhraseBackupState) { }) } } - -function showSeedPhraseBackupAfterOnboarding () { - return { - type: actions.SHOW_SEED_PHRASE_BACKUP_AFTER_ONBOARDING, - } -} - -function hideSeedPhraseBackupAfterOnboarding () { - return { - type: actions.HIDE_SEED_PHRASE_BACKUP_AFTER_ONBOARDING, - } -} |