Skip to content

Commit cbe564b

Browse files
authored
refactor: using shared worker for fetching assets balances (#1666)
1 parent 2f43157 commit cbe564b

File tree

14 files changed

+483
-497
lines changed

14 files changed

+483
-497
lines changed

packages/extension-polkagate/src/components/contexts.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const ToastContext = React.createContext<({ show: (message: string) => void })>(
2727
const UserAddedChainContext = React.createContext<UserAddedChains>({});
2828
const GenesisHashOptionsContext = React.createContext<DropdownOption[]>([]);
2929
const AccountIconThemeContext = React.createContext<AccountIconThemeContextType>({ accountIconTheme: undefined, setAccountIconTheme: noop });
30+
const WorkerContext = React.createContext<Worker | undefined>(undefined);
3031

3132
export { AccountContext,
3233
AccountIconThemeContext,
@@ -44,4 +45,5 @@ export { AccountContext,
4445
SettingsContext,
4546
SigningReqContext,
4647
ToastContext,
47-
UserAddedChainContext };
48+
UserAddedChainContext,
49+
WorkerContext };

packages/extension-polkagate/src/fullscreen/accountDetails/components/AOC.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import React, { useCallback, useMemo, useState } from 'react';
1414
import { getValue } from '@polkadot/extension-polkagate/src/popup/account/util';
1515

1616
import { AssetLogo, FormatPrice, ShowBalance } from '../../../components';
17-
import { useApi, useNotifyOnChainChange, usePrices, useTranslation } from '../../../hooks';
17+
import { useApi, useNotifyOnChainChange, usePrices, useSelectedChains, useTranslation } from '../../../hooks';
1818
import getLogo2 from '../../../util/getLogo2';
1919

2020
interface Props {
@@ -120,6 +120,7 @@ function AOC ({ accountAssets, address, hideNumbers, mode = 'Detail', onclick, s
120120

121121
const api = useApi(address);
122122
const pricesInCurrencies = usePrices();
123+
const selectedChains = useSelectedChains();
123124

124125
useNotifyOnChainChange(address);
125126

@@ -128,12 +129,14 @@ function AOC ({ accountAssets, address, hideNumbers, mode = 'Detail', onclick, s
128129
const toggleAssets = useCallback(() => setShowMore(!showMore), [showMore]);
129130

130131
const assets = useMemo(() => {
131-
if (accountAssets && accountAssets.length > 0) {
132-
return accountAssets;
132+
if (accountAssets && accountAssets.length > 0 && selectedChains) {
133+
// filter non selected chains
134+
135+
return accountAssets.filter(({ genesisHash }) => selectedChains.includes(genesisHash));
133136
} else {
134137
return [undefined, undefined]; // two undefined to show two skeletons
135138
}
136-
}, [accountAssets]);
139+
}, [accountAssets, selectedChains]);
137140

138141
const shouldShowCursor = useMemo(() => (mode === 'Detail' && accountAssets && accountAssets.length > 5) || (mode !== 'Detail' && accountAssets && accountAssets.length > 6), [accountAssets, mode]);
139142

0 commit comments

Comments
 (0)