diff --git a/js/src/modals/DappPermissions/dappPermissions.js b/js/src/modals/DappPermissions/dappPermissions.js index 4cd7cc837..410dcf4b7 100644 --- a/js/src/modals/DappPermissions/dappPermissions.js +++ b/js/src/modals/DappPermissions/dappPermissions.js @@ -17,6 +17,7 @@ import { observer } from 'mobx-react'; import React, { Component, PropTypes } from 'react'; import { FormattedMessage } from 'react-intl'; +import { connect } from 'react-redux'; import { AccountCard, Portal, SectionList } from '~/ui'; import { CheckIcon, StarIcon, StarOutlineIcon } from '~/ui/Icons'; @@ -24,15 +25,16 @@ import { CheckIcon, StarIcon, StarOutlineIcon } from '~/ui/Icons'; import styles from './dappPermissions.css'; @observer -export default class DappPermissions extends Component { +class DappPermissions extends Component { static propTypes = { - store: PropTypes.object.isRequired + balances: PropTypes.object, + permissionStore: PropTypes.object.isRequired }; render () { - const { store } = this.props; + const { permissionStore } = this.props; - if (!store.modalOpen) { + if (!permissionStore.modalOpen) { return null; } @@ -50,7 +52,7 @@ export default class DappPermissions extends Component { /> } - onClose={ store.closeModal } + onClose={ permissionStore.closeModal } open title={
@@ -71,14 +73,15 @@ export default class DappPermissions extends Component { } renderAccount = (account) => { - const { store } = this.props; + const { balances, permissionStore } = this.props; + const balance = balances[account.address]; const onMakeDefault = () => { - store.setDefaultAccount(account.address); + permissionStore.setDefaultAccount(account.address); }; const onSelect = () => { - store.selectAccount(account.address); + permissionStore.selectAccount(account.address); }; let className; @@ -95,6 +98,7 @@ export default class DappPermissions extends Component {
@@ -114,3 +118,16 @@ export default class DappPermissions extends Component { ); } } + +function mapStateToProps (state) { + const { balances } = state.balances; + + return { + balances + }; +} + +export default connect( + mapStateToProps, + null +)(DappPermissions); diff --git a/js/src/modals/DappPermissions/dappPermissions.spec.js b/js/src/modals/DappPermissions/dappPermissions.spec.js index ea562a962..717ec3b20 100644 --- a/js/src/modals/DappPermissions/dappPermissions.spec.js +++ b/js/src/modals/DappPermissions/dappPermissions.spec.js @@ -16,13 +16,40 @@ import { shallow } from 'enzyme'; import React from 'react'; +import sinon from 'sinon'; import DappPermissions from './'; -function renderShallow (store = {}) { - return shallow( - - ); +let component; +let store; + +function createRedux () { + store = { + dispatch: sinon.stub(), + subscribe: sinon.stub(), + getState: () => { + return { + balances: { + balances: {} + } + }; + } + }; + + return store; +} + +function renderShallow (permissionStore = {}) { + component = shallow( + , + { + context: { + store: createRedux() + } + } + ).find('DappPermissions').shallow(); + + return component; } describe('modals/DappPermissions', () => { diff --git a/js/src/modals/VaultAccounts/vaultAccounts.js b/js/src/modals/VaultAccounts/vaultAccounts.js index 96f170f79..833b5805e 100644 --- a/js/src/modals/VaultAccounts/vaultAccounts.js +++ b/js/src/modals/VaultAccounts/vaultAccounts.js @@ -35,6 +35,7 @@ class VaultAccounts extends Component { static propTypes = { accounts: PropTypes.object.isRequired, + balances: PropTypes.object.isRequired, newError: PropTypes.func.isRequired, personalAccountsInfo: PropTypes.func.isRequired, vaultStore: PropTypes.object.isRequired @@ -105,7 +106,9 @@ class VaultAccounts extends Component { // (although that has defaults) and this one. A genrerix multi-select component // would be applicable going forward. (Originals passed in, new selections back) renderAccount = (account) => { + const { balances } = this.props; const { vaultName, selectedAccounts } = this.props.vaultStore; + const balance = balances[account.address]; const isInVault = account.meta.vault === vaultName; const isSelected = isInVault ? !selectedAccounts[account.address] @@ -119,6 +122,7 @@ class VaultAccounts extends Component {
{ return { + balances: { + balances: {} + }, personal: { accounts: ACCOUNTS } diff --git a/js/src/ui/AccountCard/accountCard.css b/js/src/ui/AccountCard/accountCard.css index 4799b1310..ae382374c 100644 --- a/js/src/ui/AccountCard/accountCard.css +++ b/js/src/ui/AccountCard/accountCard.css @@ -120,6 +120,9 @@ .accountName { font-weight: 700 !important; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } } diff --git a/js/src/ui/VaultCard/vaultCard.js b/js/src/ui/VaultCard/vaultCard.js index 5d04b9880..e105173e7 100644 --- a/js/src/ui/VaultCard/vaultCard.js +++ b/js/src/ui/VaultCard/vaultCard.js @@ -85,7 +85,10 @@ export default class VaultCard extends Component { { accounts.map((address) => { return ( - + - + { + const { balances } = this.props; + const balance = balances[account.address]; const makeDefaultAccount = () => { this.toggleAccountsDisplay(); return this.accountStore @@ -358,6 +361,7 @@ class ParityBar extends Component { > Object.assign({ signer: { pending: [] } }, state) + getState: () => Object.assign({ + balances: { + balances: {} + }, + signer: { + pending: [] + } + }, state) }; return store;