From 8a8b29744a6287386b7011834c9e6b4bd9bde2c4 Mon Sep 17 00:00:00 2001 From: Mikhail Mikheev Date: Tue, 9 Apr 2019 12:48:17 +0400 Subject: [PATCH] action for fetching active token balances wip --- .../tokens/store/actions/fetchTokenBalances.js | 17 ++++++++++++++++- src/routes/safe/container/index.jsx | 9 ++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/logic/tokens/store/actions/fetchTokenBalances.js b/src/logic/tokens/store/actions/fetchTokenBalances.js index 90dd296e..f57d7fc2 100644 --- a/src/logic/tokens/store/actions/fetchTokenBalances.js +++ b/src/logic/tokens/store/actions/fetchTokenBalances.js @@ -1,10 +1,11 @@ // @flow -import type { Dispatch as ReduxDispatch } from 'redux' +import type { Dispatch as ReduxDispatch, GetState } from 'redux' import { Map, List } from 'immutable' import { type Token } from '~/logic/tokens/store/model/token' import { type GlobalState } from '~/store/index' import { calculateBalanceOf } from './fetchTokens' import { addTokens } from './saveTokens' +import { activeTokensSelector } from '~/logic/tokens/store/selectors' const fetchTokenBalances = (safeAddress: string, tokens: List) => async ( dispatch: ReduxDispatch, @@ -24,4 +25,18 @@ const fetchTokenBalances = (safeAddress: string, tokens: List) => async ( } } +export const fetchActiveTokenBalances = (safeAddress: string) => async ( + dispatch: ReduxDispatch, + getState: GetState, +) => { + try { + const state = getState() + const activeTokens = activeTokensSelector(state) + dispatch(fetchTokenBalances(safeAddress, activeTokens)) + } catch (err) { + // eslint-disable-next-line + console.error('Error while loading active tokens from storage:', err) + } +} + export default fetchTokenBalances diff --git a/src/routes/safe/container/index.jsx b/src/routes/safe/container/index.jsx index f026809b..19fc9bf5 100644 --- a/src/routes/safe/container/index.jsx +++ b/src/routes/safe/container/index.jsx @@ -35,18 +35,17 @@ class SafeView extends React.PureComponent { componentDidUpdate(prevProps) { const { - safe, fetchTokenBalances, loadActiveTokens, activeTokens, + fetchTokenBalances, loadActiveTokens, activeTokens, safeUrl, } = this.props if (prevProps.safe) { return } - if (safe) { - const safeAddress = safe.get('address') - loadActiveTokens(safeAddress) + if (safeUrl) { + loadActiveTokens(safeUrl) if (activeTokens.size) { - fetchTokenBalances(safeAddress, activeTokens) + fetchTokenBalances(safeUrl, activeTokens) } } }