1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-25 03:20:23 +01:00
metamask-extension/ui/pages/connected-accounts/connected-accounts.container.js

65 lines
1.9 KiB
JavaScript
Raw Normal View History

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