import React, { Component } from 'react' import { withRouter } from 'react-router-dom' import { compose } from 'redux' import PropTypes from 'prop-types' import { connect } from 'react-redux' import * as actions from '../../../store/actions' import { DEFAULT_ROUTE } from '../../../helpers/constants/routes' import { getMetaMaskAccounts } from '../../../selectors' import Button from '../../../components/ui/button' class PrivateKeyImportView extends Component { static contextTypes = { t: PropTypes.func, metricsEvent: PropTypes.func, } static propTypes = { importNewAccount: PropTypes.func.isRequired, history: PropTypes.object.isRequired, displayWarning: PropTypes.func.isRequired, setSelectedAddress: PropTypes.func.isRequired, firstAddress: PropTypes.string.isRequired, error: PropTypes.node, } inputRef = React.createRef() state = { isEmpty: true } createNewKeychain () { const privateKey = this.inputRef.current.value const { importNewAccount, history, displayWarning, setSelectedAddress, firstAddress } = this.props importNewAccount('Private Key', [ privateKey ]) .then(({ selectedAddress }) => { if (selectedAddress) { this.context.metricsEvent({ eventOpts: { category: 'Accounts', action: 'Import Account', name: 'Imported Account with Private Key', }, }) history.push(DEFAULT_ROUTE) displayWarning(null) } else { displayWarning('Error importing account.') this.context.metricsEvent({ eventOpts: { category: 'Accounts', action: 'Import Account', name: 'Error importing with Private Key', }, }) setSelectedAddress(firstAddress) } }) .catch((err) => err && displayWarning(err.message || err)) } createKeyringOnEnter = (event) => { if (event.key === 'Enter') { event.preventDefault() this.createNewKeychain() } } checkInputEmpty () { const privateKey = this.inputRef.current.value let isEmpty = true if (privateKey !== '') { isEmpty = false } this.setState({ isEmpty }) } render () { const { error, displayWarning } = this.props return (