diff options
Diffstat (limited to 'ui/app')
-rw-r--r-- | ui/app/accounts/import/json.js | 3 | ||||
-rw-r--r-- | ui/app/components/ens-input.js | 22 |
2 files changed, 10 insertions, 15 deletions
diff --git a/ui/app/accounts/import/json.js b/ui/app/accounts/import/json.js index 5ed31ab0a..158a3c923 100644 --- a/ui/app/accounts/import/json.js +++ b/ui/app/accounts/import/json.js @@ -5,6 +5,8 @@ const connect = require('react-redux').connect const actions = require('../../actions') const FileInput = require('react-simple-file-input').default +const HELP_LINK = 'https://github.com/MetaMask/faq/blob/master/README.md#q-i-cant-use-the-import-feature-for-uploading-a-json-file-the-window-keeps-closing-when-i-try-to-select-a-file' + module.exports = connect(mapStateToProps)(JsonImportSubview) function mapStateToProps (state) { @@ -32,6 +34,7 @@ JsonImportSubview.prototype.render = function () { }, [ h('p', 'Used by a variety of different clients'), + h('a.warning', { href: HELP_LINK, target: '_blank' }, 'File import not working? Click here!'), h(FileInput, { readAs: 'text', diff --git a/ui/app/components/ens-input.js b/ui/app/components/ens-input.js index 43bb7ab22..16c50db84 100644 --- a/ui/app/components/ens-input.js +++ b/ui/app/components/ens-input.js @@ -7,6 +7,7 @@ const copyToClipboard = require('copy-to-clipboard') const ENS = require('ethjs-ens') const networkMap = require('ethjs-ens/lib/network-map.json') const ensRE = /.+\.eth$/ +const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' module.exports = EnsInput @@ -21,7 +22,6 @@ EnsInput.prototype.render = function () { const opts = extend(props, { list: 'addresses', onChange: () => { - this.setState({ ensResolution: '0x0000000000000000000000000000000000000000' }) const network = this.props.network const networkHasEnsSupport = getNetworkEnsSupport(network) if (!networkHasEnsSupport) return @@ -73,6 +73,7 @@ EnsInput.prototype.render = function () { EnsInput.prototype.componentDidMount = function () { const network = this.props.network const networkHasEnsSupport = getNetworkEnsSupport(network) + this.setState({ ensResolution: ZERO_ADDRESS }) if (networkHasEnsSupport) { const provider = global.ethereumProvider @@ -85,18 +86,10 @@ EnsInput.prototype.lookupEnsName = function () { const recipient = document.querySelector('input[name="address"]').value const { ensResolution } = this.state - if (!this.ens) { - return this.setState({ - loadingEns: false, - ensFailure: true, - hoverText: 'ENS is not supported on your current network.', - }) - } - log.info(`ENS attempting to resolve name: ${recipient}`) this.ens.lookup(recipient.trim()) .then((address) => { - if (address === '0x0000000000000000000000000000000000000000') throw new Error('No address has been set for this name.') + if (address === ZERO_ADDRESS) throw new Error('No address has been set for this name.') if (address !== ensResolution) { this.setState({ loadingEns: false, @@ -111,7 +104,7 @@ EnsInput.prototype.lookupEnsName = function () { log.error(reason) return this.setState({ loadingEns: false, - ensResolution: '0x0000000000000000000000000000000000000000', + ensResolution: ZERO_ADDRESS, ensFailure: true, hoverText: reason.message, }) @@ -124,7 +117,7 @@ EnsInput.prototype.componentDidUpdate = function (prevProps, prevState) { // If an address is sent without a nickname, meaning not from ENS or from // the user's own accounts, a default of a one-space string is used. const nickname = state.nickname || ' ' - if (ensResolution && this.props.onChange && + if (prevState && ensResolution && this.props.onChange && ensResolution !== prevState.ensResolution) { this.props.onChange(ensResolution, nickname) } @@ -143,7 +136,7 @@ EnsInput.prototype.ensIcon = function (recipient) { } EnsInput.prototype.ensIconContents = function (recipient) { - const { loadingEns, ensFailure, ensResolution } = this.state || {} + const { loadingEns, ensFailure, ensResolution } = this.state || { ensResolution: ZERO_ADDRESS} if (loadingEns) { return h('img', { @@ -160,7 +153,7 @@ EnsInput.prototype.ensIconContents = function (recipient) { return h('i.fa.fa-warning.fa-lg.warning') } - if (ensResolution) { + if (ensResolution && (ensResolution !== ZERO_ADDRESS)) { return h('i.fa.fa-check-circle.fa-lg.cursor-pointer', { style: { color: 'green' }, onClick: (event) => { @@ -175,4 +168,3 @@ EnsInput.prototype.ensIconContents = function (recipient) { function getNetworkEnsSupport (network) { return Boolean(networkMap[network]) } - |