Fix Import Existing DEN in popup New UI first time flow.

feature/default_network_editable
Dan 7 years ago
parent 13b12efa03
commit c26e0d555b
  1. 14
      mascara/src/app/first-time/import-seed-phrase-screen.js
  2. 49
      mascara/src/app/first-time/index.js
  3. 2
      ui/app/app.js
  4. 24
      ui/app/first-time/init-menu.js

@ -2,7 +2,13 @@ import React, { Component } from 'react'
import PropTypes from 'prop-types' import PropTypes from 'prop-types'
import {connect} from 'react-redux' import {connect} from 'react-redux'
import LoadingScreen from './loading-screen' import LoadingScreen from './loading-screen'
import {createNewVaultAndRestore, hideWarning, displayWarning} from '../../../../ui/app/actions' import {
createNewVaultAndRestore,
hideWarning,
displayWarning,
unMarkPasswordForgotten,
clearNotices,
} from '../../../../ui/app/actions'
class ImportSeedPhraseScreen extends Component { class ImportSeedPhraseScreen extends Component {
static propTypes = { static propTypes = {
@ -23,7 +29,7 @@ class ImportSeedPhraseScreen extends Component {
onClick = () => { onClick = () => {
const { password, seedPhrase, confirmPassword } = this.state const { password, seedPhrase, confirmPassword } = this.state
const { createNewVaultAndRestore, next, displayWarning } = this.props const { createNewVaultAndRestore, next, displayWarning, leaveImportSeedSreenState } = this.props
if (seedPhrase.split(' ').length !== 12) { if (seedPhrase.split(' ').length !== 12) {
this.warning = 'Seed Phrases are 12 words long' this.warning = 'Seed Phrases are 12 words long'
@ -43,6 +49,7 @@ class ImportSeedPhraseScreen extends Component {
return return
} }
this.warning = null this.warning = null
leaveImportSeedSreenState()
createNewVaultAndRestore(password, seedPhrase) createNewVaultAndRestore(password, seedPhrase)
.then(next) .then(next)
} }
@ -113,6 +120,9 @@ class ImportSeedPhraseScreen extends Component {
export default connect( export default connect(
({ appState: { isLoading, warning } }) => ({ isLoading, warning }), ({ appState: { isLoading, warning } }) => ({ isLoading, warning }),
dispatch => ({ dispatch => ({
leaveImportSeedSreenState: () => {
dispatch(unMarkPasswordForgotten())
},
createNewVaultAndRestore: (pw, seed) => dispatch(createNewVaultAndRestore(pw, seed)), createNewVaultAndRestore: (pw, seed) => dispatch(createNewVaultAndRestore(pw, seed)),
displayWarning: (warning) => dispatch(displayWarning(warning)), displayWarning: (warning) => dispatch(displayWarning(warning)),
hideWarning: () => dispatch(hideWarning()), hideWarning: () => dispatch(hideWarning()),

@ -7,7 +7,11 @@ import NoticeScreen from './notice-screen'
import BackupPhraseScreen from './backup-phrase-screen' import BackupPhraseScreen from './backup-phrase-screen'
import ImportAccountScreen from './import-account-screen' import ImportAccountScreen from './import-account-screen'
import ImportSeedPhraseScreen from './import-seed-phrase-screen' import ImportSeedPhraseScreen from './import-seed-phrase-screen'
import {onboardingBuyEthView} from '../../../../ui/app/actions' const Loading = require('../../../../ui/app//components/loading')
import {
onboardingBuyEthView,
unMarkPasswordForgotten,
} from '../../../../ui/app/actions'
class FirstTimeFlow extends Component { class FirstTimeFlow extends Component {
@ -33,6 +37,7 @@ class FirstTimeFlow extends Component {
NOTICE: 'notice', NOTICE: 'notice',
BACK_UP_PHRASE: 'back_up_phrase', BACK_UP_PHRASE: 'back_up_phrase',
CONFIRM_BACK_UP_PHRASE: 'confirm_back_up_phrase', CONFIRM_BACK_UP_PHRASE: 'confirm_back_up_phrase',
LOADING: 'loading',
}; };
constructor (props) { constructor (props) {
@ -51,11 +56,15 @@ class FirstTimeFlow extends Component {
isInitialized, isInitialized,
seedWords, seedWords,
noActiveNotices, noActiveNotices,
forgottenPassword,
} = this.props } = this.props
const {SCREEN_TYPE} = FirstTimeFlow const {SCREEN_TYPE} = FirstTimeFlow
// return SCREEN_TYPE.NOTICE // return SCREEN_TYPE.NOTICE
if (forgottenPassword) {
return SCREEN_TYPE.IMPORT_SEED_PHRASE
}
if (!isInitialized) { if (!isInitialized) {
return SCREEN_TYPE.CREATE_PASSWORD return SCREEN_TYPE.CREATE_PASSWORD
} }
@ -71,7 +80,17 @@ class FirstTimeFlow extends Component {
renderScreen () { renderScreen () {
const {SCREEN_TYPE} = FirstTimeFlow const {SCREEN_TYPE} = FirstTimeFlow
const {goToBuyEtherView, address} = this.props const {
goToBuyEtherView,
address,
restoreCreatePasswordScreen,
forgottenPassword,
isLoading,
} = this.props
if (isLoading) {
return h(Loading)
}
switch (this.state.screenType) { switch (this.state.screenType) {
case SCREEN_TYPE.CREATE_PASSWORD: case SCREEN_TYPE.CREATE_PASSWORD:
@ -92,8 +111,14 @@ class FirstTimeFlow extends Component {
case SCREEN_TYPE.IMPORT_SEED_PHRASE: case SCREEN_TYPE.IMPORT_SEED_PHRASE:
return ( return (
<ImportSeedPhraseScreen <ImportSeedPhraseScreen
back={() => this.setScreenType(SCREEN_TYPE.CREATE_PASSWORD)} back={() => {
next={() => this.setScreenType(SCREEN_TYPE.NOTICE)} leaveImportSeedSreenState()
this.setScreenType(SCREEN_TYPE.CREATE_PASSWORD)
}}
next={() => {
const newScreenType = forgottenPassword ? null : SCREEN_TYPE.NOTICE
this.setScreenType(newScreenType)
}}
/> />
) )
case SCREEN_TYPE.UNIQUE_IMAGE: case SCREEN_TYPE.UNIQUE_IMAGE:
@ -130,13 +155,27 @@ class FirstTimeFlow extends Component {
} }
export default connect( export default connect(
({ metamask: { isInitialized, seedWords, noActiveNotices, selectedAddress } }) => ({ ({
metamask: {
isInitialized,
seedWords,
noActiveNotices,
selectedAddress,
forgottenPassword,
},
appState: {
isLoading,
}
}) => ({
isInitialized, isInitialized,
seedWords, seedWords,
noActiveNotices, noActiveNotices,
address: selectedAddress, address: selectedAddress,
forgottenPassword,
isLoading,
}), }),
dispatch => ({ dispatch => ({
leaveImportSeedSreenState: () => dispatch(unMarkPasswordForgotten()),
goToBuyEtherView: address => dispatch(onboardingBuyEthView(address)), goToBuyEtherView: address => dispatch(onboardingBuyEthView(address)),
}) })
)(FirstTimeFlow) )(FirstTimeFlow)

@ -380,7 +380,7 @@ App.prototype.renderPrimary = function () {
if (props.isInitialized && props.forgottenPassword) { if (props.isInitialized && props.forgottenPassword) {
log.debug('rendering restore vault screen') log.debug('rendering restore vault screen')
return h(HDRestoreVaultScreen, {key: 'HDRestoreVaultScreen'}) return h(HDRestoreVaultScreen, {key: 'HDRestoreVaultScreen'})
} else if (!props.isInitialized) { } else if (!props.isInitialized && !props.isUnlocked) {
log.debug('rendering menu screen') log.debug('rendering menu screen')
return props.isPopup return props.isPopup
? h(OldUIInitializeMenuScreen, {key: 'menuScreenInit'}) ? h(OldUIInitializeMenuScreen, {key: 'menuScreenInit'})

@ -7,6 +7,8 @@ const Mascot = require('../components/mascot')
const actions = require('../actions') const actions = require('../actions')
const Tooltip = require('../components/tooltip') const Tooltip = require('../components/tooltip')
const getCaretCoordinates = require('textarea-caret') const getCaretCoordinates = require('textarea-caret')
const environmentType = require('../../../app/scripts/lib/environment-type')
const { OLD_UI_NETWORK_TYPE } = require('../../../app/scripts/config').enums
let isSubmitting = false let isSubmitting = false
@ -130,6 +132,18 @@ InitializeMenuScreen.prototype.renderMenu = function (state) {
}, 'Import Existing DEN'), }, 'Import Existing DEN'),
]), ]),
h('.flex-row.flex-center.flex-grow', [
h('p.pointer', {
onClick: this.showOldUI.bind(this),
style: {
fontSize: '0.8em',
color: '#aeaeae',
textDecoration: 'underline',
marginTop: '32px',
},
}, 'Use classic interface'),
]),
]) ])
) )
} }
@ -146,7 +160,15 @@ InitializeMenuScreen.prototype.componentDidMount = function () {
} }
InitializeMenuScreen.prototype.showRestoreVault = function () { InitializeMenuScreen.prototype.showRestoreVault = function () {
this.props.dispatch(actions.showRestoreVault()) this.props.dispatch(actions.markPasswordForgotten())
if (environmentType() === 'popup') {
global.platform.openExtensionInBrowser()
}
}
InitializeMenuScreen.prototype.showOldUI = function () {
this.props.dispatch(actions.setFeatureFlag('betaUI', false, 'OLD_UI_NOTIFICATION_MODAL'))
.then(() => this.props.dispatch(actions.setNetworkEndpoints(OLD_UI_NETWORK_TYPE)))
} }
InitializeMenuScreen.prototype.createNewVaultAndKeychain = function () { InitializeMenuScreen.prototype.createNewVaultAndKeychain = function () {

Loading…
Cancel
Save