1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-11 20:27:12 +01:00
metamask-extension/ui/components/app/account-menu/account-menu.container.js
2021-09-09 10:14:07 -05:00

62 lines
1.6 KiB
JavaScript

import { connect } from 'react-redux';
import { compose } from 'redux';
import { withRouter } from 'react-router-dom';
import {
toggleAccountMenu,
showAccountDetail,
lockMetamask,
hideWarning,
} from '../../../store/actions';
import {
getAddressConnectedDomainMap,
getMetaMaskAccountsOrdered,
getMetaMaskKeyrings,
getOriginOfCurrentTab,
getSelectedAddress,
} from '../../../selectors';
import AccountMenu from './account-menu.component';
/**
* The min amount of accounts to show search field
*/
const SHOW_SEARCH_ACCOUNTS_MIN_COUNT = 5;
function mapStateToProps(state) {
const {
metamask: { isAccountMenuOpen },
} = state;
const accounts = getMetaMaskAccountsOrdered(state);
const origin = getOriginOfCurrentTab(state);
const selectedAddress = getSelectedAddress(state);
return {
isAccountMenuOpen,
addressConnectedDomainMap: getAddressConnectedDomainMap(state),
originOfCurrentTab: origin,
selectedAddress,
keyrings: getMetaMaskKeyrings(state),
accounts,
shouldShowAccountsSearch: accounts.length >= SHOW_SEARCH_ACCOUNTS_MIN_COUNT,
};
}
function mapDispatchToProps(dispatch) {
return {
toggleAccountMenu: () => dispatch(toggleAccountMenu()),
showAccountDetail: (address) => {
dispatch(showAccountDetail(address));
dispatch(toggleAccountMenu());
},
lockMetamask: () => {
dispatch(lockMetamask());
dispatch(hideWarning());
dispatch(toggleAccountMenu());
},
};
}
export default compose(
withRouter,
connect(mapStateToProps, mapDispatchToProps),
)(AccountMenu);