diff options
Diffstat (limited to 'ui')
-rw-r--r-- | ui/app/components/token-list.js | 22 | ||||
-rw-r--r-- | ui/app/info.js | 6 | ||||
-rw-r--r-- | ui/app/keychains/hd/create-vault-complete.js | 2 |
3 files changed, 20 insertions, 10 deletions
diff --git a/ui/app/components/token-list.js b/ui/app/components/token-list.js index bc41c5270..ac7ab8309 100644 --- a/ui/app/components/token-list.js +++ b/ui/app/components/token-list.js @@ -29,13 +29,18 @@ function TokenList () { TokenList.prototype.render = function () { const state = this.state - const { isLoading, tokens } = state + const { tokens, isLoading, error } = state const { userAddress, network } = this.props if (isLoading) { return this.message('Loading') } + if (error) { + log.error(error) + return this.message('There was a problem loading your token balances.') + } + const tokenViews = tokens.map((tokenData) => { tokenData.network = network tokenData.userAddress = userAddress @@ -114,7 +119,10 @@ TokenList.prototype.componentDidMount = function () { TokenList.prototype.createFreshTokenTracker = function () { if (this.tracker) { + // Clean up old trackers when refreshing: this.tracker.stop() + this.tracker.removeListener('update', this.balanceUpdater) + this.tracker.removeListener('error', this.showError) } if (!global.ethereumProvider) return @@ -126,9 +134,15 @@ TokenList.prototype.createFreshTokenTracker = function () { pollingInterval: 8000, }) - this.tracker.on('update', (tokenData) => { - this.updateBalances(tokenData) - }) + + // Set up listener instances for cleaning up + this.balanceUpdater = this.updateBalances.bind(this) + this.showError = (error) => { + this.setState({ error, isLoading: false }) + } + this.tracker.on('update', this.balanceUpdater) + this.tracker.on('error', this.showError) + this.tracker.updateBalances() .then(() => { this.updateBalances(this.tracker.serialize()) diff --git a/ui/app/info.js b/ui/app/info.js index 825796ed6..e8470de97 100644 --- a/ui/app/info.js +++ b/ui/app/info.js @@ -101,14 +101,12 @@ InfoScreen.prototype.render = function () { h('a.info', { href: 'https://github.com/MetaMask/faq', target: '_blank', - onClick (event) { this.navigateTo(event.target.href) }, }, 'Need Help? Read our FAQ!'), ]), h('div', [ h('a', { href: 'https://metamask.io/', target: '_blank', - onClick (event) { this.navigateTo(event.target.href) }, }, [ h('img.icon-size', { src: 'images/icon-128.png', @@ -126,7 +124,6 @@ InfoScreen.prototype.render = function () { h('a.info', { href: 'http://slack.metamask.io', target: '_blank', - onClick (event) { this.navigateTo(event.target.href) }, }, 'Join the conversation on Slack'), ]), @@ -134,7 +131,6 @@ InfoScreen.prototype.render = function () { h('a.info', { href: 'https://twitter.com/metamask_io', target: '_blank', - onClick (event) { this.navigateTo(event.target.href) }, }, 'Follow us on Twitter'), ]), @@ -142,7 +138,7 @@ InfoScreen.prototype.render = function () { h('a.info', { target: '_blank', style: { width: '85vw' }, - onClick () { this.navigateTo('mailto:help@metamask.io?subject=Feedback') }, + href: 'mailto:help@metamask.io?subject=Feedback', }, 'Email us!'), ]), ]), diff --git a/ui/app/keychains/hd/create-vault-complete.js b/ui/app/keychains/hd/create-vault-complete.js index 5230797ad..9741155f7 100644 --- a/ui/app/keychains/hd/create-vault-complete.js +++ b/ui/app/keychains/hd/create-vault-complete.js @@ -54,7 +54,7 @@ CreateVaultCompleteScreen.prototype.render = function () { textAlign: 'center', }, }, [ - h('span.error', 'These 12 words can restore all of your MetaMask accounts for this vault.\nSave them somewhere safe and secret.'), + h('span.error', 'These 12 words are the only way to restore your MetaMask accounts.\nSave them somewhere safe and secret.'), ]), h('textarea.twelve-word-phrase', { |