import { connect } from 'react-redux'; import { getAccountToConnectToActiveTab, getOrderedConnectedAccountsForActiveTab, getPermissionsForActiveTab, getSelectedAddress, } from '../../selectors'; import { isExtensionUrl } from '../../helpers/utils/util'; import { addPermittedAccount, removePermittedAccount, setSelectedAddress, } from '../../store/actions'; import { getMostRecentOverviewPage } from '../../ducks/history/history'; import ConnectedAccounts from './connected-accounts.component'; const mapStateToProps = (state) => { const { activeTab } = state; const accountToConnect = getAccountToConnectToActiveTab(state); const connectedAccounts = getOrderedConnectedAccountsForActiveTab(state); const permissions = getPermissionsForActiveTab(state); const selectedAddress = getSelectedAddress(state); const isActiveTabExtension = isExtensionUrl(activeTab); return { accountToConnect, isActiveTabExtension, activeTabOrigin: activeTab.origin, connectedAccounts, mostRecentOverviewPage: getMostRecentOverviewPage(state), permissions, selectedAddress, }; }; const mapDispatchToProps = (dispatch) => { return { addPermittedAccount: (origin, address) => dispatch(addPermittedAccount(origin, address)), removePermittedAccount: (origin, address) => dispatch(removePermittedAccount(origin, address)), setSelectedAddress: (address) => dispatch(setSelectedAddress(address)), }; }; const mergeProps = (stateProps, dispatchProps, ownProps) => { const { activeTabOrigin } = stateProps; return { ...ownProps, ...stateProps, ...dispatchProps, connectAccount: (address) => dispatchProps.addPermittedAccount(activeTabOrigin, address), removePermittedAccount: (address) => dispatchProps.removePermittedAccount(activeTabOrigin, address), }; }; export default connect( mapStateToProps, mapDispatchToProps, mergeProps, )(ConnectedAccounts);