aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfragosti <francesco.agosti93@gmail.com>2018-11-02 04:49:09 +0800
committerfragosti <francesco.agosti93@gmail.com>2018-11-02 04:49:09 +0800
commit9fd931f7991398b9a6331d7bc5b8cd7a41491be9 (patch)
tree6ecef620c98e5d667479ca0c2e7b709617453fc8
parent57fba86154451a247dc008a9080e1e65145e6778 (diff)
downloaddexon-sol-tools-9fd931f7991398b9a6331d7bc5b8cd7a41491be9.tar.gz
dexon-sol-tools-9fd931f7991398b9a6331d7bc5b8cd7a41491be9.tar.zst
dexon-sol-tools-9fd931f7991398b9a6331d7bc5b8cd7a41491be9.zip
feat: better handle errors in async fetches
-rw-r--r--packages/instant/src/redux/async_data.ts16
1 files changed, 10 insertions, 6 deletions
diff --git a/packages/instant/src/redux/async_data.ts b/packages/instant/src/redux/async_data.ts
index f8dbe9fd4..716558409 100644
--- a/packages/instant/src/redux/async_data.ts
+++ b/packages/instant/src/redux/async_data.ts
@@ -3,19 +3,20 @@ import * as _ from 'lodash';
import { BIG_NUMBER_ZERO } from '../constants';
import { assetUtils } from '../util/asset';
import { coinbaseApi } from '../util/coinbase_api';
+import { errorFlasher } from '../util/error_flasher';
import { actions } from './actions';
import { Store } from './store';
export const asyncData = {
fetchEthPriceAndDispatchToStore: async (store: Store) => {
- let ethUsdPrice = BIG_NUMBER_ZERO;
try {
- ethUsdPrice = await coinbaseApi.getEthUsdPrice();
- } catch (e) {
- // ignore
- } finally {
+ const ethUsdPrice = await coinbaseApi.getEthUsdPrice();
store.dispatch(actions.updateEthUsdPrice(ethUsdPrice));
+ } catch (e) {
+ const errorMessage = 'Error fetching ETH/USD price';
+ errorFlasher.flashNewErrorMessage(store.dispatch, errorMessage);
+ store.dispatch(actions.updateEthUsdPrice(BIG_NUMBER_ZERO));
}
},
fetchAvailableAssetDatasAndDispatchToStore: async (store: Store) => {
@@ -26,7 +27,10 @@ export const asyncData = {
const assets = assetUtils.createAssetsFromAssetDatas(assetDatas, assetMetaDataMap, network);
store.dispatch(actions.setAvailableAssets(assets));
} catch (e) {
- // ignore
+ const errorMessage = 'Error fetching available assets';
+ errorFlasher.flashNewErrorMessage(store.dispatch, errorMessage);
+ // On error, just specify that none are available
+ store.dispatch(actions.setAvailableAssets([]));
}
}
},