import PropTypes from 'prop-types' import React, { Component } from 'react' import ConnectedSitesList from '../../components/app/connected-sites-list' import Popover from '../../components/ui/popover/popover.component' import Button from '../../components/ui/button' export default class ConnectSites extends Component { static contextTypes = { t: PropTypes.func, } static defaultProps = { tabToConnect: null, } static propTypes = { accountLabel: PropTypes.string.isRequired, closePopover: PropTypes.func.isRequired, connectedDomains: PropTypes.arrayOf(PropTypes.object).isRequired, disconnectSite: PropTypes.func.isRequired, tabToConnect: PropTypes.object, legacyExposeAccount: PropTypes.func.isRequired, getOpenMetamaskTabsIds: PropTypes.func.isRequired, } state = { sitePendingDisconnect: null, } UNSAFE_componentWillMount () { const { getOpenMetamaskTabsIds } = this.props getOpenMetamaskTabsIds() } setSitePendingDisconnect = (domainKey, domainName) => { this.setState({ sitePendingDisconnect: { domainKey, domainName, }, }) } clearSitePendingDisconnect = () => { this.setState({ sitePendingDisconnect: null, }) } disconnect = () => { const { disconnectSite } = this.props const { sitePendingDisconnect } = this.state disconnectSite(sitePendingDisconnect.domainKey) this.clearSitePendingDisconnect() } renderConnectedSitesList () { return ( ) } renderConnectedSitesPopover () { const { accountLabel, closePopover, connectedDomains, legacyExposeAccount, tabToConnect, } = this.props const { t } = this.context return ( { t('connectManually') } ) : null } footerClassName="connected-sites__add-site-manually" > {this.renderConnectedSitesList()} ) } renderDisconnectSitePopover () { const { closePopover } = this.props const { t } = this.context const { sitePendingDisconnect } = this.state return ( )} footerClassName="connected-sites__confirmation" /> ) } render () { const { sitePendingDisconnect } = this.state return ( sitePendingDisconnect ? this.renderDisconnectSitePopover() : this.renderConnectedSitesPopover() ) } }