import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { getAccountLink } from '@metamask/etherscan-link'; import Modal from '../../modal'; import { addressSummary, getURLHostName } from '../../../../helpers/utils/util'; import Identicon from '../../../ui/identicon'; import { EVENT } from '../../../../../shared/constants/metametrics'; export default class ConfirmRemoveAccount extends Component { static propTypes = { hideModal: PropTypes.func.isRequired, removeAccount: PropTypes.func.isRequired, identity: PropTypes.object.isRequired, chainId: PropTypes.string.isRequired, rpcPrefs: PropTypes.object.isRequired, }; static contextTypes = { t: PropTypes.func, trackEvent: PropTypes.func, }; handleRemove = () => { this.props .removeAccount(this.props.identity.address) .then(() => this.props.hideModal()); }; handleCancel = () => { this.props.hideModal(); }; renderSelectedAccount() { const { t } = this.context; const { identity, rpcPrefs, chainId } = this.props; return (
{t('name')} {identity.name}
{t('publicAddress')} {addressSummary(identity.address, 4, 4)}
{ const accountLink = getAccountLink( identity.address, chainId, rpcPrefs, ); this.context.trackEvent({ category: EVENT.CATEGORIES.ACCOUNTS, event: 'Clicked Block Explorer Link', properties: { link_type: 'Account Tracker', action: 'Remove Account', block_explorer_domain: getURLHostName(accountLink), }, }); global.platform.openTab({ url: accountLink, }); }} target="_blank" rel="noopener noreferrer" title={t('etherscanView')} >
); } render() { const { t } = this.context; return (
{this.renderSelectedAccount()}
{t('removeAccountDescription')} {t('learnMore')}
); } }