You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.6 KiB
61 lines
1.6 KiB
import { connect } from 'react-redux';
|
|
import { compose } from 'redux';
|
|
import { withRouter } from 'react-router-dom';
|
|
import {
|
|
toggleAccountMenu,
|
|
showAccountDetail,
|
|
lockMetamask,
|
|
hideWarning,
|
|
} from '../../../store/actions';
|
|
import {
|
|
getAddressConnectedSubjectMap,
|
|
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,
|
|
addressConnectedSubjectMap: getAddressConnectedSubjectMap(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);
|
|
|