import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import AppContainer from '~/client/services/AppContainer'; import PersonalContainer from '~/client/services/PersonalContainer'; import { toastError } from '~/client/util/apiNotification'; import { withUnstatedContainers } from '../UnstatedUtils'; import AssociateModal from './AssociateModal'; import DisassociateModal from './DisassociateModal'; import ExternalAccountRow from './ExternalAccountRow'; class ExternalAccountLinkedMe extends React.Component { constructor(props) { super(props); this.state = { isAssociateModalOpen: false, isDisassociateModalOpen: false, accountForDisassociate: null, }; this.openAssociateModal = this.openAssociateModal.bind(this); this.closeAssociateModal = this.closeAssociateModal.bind(this); this.openDisassociateModal = this.openDisassociateModal.bind(this); this.closeDisassociateModal = this.closeDisassociateModal.bind(this); } async componentDidMount() { try { await this.props.personalContainer.retrieveExternalAccounts(); } catch (err) { toastError(err); } } openAssociateModal() { this.setState({ isAssociateModalOpen: true }); } closeAssociateModal() { this.setState({ isAssociateModalOpen: false }); } /** * open disassociate modal, and props account * @param {object} account */ openDisassociateModal(account) { this.setState({ isDisassociateModalOpen: true, accountForDisassociate: account, }); } closeDisassociateModal() { this.setState({ isDisassociateModalOpen: false }); } render() { const { t, personalContainer } = this.props; const { externalAccounts } = personalContainer.state; return (