Merge pull request #240 from MetaMask/RecoverSeed
reveal Vault Recovery Seedfeature/default_network_editable
commit
3b3c472dee
@ -0,0 +1,149 @@ |
|||||||
|
const inherits = require('util').inherits |
||||||
|
|
||||||
|
const Component = require('react').Component |
||||||
|
const connect = require('react-redux').connect |
||||||
|
const h = require('react-hyperscript') |
||||||
|
const actions = require('../actions') |
||||||
|
|
||||||
|
module.exports = connect(mapStateToProps)(RevealSeedConfirmatoin) |
||||||
|
|
||||||
|
|
||||||
|
inherits(RevealSeedConfirmatoin, Component) |
||||||
|
function RevealSeedConfirmatoin() { |
||||||
|
Component.call(this) |
||||||
|
} |
||||||
|
|
||||||
|
function mapStateToProps(state) { |
||||||
|
return { |
||||||
|
warning: state.appState.warning, |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
RevealSeedConfirmatoin.prototype.confirmationPhrase = 'I understand' |
||||||
|
|
||||||
|
RevealSeedConfirmatoin.prototype.render = function() { |
||||||
|
const props = this.props |
||||||
|
const state = this.state |
||||||
|
|
||||||
|
return ( |
||||||
|
|
||||||
|
h('.initialize-screen.flex-column.flex-center.flex-grow', [ |
||||||
|
|
||||||
|
h('h3.flex-center.text-transform-uppercase', { |
||||||
|
style: { |
||||||
|
background: '#EBEBEB', |
||||||
|
color: '#AEAEAE', |
||||||
|
marginBottom: 24, |
||||||
|
width: '100%', |
||||||
|
fontSize: '20px', |
||||||
|
padding: 6, |
||||||
|
}, |
||||||
|
}, [ |
||||||
|
'Reveal Seed Words', |
||||||
|
]), |
||||||
|
|
||||||
|
h('.div', { |
||||||
|
style: { |
||||||
|
display: 'flex', |
||||||
|
flexDirection: 'column', |
||||||
|
padding: '20px', |
||||||
|
justifyContent: 'center', |
||||||
|
} |
||||||
|
}, [ |
||||||
|
|
||||||
|
h('h4', 'Do not recover your seed words in a public place! These words can be used to steal all your accounts.'), |
||||||
|
|
||||||
|
// confirmation
|
||||||
|
h('input.large-input.letter-spacey', { |
||||||
|
type: 'password', |
||||||
|
id: 'password-box', |
||||||
|
placeholder: 'Enter your password to confirm', |
||||||
|
onKeyPress: this.checkConfirmation.bind(this), |
||||||
|
style: { |
||||||
|
width: 260, |
||||||
|
marginTop: '12px', |
||||||
|
}, |
||||||
|
}), |
||||||
|
|
||||||
|
h(`h4${state && state.confirmationWrong ? '.error' : ''}`, { |
||||||
|
style: { |
||||||
|
marginTop: '12px', |
||||||
|
} |
||||||
|
}, `Enter the phrase "I understand" to proceed.`), |
||||||
|
|
||||||
|
// confirm confirmation
|
||||||
|
h('input.large-input.letter-spacey', { |
||||||
|
type: 'text', |
||||||
|
id: 'confirm-box', |
||||||
|
placeholder: this.confirmationPhrase, |
||||||
|
onKeyPress: this.checkConfirmation.bind(this), |
||||||
|
style: { |
||||||
|
width: 260, |
||||||
|
marginTop: 16, |
||||||
|
}, |
||||||
|
}), |
||||||
|
|
||||||
|
h('.flex-row.flex-space-between', { |
||||||
|
style: { |
||||||
|
marginTop: 30, |
||||||
|
width: '50%', |
||||||
|
}, |
||||||
|
}, [ |
||||||
|
// cancel
|
||||||
|
h('button.primary', { |
||||||
|
onClick: this.goHome.bind(this), |
||||||
|
}, 'CANCEL'), |
||||||
|
|
||||||
|
// submit
|
||||||
|
h('button.primary', { |
||||||
|
onClick: this.revealSeedWords.bind(this), |
||||||
|
}, 'OK'), |
||||||
|
|
||||||
|
]), |
||||||
|
|
||||||
|
(props.warning) && ( |
||||||
|
h('span.error', { |
||||||
|
style: { |
||||||
|
margin: '20px', |
||||||
|
} |
||||||
|
}, props.warning.split('-')) |
||||||
|
), |
||||||
|
|
||||||
|
props.inProgress && ( |
||||||
|
h('span.in-progress-notification', 'Generating Seed...') |
||||||
|
), |
||||||
|
]), |
||||||
|
]) |
||||||
|
) |
||||||
|
} |
||||||
|
|
||||||
|
RevealSeedConfirmatoin.prototype.componentDidMount = function(){ |
||||||
|
document.getElementById('password-box').focus() |
||||||
|
} |
||||||
|
|
||||||
|
RevealSeedConfirmatoin.prototype.goHome = function() { |
||||||
|
this.props.dispatch(actions.showConfigPage(false)) |
||||||
|
} |
||||||
|
|
||||||
|
// create vault
|
||||||
|
|
||||||
|
RevealSeedConfirmatoin.prototype.checkConfirmation = function(event) { |
||||||
|
if (event.key === 'Enter') { |
||||||
|
event.preventDefault() |
||||||
|
this.revealSeedWords() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
RevealSeedConfirmatoin.prototype.revealSeedWords = function(){ |
||||||
|
this.setState({ confirmationWrong: false }) |
||||||
|
|
||||||
|
const confirmBox = document.getElementById('confirm-box') |
||||||
|
const confirmation = confirmBox.value |
||||||
|
if (confirmation !== this.confirmationPhrase) { |
||||||
|
confirmBox.value = '' |
||||||
|
return this.setState({ confirmationWrong: true }) |
||||||
|
} |
||||||
|
|
||||||
|
var password = document.getElementById('password-box').value |
||||||
|
this.props.dispatch(actions.requestRevealSeed(password)) |
||||||
|
} |
Loading…
Reference in new issue