diff options
author | Fabio Berger <me@fabioberger.com> | 2018-01-29 20:25:51 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-01-29 20:25:51 +0800 |
commit | 6c1409b00db68dcd88b42806efef1e91bb1abed2 (patch) | |
tree | f5b362a0306474ea46bc72e3d0dc43786191888a | |
parent | 542a1a11b9adc2db07e99cf1cba4b4f6fb24983d (diff) | |
download | dexon-0x-contracts-6c1409b00db68dcd88b42806efef1e91bb1abed2.tar.gz dexon-0x-contracts-6c1409b00db68dcd88b42806efef1e91bb1abed2.tar.zst dexon-0x-contracts-6c1409b00db68dcd88b42806efef1e91bb1abed2.zip |
Fix bug related to balance/allowance fetching being async
-rw-r--r-- | packages/website/ts/components/token_balances.tsx | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/website/ts/components/token_balances.tsx b/packages/website/ts/components/token_balances.tsx index ecafe5432..776ccb16e 100644 --- a/packages/website/ts/components/token_balances.tsx +++ b/packages/website/ts/components/token_balances.tsx @@ -133,6 +133,20 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala if (!_.isEqual(nextProps.trackedTokens, this.props.trackedTokens)) { const newTokens = _.difference(nextProps.trackedTokens, this.props.trackedTokens); const newTokenAddresses = _.map(newTokens, token => token.address); + // Add placeholder entry for this token to the state, since fetching the + // balance/allowance is asynchronous + const trackedTokenStateByAddress = this.state.trackedTokenStateByAddress; + for (const tokenAddress of newTokenAddresses) { + trackedTokenStateByAddress[tokenAddress] = { + balance: new BigNumber(0), + allowance: new BigNumber(0), + isLoaded: false, + }; + } + this.setState({ + trackedTokenStateByAddress, + }); + // Fetch the actual balance/allowance. this._fetchBalancesAndAllowancesAsync(newTokenAddresses); } } |