aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app
diff options
context:
space:
mode:
authorDan J Miller <danjm.com@gmail.com>2019-08-06 11:24:19 +0800
committerGitHub <noreply@github.com>2019-08-06 11:24:19 +0800
commit010e3927da0f98857c1703b9c568e91abce72db9 (patch)
treee56c97c5569e41332b8ba7bc62c6c6cdc3922503 /ui/app
parent1779dc8be4f30cdf69ab47c5a26a6765f8b50ad3 (diff)
downloadtangerine-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.js12
-rw-r--r--ui/app/helpers/constants/routes.js3
-rw-r--r--ui/app/pages/first-time-flow/first-time-flow.component.js11
-rw-r--r--ui/app/pages/first-time-flow/first-time-flow.container.js8
-rw-r--r--ui/app/pages/first-time-flow/seed-phrase/seed-phrase.component.js11
-rw-r--r--ui/app/pages/home/home.component.js13
-rw-r--r--ui/app/pages/home/home.container.js2
-rw-r--r--ui/app/store/actions.js17
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,
- }
-}