import React, { Component } from 'react' import PropTypes from 'prop-types' import { ENVIRONMENT_TYPE_NOTIFICATION } from '../../../../app/scripts/lib/enums' import { getEnvironmentType } from '../../../../app/scripts/lib/util' import Identicon from '../../components/ui/identicon' import AccountListItem from '../send/account-list-item/account-list-item.component' import { conversionUtil } from '../../helpers/utils/conversion-util' import Button from '../../components/ui/button' import { DEFAULT_ROUTE } from '../../helpers/constants/routes' export default class ConfirmEncryptionPublicKey extends Component { static contextTypes = { t: PropTypes.func.isRequired, metricsEvent: PropTypes.func.isRequired, } static propTypes = { balance: PropTypes.string, clearConfirmTransaction: PropTypes.func.isRequired, cancelEncryptionPublicKey: PropTypes.func.isRequired, encryptionPublicKey: PropTypes.func.isRequired, conversionRate: PropTypes.number, history: PropTypes.object.isRequired, requesterAddress: PropTypes.string, selectedAccount: PropTypes.object, txData: PropTypes.object, domainMetadata: PropTypes.object, } state = { selectedAccount: this.props.selectedAccount, } componentDidMount = () => { if (getEnvironmentType(window.location.href) === ENVIRONMENT_TYPE_NOTIFICATION) { window.addEventListener('beforeunload', this._beforeUnload) } } componentWillUnmount = () => { this._removeBeforeUnload() } _beforeUnload = (event) => { const { clearConfirmTransaction, cancelEncryptionPublicKey } = this.props const { metricsEvent } = this.context metricsEvent({ eventOpts: { category: 'Messages', action: 'Encryption public key Request', name: 'Cancel Via Notification Close', }, }) clearConfirmTransaction() cancelEncryptionPublicKey(event) } _removeBeforeUnload = () => { if (getEnvironmentType(window.location.href) === ENVIRONMENT_TYPE_NOTIFICATION) { window.removeEventListener('beforeunload', this._beforeUnload) } } renderHeader = () => { return (