mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Merge pull request #9667 from darkwing/9649-qr-contact
Fix 9649 - Ensure QR codes work properly when adding contact
This commit is contained in:
commit
e46c063fed
@ -33,6 +33,7 @@ export default class EnsInput extends Component {
|
||||
onReset: PropTypes.func,
|
||||
onValidAddressTyped: PropTypes.func,
|
||||
contact: PropTypes.object,
|
||||
value: PropTypes.string,
|
||||
}
|
||||
|
||||
state = {
|
||||
@ -53,20 +54,33 @@ export default class EnsInput extends Component {
|
||||
}
|
||||
}
|
||||
|
||||
// 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.
|
||||
componentDidUpdate (prevProps) {
|
||||
const {
|
||||
input,
|
||||
} = this.state
|
||||
const {
|
||||
network,
|
||||
value,
|
||||
} = this.props
|
||||
|
||||
let newValue
|
||||
|
||||
// Set the value of our input based on QR code provided by parent
|
||||
const newProvidedValue = input !== value && prevProps.value !== value
|
||||
if (newProvidedValue) {
|
||||
newValue = value
|
||||
}
|
||||
|
||||
if (prevProps.network !== network) {
|
||||
const provider = global.ethereumProvider
|
||||
this.ens = new ENS({ provider, network })
|
||||
this.onChange({ target: { value: input } })
|
||||
if (!newProvidedValue) {
|
||||
newValue = input
|
||||
}
|
||||
}
|
||||
|
||||
if (newValue !== undefined) {
|
||||
this.onChange({ target: { value: newValue } })
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -52,6 +52,7 @@ export default class AddContact extends PureComponent {
|
||||
validate = (address) => {
|
||||
const valid = isValidAddress(address)
|
||||
const validEnsAddress = isValidDomainName(address)
|
||||
|
||||
if (valid || validEnsAddress || address === '') {
|
||||
this.setState({ error: '', ethAddress: address })
|
||||
} else {
|
||||
@ -73,6 +74,7 @@ export default class AddContact extends PureComponent {
|
||||
this.setState({ ensAddress: address, error: '', ensError: '' })
|
||||
}}
|
||||
updateEnsResolutionError={(message) => this.setState({ ensError: message })}
|
||||
value={this.state.ethAddress || ''}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user