1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-27 12:56:01 +01:00
metamask-extension/ui/app/pages/connected-accounts/connected-accounts.container.js

54 lines
1.9 KiB
JavaScript
Raw Normal View History

2020-05-15 20:53:52 +02:00
import { connect } from 'react-redux'
import ConnectedAccounts from './connected-accounts.component'
import {
getAccountToConnectToActiveTab,
getOrderedConnectedAccountsForActiveTab,
getPermissionsForActiveTab,
getSelectedAddress,
} from '../../selectors'
import { addPermittedAccount, removePermittedAccount, setSelectedAddress } from '../../store/actions'
import { getMostRecentOverviewPage } from '../../ducks/history/history'
2020-05-15 20:53:52 +02:00
const EXT_PROTOCOLS = ['chrome-extension:', 'moz-extension:']
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)
const isActiveTabExtension = EXT_PROTOCOLS.includes(activeTab.protocol)
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,
}
}
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: origin } = stateProps
return {
...ownProps,
...stateProps,
...dispatchProps,
addPermittedAccount: (address) => dispatchProps.addPermittedAccount(origin, address),
removePermittedAccount: (address) => dispatchProps.removePermittedAccount(origin, address),
}
}
export default connect(mapStateToProps, mapDispatchToProps, mergeProps)(ConnectedAccounts)