aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWhymarrh Whitby <whymarrh.whitby@gmail.com>2018-08-14 17:53:25 +0800
committerGitHub <noreply@github.com>2018-08-14 17:53:25 +0800
commit9ba91e69c73fe931e2d48cdf72e9592f490d3eed (patch)
tree3856be05a2bbb572044c92cf7cbc781f7bcd197b
parente2be22a4b722df608cb764042cc8ade6664414d8 (diff)
parent4dadeb9a314dc9f61c00e5695ea608aa58f150b7 (diff)
downloadtangerine-wallet-browser-9ba91e69c73fe931e2d48cdf72e9592f490d3eed.tar.gz
tangerine-wallet-browser-9ba91e69c73fe931e2d48cdf72e9592f490d3eed.tar.zst
tangerine-wallet-browser-9ba91e69c73fe931e2d48cdf72e9592f490d3eed.zip
Merge pull request #4961 from whymarrh/download-seed-phrase
Add download seed phrase link to new UI
-rw-r--r--mascara/src/app/first-time/index.css13
-rw-r--r--mascara/src/app/first-time/seed-screen.js16
-rw-r--r--ui/app/util.js4
3 files changed, 30 insertions, 3 deletions
diff --git a/mascara/src/app/first-time/index.css b/mascara/src/app/first-time/index.css
index 09e7d378d..2d05a48b8 100644
--- a/mascara/src/app/first-time/index.css
+++ b/mascara/src/app/first-time/index.css
@@ -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;
diff --git a/mascara/src/app/first-time/seed-screen.js b/mascara/src/app/first-time/seed-screen.js
index d004be77b..97d5d7930 100644
--- a/mascara/src/app/first-time/seed-screen.js
+++ b/mascara/src/app/first-time/seed-screen.js
@@ -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
diff --git a/ui/app/util.js b/ui/app/util.js
index 8b194e0c7..ade4fec8a 100644
--- a/ui/app/util.js
+++ b/ui/app/util.js
@@ -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 {