Merge pull request #4961 from whymarrh/download-seed-phrase

Add download seed phrase link to new UI
feature/default_network_editable
Whymarrh Whitby 6 years ago committed by GitHub
commit 9ba91e69c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      mascara/src/app/first-time/index.css
  2. 16
      mascara/src/app/first-time/seed-screen.js
  3. 4
      ui/app/util.js

@ -340,6 +340,19 @@
min-width: 0;
}
.backup-phrase__tips-text--link {
color: #2f9ae0;
cursor: pointer;
}
.backup-phrase__tips-text--link:hover {
color: #2f9ae0;
}
.backup-phrase__tips-text--strong {
font-weight: bold;
}
@media only screen and (max-width: 768px) {
.backup-phrase__content-wrapper {
flex-direction: column;

@ -5,6 +5,7 @@ import classnames from 'classnames'
import { withRouter } from 'react-router-dom'
import { compose } from 'recompose'
import Identicon from '../../../../ui/app/components/identicon'
import {exportAsFile} from '../../../../ui/app/util'
import Breadcrumbs from './breadcrumbs'
import LoadingScreen from './loading-screen'
import { DEFAULT_ROUTE, INITIALIZE_CONFIRM_SEED_ROUTE } from '../../../../ui/app/routes'
@ -65,6 +66,12 @@ class BackupPhraseScreen extends Component {
}
}
exportSeedWords = () => {
const { seedWords } = this.props
exportAsFile('MetaMask Secret Backup Phrase', seedWords, 'text/plain')
}
renderSecretWordsContainer () {
const { isShowingSecret } = this.state
@ -111,7 +118,7 @@ class BackupPhraseScreen extends Component {
<div className="backup-phrase__tips">
<div className="backup-phrase__tips-text">Tips:</div>
<div className="backup-phrase__tips-text">
Store this phrase in a password manager like 1password.
Store this phrase in a password manager like 1Password.
</div>
<div className="backup-phrase__tips-text">
Write this phrase on a piece of paper and store in a secure location. If you want even more security, write it down on multiple pieces of paper and store each in 2 - 3 different locations.
@ -119,6 +126,13 @@ class BackupPhraseScreen extends Component {
<div className="backup-phrase__tips-text">
Memorize this phrase.
</div>
<div className="backup-phrase__tips-text">
<strong>
<a className="backup-phrase__tips-text--link backup-phrase__tips-text--strong" onClick={this.exportSeedWords}>
Download this Secret Backup Phrase
</a>
</strong> and keep it stored safely on an external encrypted hard drive or storage medium.
</div>
</div>
<div className="backup-phrase__next-button">
<button

@ -271,9 +271,9 @@ function getContractAtAddress (tokenAddress) {
return global.eth.contract(abi).at(tokenAddress)
}
function exportAsFile (filename, data) {
function exportAsFile (filename, data, type = 'text/csv') {
// source: https://stackoverflow.com/a/33542499 by Ludovic Feltz
const blob = new Blob([data], {type: 'text/csv'})
const blob = new Blob([data], {type})
if (window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveBlob(blob, filename)
} else {

Loading…
Cancel
Save