diff --git a/react/src/components/dashboard/receiveCoin/receiveCoin.js b/react/src/components/dashboard/receiveCoin/receiveCoin.js index a3214fb..1c13748 100644 --- a/react/src/components/dashboard/receiveCoin/receiveCoin.js +++ b/react/src/components/dashboard/receiveCoin/receiveCoin.js @@ -22,9 +22,12 @@ class ReceiveCoin extends React.Component { this.state = { openDropMenu: false, + hideZeroAdresses: false, }; this.openDropMenu = this.openDropMenu.bind(this); this.handleClickOutside = this.handleClickOutside.bind(this); + this.toggleVisibleAddress = this.toggleVisibleAddress.bind(this); + this.checkTotalBalance = this.checkTotalBalance.bind(this); } componentWillMount() { @@ -108,6 +111,47 @@ class ReceiveCoin extends React.Component { Store.dispatch(getNewKMDAddresses(this.props.coin, type)); } + toggleVisibleAddress() { + this.setState(Object.assign({}, this.state, { + hideZeroAddresses: !this.state.hideZeroAddresses, + })); + } + + checkTotalBalance() { + let _balance = '0'; + const _mode = this.props.mode; + + if (_mode === 'full') { + _balance = this.props.balance || 0; + } else if (_mode === 'basilisk') { + if (this.props.cache) { + const _cache = this.props.cache; + const _coin = this.props.coin; + const _address = this.props.activeAddress; + + if (_address && + _cache[_coin] && + _cache[_coin][_address] && + _cache[_coin][_address].getbalance && + _cache[_coin][_address].getbalance.data && + (_cache[_coin][_address].getbalance.data.balance || + _cache[_coin][_address].getbalance.data.interest)) { + const _regBalance = _cache[_coin][_address].getbalance.data.balance ? _cache[_coin][_address].getbalance.data.balance : 0; + const _regInterest = _cache[_coin][_address].getbalance.data.interest ? _cache[_coin][_address].getbalance.data.interest : 0; + + _balance = _regBalance + _regInterest; + } + } + } else if (_mode === 'native') { + if (this.props.balance && + this.props.balance.total) { + _balance = this.props.balance.total; + } + } + + return _balance; + } + renderAddressList(type) { const _addresses = this.props.addresses; const _cache = this.props.cache; @@ -136,9 +180,17 @@ class ReceiveCoin extends React.Component { _cache[_coin][address.address].getbalance.data.interest ? _cache[_coin][address.address].getbalance.data.interest : 'N/A'; } - items.push( - AddressItemRender.call(this, address, type) - ); + if (this.state.hideZeroAddresses) { + if (!this.hasNoAmount) { + items.push( + AddressItemRender.call(this, address, type) + ); + } + } else { + items.push( + AddressItemRender.call(this, address, type) + ); + } } return items; diff --git a/react/src/components/dashboard/receiveCoin/receiveCoin.render.js b/react/src/components/dashboard/receiveCoin/receiveCoin.render.js index 0894f8d..788988c 100644 --- a/react/src/components/dashboard/receiveCoin/receiveCoin.render.js +++ b/react/src/components/dashboard/receiveCoin/receiveCoin.render.js @@ -98,6 +98,23 @@ export const ReceiveCoinRender = function() {