@lifi/widget 3.29.1 → 3.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.d.ts +1 -1
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +3 -2
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
- package/dist/esm/components/AmountInput/PriceFormHelperText.d.ts +1 -1
- package/dist/esm/components/AmountInput/PriceFormHelperText.js +3 -2
- package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
- package/dist/esm/components/ChainSelect/ChainSelect.js +35 -18
- package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
- package/dist/esm/components/ChainSelect/useChainSelect.d.ts +1 -1
- package/dist/esm/components/ChainSelect/useChainSelect.js +3 -3
- package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
- package/dist/esm/components/Chains/AllChainsAvatar.d.ts +7 -0
- package/dist/esm/components/Chains/AllChainsAvatar.js +77 -0
- package/dist/esm/components/Chains/AllChainsAvatar.js.map +1 -0
- package/dist/esm/components/Chains/ChainList.d.ts +2 -1
- package/dist/esm/components/Chains/ChainList.js +2 -2
- package/dist/esm/components/Chains/ChainList.js.map +1 -1
- package/dist/esm/components/Chains/ChainSearchInput.js +2 -2
- package/dist/esm/components/Chains/ChainSearchInput.js.map +1 -1
- package/dist/esm/components/Chains/SelectChainContent.js +1 -1
- package/dist/esm/components/Chains/SelectChainContent.js.map +1 -1
- package/dist/esm/components/Chains/VirtualizedChainList.d.ts +2 -1
- package/dist/esm/components/Chains/VirtualizedChainList.js +42 -10
- package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
- package/dist/esm/components/RouteCard/RouteCardEssentials.js +1 -1
- package/dist/esm/components/RouteCard/RouteCardEssentials.js.map +1 -1
- package/dist/esm/components/TokenList/TokenDetailsSheet.d.ts +1 -5
- package/dist/esm/components/TokenList/TokenDetailsSheet.js +4 -2
- package/dist/esm/components/TokenList/TokenDetailsSheet.js.map +1 -1
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +2 -2
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
- package/dist/esm/components/TokenList/TokenList.js +11 -53
- package/dist/esm/components/TokenList/TokenList.js.map +1 -1
- package/dist/esm/components/TokenList/TokenListItem.d.ts +1 -1
- package/dist/esm/components/TokenList/TokenListItem.js +29 -25
- package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
- package/dist/esm/components/TokenList/VirtualizedTokenList.js +56 -37
- package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
- package/dist/esm/components/TokenList/types.d.ts +6 -10
- package/dist/esm/components/TokenList/useTokenSelect.js +3 -4
- package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
- package/dist/esm/components/TransactionDetails.js +2 -2
- package/dist/esm/components/TransactionDetails.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/hooks/useAccountsBalancesData.d.ts +6 -0
- package/dist/esm/hooks/useAccountsBalancesData.js +64 -0
- package/dist/esm/hooks/useAccountsBalancesData.js.map +1 -0
- package/dist/esm/hooks/useFilteredByTokenBalances.d.ts +8 -0
- package/dist/esm/hooks/useFilteredByTokenBalances.js +69 -0
- package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -0
- package/dist/esm/hooks/useListHeight.d.ts +0 -1
- package/dist/esm/hooks/useListHeight.js +0 -1
- package/dist/esm/hooks/useListHeight.js.map +1 -1
- package/dist/esm/hooks/useToken.d.ts +2 -2
- package/dist/esm/hooks/useToken.js +13 -11
- package/dist/esm/hooks/useToken.js.map +1 -1
- package/dist/esm/hooks/useTokenAddressBalance.d.ts +2 -3
- package/dist/esm/hooks/useTokenAddressBalance.js +10 -14
- package/dist/esm/hooks/useTokenAddressBalance.js.map +1 -1
- package/dist/esm/hooks/useTokenBalances.d.ts +6 -9
- package/dist/esm/hooks/useTokenBalances.js +57 -72
- package/dist/esm/hooks/useTokenBalances.js.map +1 -1
- package/dist/esm/hooks/useTokenBalancesQueries.d.ts +11 -0
- package/dist/esm/hooks/useTokenBalancesQueries.js +74 -0
- package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -0
- package/dist/esm/hooks/useTokens.d.ts +6 -6
- package/dist/esm/hooks/useTokens.js +78 -70
- package/dist/esm/hooks/useTokens.js.map +1 -1
- package/dist/esm/i18n/bn.json +3 -3
- package/dist/esm/i18n/de.json +3 -3
- package/dist/esm/i18n/en.json +3 -3
- package/dist/esm/i18n/es.json +3 -3
- package/dist/esm/i18n/fr.json +3 -3
- package/dist/esm/i18n/hi.json +3 -3
- package/dist/esm/i18n/id.json +3 -3
- package/dist/esm/i18n/it.json +3 -3
- package/dist/esm/i18n/ja.json +3 -3
- package/dist/esm/i18n/ko.json +3 -3
- package/dist/esm/i18n/pl.json +3 -3
- package/dist/esm/i18n/pt.json +3 -3
- package/dist/esm/i18n/th.json +3 -3
- package/dist/esm/i18n/tr.json +3 -3
- package/dist/esm/i18n/uk.json +3 -3
- package/dist/esm/i18n/vi.json +3 -3
- package/dist/esm/i18n/zh.json +3 -3
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +6 -1
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -1
- package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +2 -4
- package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +1 -1
- package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
- package/dist/esm/stores/chains/createChainOrderStore.d.ts +3 -2
- package/dist/esm/stores/chains/createChainOrderStore.js +13 -8
- package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
- package/dist/esm/stores/chains/types.d.ts +2 -0
- package/dist/esm/stores/chains/useChainOrder.js +5 -1
- package/dist/esm/stores/chains/useChainOrder.js.map +1 -1
- package/dist/esm/types/token.d.ts +7 -2
- package/dist/esm/utils/chainType.d.ts +1 -0
- package/dist/esm/utils/chainType.js +2 -0
- package/dist/esm/utils/chainType.js.map +1 -1
- package/dist/esm/utils/token.d.ts +8 -0
- package/dist/esm/utils/token.js +29 -0
- package/dist/esm/utils/token.js.map +1 -0
- package/dist/esm/utils/tokenList.d.ts +13 -0
- package/dist/esm/utils/tokenList.js +106 -0
- package/dist/esm/utils/tokenList.js.map +1 -0
- package/package.json +7 -7
- package/package.json.tmp +6 -6
- package/src/components/AmountInput/AmountInputEndAdornment.tsx +3 -2
- package/src/components/AmountInput/PriceFormHelperText.tsx +3 -2
- package/src/components/ChainSelect/ChainSelect.tsx +112 -40
- package/src/components/ChainSelect/useChainSelect.ts +3 -3
- package/src/components/Chains/AllChainsAvatar.tsx +113 -0
- package/src/components/Chains/ChainList.tsx +3 -0
- package/src/components/Chains/ChainSearchInput.tsx +2 -2
- package/src/components/Chains/SelectChainContent.tsx +1 -0
- package/src/components/Chains/VirtualizedChainList.tsx +80 -12
- package/src/components/RouteCard/RouteCardEssentials.tsx +1 -1
- package/src/components/TokenList/TokenDetailsSheet.tsx +4 -9
- package/src/components/TokenList/TokenDetailsSheetContent.tsx +2 -6
- package/src/components/TokenList/TokenList.tsx +57 -129
- package/src/components/TokenList/TokenListItem.tsx +191 -166
- package/src/components/TokenList/VirtualizedTokenList.tsx +88 -48
- package/src/components/TokenList/types.ts +14 -10
- package/src/components/TokenList/useTokenSelect.ts +3 -4
- package/src/components/TransactionDetails.tsx +2 -2
- package/src/config/version.ts +1 -1
- package/src/hooks/useAccountsBalancesData.ts +101 -0
- package/src/hooks/useFilteredByTokenBalances.ts +101 -0
- package/src/hooks/useListHeight.ts +0 -1
- package/src/hooks/useToken.ts +26 -14
- package/src/hooks/useTokenAddressBalance.ts +14 -20
- package/src/hooks/useTokenBalances.ts +81 -80
- package/src/hooks/useTokenBalancesQueries.ts +94 -0
- package/src/hooks/useTokens.ts +118 -90
- package/src/i18n/bn.json +3 -3
- package/src/i18n/de.json +3 -3
- package/src/i18n/en.json +3 -3
- package/src/i18n/es.json +3 -3
- package/src/i18n/fr.json +3 -3
- package/src/i18n/hi.json +3 -3
- package/src/i18n/id.json +3 -3
- package/src/i18n/it.json +3 -3
- package/src/i18n/ja.json +3 -3
- package/src/i18n/ko.json +3 -3
- package/src/i18n/pl.json +3 -3
- package/src/i18n/pt.json +3 -3
- package/src/i18n/th.json +3 -3
- package/src/i18n/tr.json +3 -3
- package/src/i18n/uk.json +3 -3
- package/src/i18n/vi.json +3 -3
- package/src/i18n/zh.json +3 -3
- package/src/pages/SelectTokenPage/SearchTokenInput.tsx +5 -0
- package/src/pages/SelectTokenPage/SelectTokenPage.tsx +7 -13
- package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +1 -1
- package/src/stores/chains/createChainOrderStore.ts +17 -8
- package/src/stores/chains/types.ts +2 -0
- package/src/stores/chains/useChainOrder.ts +5 -1
- package/src/types/token.ts +11 -2
- package/src/utils/chainType.ts +2 -0
- package/src/utils/token.ts +65 -0
- package/src/utils/tokenList.ts +172 -0
- package/dist/esm/components/TokenList/utils.d.ts +0 -2
- package/dist/esm/components/TokenList/utils.js +0 -35
- package/dist/esm/components/TokenList/utils.js.map +0 -1
- package/src/components/TokenList/utils.ts +0 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteCardEssentials.js","sourceRoot":"","sources":["../../../../src/components/RouteCard/RouteCardEssentials.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,gBAAgB,MAAM,sCAAsC,CAAA;AACnE,OAAO,sBAAsB,MAAM,4CAA4C,CAAA;AAC/E,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAGrD,MAAM,CAAC,MAAM,mBAAmB,GAAuC,CAAC,EACtE,KAAK,GACN,EAAE,EAAE;IACH,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CACrC,KAAK,CAAC,KAAK,CAAC,MAAM,CAChB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAC9D,CAAC,CACF,CACF,CAAA;IACD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,GAC3C,+BAA+B,CAAC,KAAK,CAAC,CAAA;IACxC,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC1D,OAAO,CACL,MAAC,GAAG,IACF,EAAE,EAAE;YACF,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,eAAe;YAC/B,IAAI,EAAE,CAAC;YACP,EAAE,EAAE,CAAC;SACN,aAED,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,EAC3B,MAAC,GAAG,IACF,EAAE,EAAE;oBACF,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;iBACrB,aAED,KAAC,mBAAmB,IAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,iBAAiB,YAEjC,MAAC,GAAG,IACF,EAAE,EAAE;gCACF,OAAO,EAAE,MAAM;gCACf,EAAE,EAAE,GAAG;gCACP,UAAU,EAAE,QAAQ;6BACrB,aAED,KAAC,cAAc,IAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,YACnC,KAAC,sBAAsB,IAAC,QAAQ,EAAC,SAAS,GAAG,GAC9B,EACjB,KAAC,UAAU,kBACG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,EACnD,EAAE,EAAE;wCACF,QAAQ,EAAE,EAAE;wCACZ,KAAK,EAAE,cAAc;wCACrB,UAAU,EAAE,GAAG;wCACf,UAAU,EAAE,CAAC;qCACd,YAEA,iBAAiB;
|
|
1
|
+
{"version":3,"file":"RouteCardEssentials.js","sourceRoot":"","sources":["../../../../src/components/RouteCard/RouteCardEssentials.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,2 @@
|
|
|
1
1
|
import type { TokenDetailsSheetBase } from './types.js';
|
|
2
|
-
|
|
3
|
-
chainId: number | undefined;
|
|
4
|
-
}
|
|
5
|
-
export declare const TokenDetailsSheet: import("react").ForwardRefExoticComponent<TokenDetailsSheetProps & import("react").RefAttributes<TokenDetailsSheetBase>>;
|
|
6
|
-
export {};
|
|
2
|
+
export declare const TokenDetailsSheet: import("react").ForwardRefExoticComponent<import("react").RefAttributes<TokenDetailsSheetBase>>;
|
|
@@ -2,15 +2,17 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { forwardRef, useImperativeHandle, useRef, useState } from 'react';
|
|
3
3
|
import { BottomSheet } from '../BottomSheet/BottomSheet.js';
|
|
4
4
|
import { TokenDetailsSheetContent } from './TokenDetailsSheetContent.js';
|
|
5
|
-
export const TokenDetailsSheet = forwardRef((
|
|
5
|
+
export const TokenDetailsSheet = forwardRef((_, ref) => {
|
|
6
6
|
const bottomSheetRef = useRef(null);
|
|
7
7
|
const [tokenAddress, setTokenAddress] = useState(undefined);
|
|
8
|
+
const [chainId, setChainId] = useState(undefined);
|
|
8
9
|
const [withoutContractAddress, setWithoutContractAddress] = useState(false);
|
|
9
10
|
useImperativeHandle(ref, () => ({
|
|
10
11
|
isOpen: () => bottomSheetRef.current?.isOpen(),
|
|
11
|
-
open: (address, noContractAddress) => {
|
|
12
|
+
open: (address, noContractAddress, chainId) => {
|
|
12
13
|
setTokenAddress(address);
|
|
13
14
|
setWithoutContractAddress(noContractAddress);
|
|
15
|
+
setChainId(chainId);
|
|
14
16
|
bottomSheetRef.current?.open();
|
|
15
17
|
},
|
|
16
18
|
close: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenDetailsSheet.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenDetailsSheet.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"TokenDetailsSheet.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenDetailsSheet.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AAGxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAwB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;IAC5E,MAAM,cAAc,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAA;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC9C,SAAS,CACV,CAAA;IACD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAA;IACrE,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE3E,mBAAmB,CACjB,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACL,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE;QAC9C,IAAI,EAAE,CAAC,OAAe,EAAE,iBAA0B,EAAE,OAAe,EAAE,EAAE;YACrE,eAAe,CAAC,OAAO,CAAC,CAAA;YACxB,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;YAC5C,UAAU,CAAC,OAAO,CAAC,CAAA;YACnB,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA;QAChC,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QACjC,CAAC;KACF,CAAC,EACF,EAAE,CACH,CAAA;IAED,OAAO,CACL,KAAC,WAAW,IAAC,GAAG,EAAE,cAAc,EAAE,WAAW,kBAC3C,KAAC,wBAAwB,IACvB,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,OAAO,GAChB,GACU,CACf,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -7,7 +7,7 @@ import { forwardRef, useMemo } from 'react';
|
|
|
7
7
|
import { useTranslation } from 'react-i18next';
|
|
8
8
|
import { useAvailableChains } from '../../hooks/useAvailableChains.js';
|
|
9
9
|
import { useExplorer } from '../../hooks/useExplorer.js';
|
|
10
|
-
import {
|
|
10
|
+
import { useToken } from '../../hooks/useToken.js';
|
|
11
11
|
import { shortenAddress } from '../../utils/wallet.js';
|
|
12
12
|
import { TokenAvatar } from '../Avatar/TokenAvatar.js';
|
|
13
13
|
import { CardIconButton } from '../Card/CardIconButton.js';
|
|
@@ -17,7 +17,7 @@ export const TokenDetailsSheetContent = forwardRef(({ tokenAddress, chainId, wit
|
|
|
17
17
|
const { t } = useTranslation();
|
|
18
18
|
const { getAddressLink } = useExplorer();
|
|
19
19
|
const { getChainById } = useAvailableChains();
|
|
20
|
-
const { token, isLoading } =
|
|
20
|
+
const { token, isLoading } = useToken(chainId, tokenAddress, true);
|
|
21
21
|
const chain = useMemo(() => getChainById(chainId), [chainId, getChainById]);
|
|
22
22
|
const copyContractAddress = async (e) => {
|
|
23
23
|
e.stopPropagation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenDetailsSheetContent.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenDetailsSheetContent.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,2BAA2B,CAAA;AAC7C,OAAO,kBAAkB,MAAM,wCAAwC,CAAA;AACvE,OAAO,gBAAgB,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,UAAU,EAA0B,OAAO,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TokenDetailsSheetContent.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenDetailsSheetContent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,76 +1,34 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useAccount } from '@lifi/wallet-management';
|
|
3
2
|
import { Box } from '@mui/material';
|
|
4
|
-
import { useEffect } from 'react';
|
|
5
|
-
import { useChain } from '../../hooks/useChain.js';
|
|
3
|
+
import { memo, useEffect } from 'react';
|
|
6
4
|
import { useDebouncedWatch } from '../../hooks/useDebouncedWatch.js';
|
|
7
5
|
import { useTokenBalances } from '../../hooks/useTokenBalances.js';
|
|
8
|
-
import { useTokenSearch } from '../../hooks/useTokenSearch.js';
|
|
9
6
|
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
|
|
10
|
-
import {
|
|
7
|
+
import { useChainOrderStore } from '../../stores/chains/ChainOrderStore.js';
|
|
11
8
|
import { FormKeyHelper } from '../../stores/form/types.js';
|
|
12
9
|
import { useFieldValues } from '../../stores/form/useFieldValues.js';
|
|
13
10
|
import { WidgetEvent } from '../../types/events.js';
|
|
14
|
-
import { getConfigItemSets, isFormItemAllowed } from '../../utils/item.js';
|
|
15
11
|
import { TokenNotFound } from './TokenNotFound.js';
|
|
16
12
|
import { useTokenSelect } from './useTokenSelect.js';
|
|
17
|
-
import { filteredTokensComparator } from './utils.js';
|
|
18
13
|
import { VirtualizedTokenList } from './VirtualizedTokenList.js';
|
|
19
|
-
export const TokenList = ({ formType, parentRef, height, onClick
|
|
14
|
+
export const TokenList = memo(({ formType, parentRef, height, onClick }) => {
|
|
20
15
|
const emitter = useWidgetEvents();
|
|
21
16
|
const [selectedChainId, selectedTokenAddress] = useFieldValues(FormKeyHelper.getChainKey(formType), FormKeyHelper.getTokenKey(formType));
|
|
17
|
+
const isAllNetworks = useChainOrderStore((state) => state.isAllNetworks);
|
|
22
18
|
const [tokenSearchFilter] = useDebouncedWatch(320, 'tokenSearchFilter');
|
|
23
|
-
const { tokens
|
|
24
|
-
const { chain: selectedChain, isLoading: isSelectedChainLoading } = useChain(selectedChainId);
|
|
25
|
-
const { account } = useAccount({
|
|
26
|
-
chainType: selectedChain?.chainType,
|
|
27
|
-
});
|
|
28
|
-
const { tokens: chainTokens, tokensWithBalance, isLoading: isTokensLoading, isBalanceLoading, featuredTokens, popularTokens, } = useTokenBalances(selectedChainId);
|
|
29
|
-
let filteredTokens = (tokensWithBalance ?? chainTokens ?? []);
|
|
30
|
-
const normalizedSearchFilter = tokenSearchFilter?.replaceAll('$', '');
|
|
31
|
-
const searchFilter = normalizedSearchFilter?.toUpperCase() ?? '';
|
|
32
|
-
const filteredConfigTokens = getConfigItemSets(configTokens, (tokens) => new Set(tokens
|
|
33
|
-
.filter((t) => t.chainId === selectedChainId)
|
|
34
|
-
.map((t) => t.address)), formType);
|
|
35
|
-
// Get the appropriate allow/deny lists based on formType
|
|
36
|
-
filteredTokens = filteredTokens.filter((token) => token.chainId === selectedChainId &&
|
|
37
|
-
isFormItemAllowed(token, filteredConfigTokens, formType, (t) => t.address));
|
|
38
|
-
filteredTokens = tokenSearchFilter
|
|
39
|
-
? filteredTokens
|
|
40
|
-
.filter((token) => token.name?.toUpperCase().includes(searchFilter) ||
|
|
41
|
-
token.symbol
|
|
42
|
-
.toUpperCase()
|
|
43
|
-
// Replace ₮ with T for USD₮0
|
|
44
|
-
.replaceAll('₮', 'T')
|
|
45
|
-
.includes(searchFilter) ||
|
|
46
|
-
token.address.toUpperCase().includes(searchFilter))
|
|
47
|
-
.sort(filteredTokensComparator(searchFilter))
|
|
48
|
-
: filteredTokens;
|
|
49
|
-
const tokenSearchEnabled = !isTokensLoading &&
|
|
50
|
-
!filteredTokens.length &&
|
|
51
|
-
!!tokenSearchFilter &&
|
|
52
|
-
!!selectedChainId;
|
|
53
|
-
const { token: searchedToken, isLoading: isSearchedTokenLoading } = useTokenSearch(selectedChainId, normalizedSearchFilter, tokenSearchEnabled, formType);
|
|
54
|
-
const isLoading = isTokensLoading ||
|
|
55
|
-
isSelectedChainLoading ||
|
|
56
|
-
(tokenSearchEnabled && isSearchedTokenLoading);
|
|
57
|
-
const tokens = filteredTokens.length
|
|
58
|
-
? filteredTokens
|
|
59
|
-
: searchedToken
|
|
60
|
-
? [searchedToken]
|
|
61
|
-
: filteredTokens;
|
|
19
|
+
const { tokens, withCategories, isTokensLoading, isBalanceLoading, isSearchLoading, } = useTokenBalances(selectedChainId, formType, isAllNetworks, tokenSearchFilter);
|
|
62
20
|
const handleTokenClick = useTokenSelect(formType, onClick);
|
|
63
|
-
const showCategories =
|
|
64
|
-
!tokenSearchFilter;
|
|
65
|
-
// biome-ignore lint/correctness/useExhaustiveDependencies: Should fire only when search filter changes
|
|
21
|
+
const showCategories = withCategories && !tokenSearchFilter && !isAllNetworks;
|
|
66
22
|
useEffect(() => {
|
|
23
|
+
const normalizedSearchFilter = tokenSearchFilter?.replaceAll('$', '');
|
|
67
24
|
if (normalizedSearchFilter) {
|
|
68
25
|
emitter.emit(WidgetEvent.TokenSearch, {
|
|
69
26
|
value: normalizedSearchFilter,
|
|
70
27
|
tokens,
|
|
71
28
|
});
|
|
72
29
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
};
|
|
30
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
31
|
+
}, [tokenSearchFilter, tokens, emitter]);
|
|
32
|
+
return (_jsxs(Box, { ref: parentRef, style: { height, overflow: 'auto' }, children: [!tokens.length && !isTokensLoading && !isSearchLoading ? (_jsx(TokenNotFound, { formType: formType })) : null, _jsx(VirtualizedTokenList, { tokens: tokens, scrollElementRef: parentRef, chainId: selectedChainId, isLoading: isTokensLoading || isSearchLoading, isBalanceLoading: isBalanceLoading, showCategories: showCategories, onClick: handleTokenClick, selectedTokenAddress: selectedTokenAddress, isAllNetworks: isAllNetworks })] }));
|
|
33
|
+
});
|
|
76
34
|
//# sourceMappingURL=TokenList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenList.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenList.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"TokenList.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TokenListItemAvatarProps, TokenListItemButtonProps, TokenListItemProps } from './types.js';
|
|
2
2
|
export declare const TokenListItem: React.FC<TokenListItemProps>;
|
|
3
|
-
export declare const TokenListItemAvatar:
|
|
3
|
+
export declare const TokenListItemAvatar: import("react").MemoExoticComponent<({ token }: TokenListItemAvatarProps) => import("react/jsx-runtime").JSX.Element>;
|
|
4
4
|
export declare const TokenListItemButton: React.FC<TokenListItemButtonProps>;
|
|
5
5
|
export declare const TokenListItemSkeleton: () => import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
export declare const TokenAmountSkeleton: React.FC;
|
|
@@ -1,40 +1,37 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { ChainType } from '@lifi/sdk';
|
|
3
3
|
import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
|
|
4
|
-
import { Avatar, Box, ListItemAvatar, ListItemText, Skeleton, Slide, Typography, } from '@mui/material';
|
|
5
|
-
import { memo, useRef, useState } from 'react';
|
|
4
|
+
import { Avatar, Box, ListItemAvatar, ListItemText, listItemSecondaryActionClasses, Skeleton, Slide, Typography, } from '@mui/material';
|
|
5
|
+
import { memo, useMemo, useRef, useState } from 'react';
|
|
6
6
|
import { useTranslation } from 'react-i18next';
|
|
7
7
|
import { useLongPress } from '../../hooks/useLongPress.js';
|
|
8
8
|
import { formatTokenAmount, formatTokenPrice } from '../../utils/format.js';
|
|
9
9
|
import { shortenAddress } from '../../utils/wallet.js';
|
|
10
|
+
import { TokenAvatar } from '../Avatar/TokenAvatar.js';
|
|
10
11
|
import { ListItemButton } from '../ListItem/ListItemButton.js';
|
|
11
12
|
import { IconButton, ListItem } from './TokenList.style.js';
|
|
12
|
-
export const TokenListItem = memo(({ onClick, size, start, token, chain,
|
|
13
|
-
const handleClick = (e) => {
|
|
14
|
-
e.stopPropagation();
|
|
15
|
-
onClick?.(token.address, chain?.id);
|
|
16
|
-
};
|
|
13
|
+
export const TokenListItem = memo(({ onClick, size, start, token, chain, isBalanceLoading, startAdornment, endAdornment, selected, onShowTokenDetails, }) => {
|
|
17
14
|
return (_jsxs(ListItem, { style: {
|
|
18
15
|
height: `${size}px`,
|
|
19
16
|
transform: `translateY(${start}px)`,
|
|
20
17
|
padding: 0,
|
|
21
|
-
}, children: [startAdornment, _jsx(TokenListItemButton, { token: token,
|
|
18
|
+
}, children: [startAdornment, _jsx(TokenListItemButton, { token: token, isBalanceLoading: isBalanceLoading, onClick: onClick, chain: chain, selected: selected, onShowTokenDetails: onShowTokenDetails }), endAdornment] }));
|
|
22
19
|
});
|
|
23
|
-
export const TokenListItemAvatar = ({ token
|
|
20
|
+
export const TokenListItemAvatar = memo(({ token }) => {
|
|
24
21
|
const [isImageLoading, setIsImageLoading] = useState(true);
|
|
25
22
|
return (_jsx(Avatar, { src: token.logoURI, alt: token.symbol, sx: (theme) => isImageLoading ? { bgcolor: theme.vars.palette.grey[300] } : null, onLoad: () => setIsImageLoading(false), children: token.symbol?.[0] }));
|
|
26
|
-
};
|
|
27
|
-
const OpenTokenDetailsButton = ({ tokenAddress, withoutContractAddress, onClick, }) => {
|
|
23
|
+
});
|
|
24
|
+
const OpenTokenDetailsButton = ({ tokenAddress, withoutContractAddress, chainId, onClick, }) => {
|
|
28
25
|
if (!tokenAddress) {
|
|
29
26
|
return null;
|
|
30
27
|
}
|
|
31
28
|
return (_jsx(IconButton, { size: "small", onClick: (e) => {
|
|
32
29
|
e.stopPropagation();
|
|
33
30
|
e.currentTarget.blur(); // Remove focus to prevent accessibility issues when opening drawer
|
|
34
|
-
onClick(tokenAddress, withoutContractAddress);
|
|
31
|
+
onClick(tokenAddress, withoutContractAddress, chainId);
|
|
35
32
|
}, children: _jsx(InfoOutlinedIcon, {}) }));
|
|
36
33
|
};
|
|
37
|
-
export const TokenListItemButton = ({ onClick, token, chain,
|
|
34
|
+
export const TokenListItemButton = memo(({ onClick, token, chain, isBalanceLoading, selected, onShowTokenDetails, }) => {
|
|
38
35
|
const { t } = useTranslation();
|
|
39
36
|
const container = useRef(null);
|
|
40
37
|
const timeoutId = useRef(undefined);
|
|
@@ -53,13 +50,17 @@ export const TokenListItemButton = ({ onClick, token, chain, accountAddress, isB
|
|
|
53
50
|
setShowAddress(false);
|
|
54
51
|
}
|
|
55
52
|
};
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
53
|
+
const handleClick = (e) => {
|
|
54
|
+
e.stopPropagation();
|
|
55
|
+
onClick?.(token.address, token.chainId);
|
|
56
|
+
};
|
|
57
|
+
const tokenAmount = useMemo(() => formatTokenAmount(token.amount, token.decimals), [token.amount, token.decimals]);
|
|
58
|
+
const tokenPrice = useMemo(() => formatTokenPrice(token.amount, token.priceUSD, token.decimals), [token.amount, token.priceUSD, token.decimals]);
|
|
59
|
+
const longPressEvents = useLongPress(() => onShowTokenDetails(token.address, withoutContractAddress, token.chainId));
|
|
60
|
+
return (_jsxs(ListItemButton, { onClick: handleClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, ...longPressEvents, dense: true, selected: selected, sx: {
|
|
60
61
|
height: 60,
|
|
61
62
|
marginBottom: '4px',
|
|
62
|
-
}, children: [_jsx(ListItemAvatar, { children: _jsx(TokenListItemAvatar, { token: token }) }), _jsx(ListItemText, { primary: token.symbol, slotProps: {
|
|
63
|
+
}, children: [_jsx(ListItemAvatar, { children: chain ? (_jsx(TokenAvatar, { token: token, chain: chain, tokenAvatarSize: 40, chainAvatarSize: 16 })) : (_jsx(TokenListItemAvatar, { token: token })) }), _jsx(ListItemText, { primary: token.symbol, slotProps: {
|
|
63
64
|
secondary: {
|
|
64
65
|
component: 'div',
|
|
65
66
|
},
|
|
@@ -74,7 +75,7 @@ export const TokenListItemButton = ({ onClick, token, chain, accountAddress, isB
|
|
|
74
75
|
position: 'absolute',
|
|
75
76
|
}, appear: false, mountOnEnter: true, children: _jsx(Box, { sx: {
|
|
76
77
|
display: 'flex',
|
|
77
|
-
}, children: _jsx(OpenTokenDetailsButton, { tokenAddress: token.address, withoutContractAddress: withoutContractAddress, onClick: onShowTokenDetails }) }) }) })] })) : (_jsxs(Box, { ref: container, sx: {
|
|
78
|
+
}, children: _jsx(OpenTokenDetailsButton, { tokenAddress: token.address, withoutContractAddress: withoutContractAddress, chainId: token.chainId, onClick: onShowTokenDetails }) }) }) })] })) : (_jsxs(Box, { ref: container, sx: {
|
|
78
79
|
position: 'relative',
|
|
79
80
|
height: 20,
|
|
80
81
|
}, children: [_jsx(Slide, { direction: "down", in: !showAddress, container: container.current, style: {
|
|
@@ -89,25 +90,28 @@ export const TokenListItemButton = ({ onClick, token, chain, accountAddress, isB
|
|
|
89
90
|
display: 'flex',
|
|
90
91
|
alignItems: 'center',
|
|
91
92
|
pt: 0.125,
|
|
92
|
-
}, children: shortenAddress(token.address) }), _jsx(OpenTokenDetailsButton, { tokenAddress: token.address, withoutContractAddress: withoutContractAddress, onClick: onShowTokenDetails })] }) })] })) }),
|
|
93
|
+
}, children: shortenAddress(token.address) }), _jsx(OpenTokenDetailsButton, { tokenAddress: token.address, withoutContractAddress: withoutContractAddress, chainId: token.chainId, onClick: onShowTokenDetails })] }) })] })) }), isBalanceLoading ? (_jsx(TokenAmountSkeleton, {})) : (_jsxs(Box, { sx: { textAlign: 'right' }, children: [token.amount ? (_jsx(Typography, { noWrap: true, sx: {
|
|
93
94
|
fontWeight: 600,
|
|
94
95
|
}, title: tokenAmount, children: t('format.tokenAmount', {
|
|
95
96
|
value: tokenAmount,
|
|
96
|
-
}) })) : null,
|
|
97
|
+
}) })) : null, token.amount && token.priceUSD ? (_jsx(Typography, { "data-price": token.priceUSD, sx: {
|
|
97
98
|
fontWeight: 500,
|
|
98
99
|
fontSize: 12,
|
|
99
100
|
color: 'text.secondary',
|
|
100
101
|
}, children: t('format.currency', {
|
|
101
102
|
value: tokenPrice,
|
|
102
|
-
}) })) : null] }))
|
|
103
|
-
};
|
|
103
|
+
}) })) : null] }))] }));
|
|
104
|
+
});
|
|
104
105
|
export const TokenListItemSkeleton = () => {
|
|
105
|
-
return (_jsxs(ListItem, { secondaryAction: _jsx(TokenAmountSkeleton, {}), disablePadding: true, sx: {
|
|
106
|
+
return (_jsxs(ListItem, { secondaryAction: _jsx(TokenAmountSkeleton, {}), disablePadding: true, sx: (theme) => ({
|
|
106
107
|
position: 'relative',
|
|
107
108
|
flexDirection: 'row',
|
|
108
109
|
alignItems: 'center',
|
|
109
110
|
padding: 0,
|
|
110
|
-
|
|
111
|
+
[`& .${listItemSecondaryActionClasses.root}`]: {
|
|
112
|
+
right: theme.spacing(1.5),
|
|
113
|
+
},
|
|
114
|
+
}), children: [_jsx(ListItemAvatar, { children: _jsx(Skeleton, { variant: "circular", width: 40, height: 40, sx: { marginLeft: 1.5, marginRight: 2 } }) }), _jsx(ListItemText, { primary: _jsx(Skeleton, { variant: "text", width: 56, height: 24 }), secondary: _jsx(Skeleton, { variant: "text", width: 96, height: 16 }) })] }));
|
|
111
115
|
};
|
|
112
116
|
export const TokenAmountSkeleton = () => {
|
|
113
117
|
return (_jsxs(Box, { sx: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenListItem.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenListItem.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"TokenListItem.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenListItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +1,68 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Typography } from '@mui/material';
|
|
3
3
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
4
|
-
import { useCallback, useEffect, useRef } from 'react';
|
|
4
|
+
import { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
5
5
|
import { useTranslation } from 'react-i18next';
|
|
6
|
+
import { useAvailableChains } from '../../hooks/useAvailableChains.js';
|
|
6
7
|
import { TokenDetailsSheet } from './TokenDetailsSheet.js';
|
|
7
8
|
import { List } from './TokenList.style.js';
|
|
8
9
|
import { TokenListItem, TokenListItemSkeleton } from './TokenListItem.js';
|
|
9
|
-
|
|
10
|
+
const tokenItemHeight = 64; // 60 + 4px margin-bottom
|
|
11
|
+
export const VirtualizedTokenList = ({ tokens, scrollElementRef, chainId, selectedTokenAddress, isLoading, isBalanceLoading, showCategories, onClick, isAllNetworks, }) => {
|
|
10
12
|
const { t } = useTranslation();
|
|
13
|
+
const { chains } = useAvailableChains();
|
|
14
|
+
// Create Set for O(1) chain lookup instead of O(n) find
|
|
15
|
+
const chainsSet = useMemo(() => {
|
|
16
|
+
if (!chains) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
return new Map(chains.map((chain) => [chain.id, chain]));
|
|
20
|
+
}, [chains]);
|
|
11
21
|
const tokenDetailsSheetRef = useRef(null);
|
|
12
|
-
const onShowTokenDetails = useCallback((tokenAddress, noContractAddress) => {
|
|
13
|
-
tokenDetailsSheetRef.current?.open(tokenAddress, noContractAddress);
|
|
22
|
+
const onShowTokenDetails = useCallback((tokenAddress, noContractAddress, chainId) => {
|
|
23
|
+
tokenDetailsSheetRef.current?.open(tokenAddress, noContractAddress, chainId);
|
|
14
24
|
}, []);
|
|
15
25
|
const getItemKey = useCallback((index) => {
|
|
16
|
-
|
|
26
|
+
const token = tokens[index];
|
|
27
|
+
return `${token.chainId}-${token.address}-${index}`;
|
|
17
28
|
}, [tokens]);
|
|
18
|
-
const
|
|
29
|
+
const estimateSize = useCallback((index) => {
|
|
30
|
+
const currentToken = tokens[index];
|
|
31
|
+
// Base size for TokenListItem
|
|
32
|
+
let size = tokenItemHeight;
|
|
33
|
+
// Early return if categories are not shown
|
|
34
|
+
if (!showCategories) {
|
|
35
|
+
return size;
|
|
36
|
+
}
|
|
37
|
+
const previousToken = tokens[index - 1];
|
|
38
|
+
// Adjust size for the first featured token
|
|
39
|
+
if (currentToken.featured && index === 0) {
|
|
40
|
+
size += 24;
|
|
41
|
+
}
|
|
42
|
+
// Adjust size based on changes between the current and previous tokens
|
|
43
|
+
const isCategoryChanged = (previousToken?.amount && !currentToken.amount) ||
|
|
44
|
+
(previousToken?.featured && !currentToken.featured) ||
|
|
45
|
+
(previousToken?.popular && !currentToken.popular);
|
|
46
|
+
if (isCategoryChanged) {
|
|
47
|
+
size += 32;
|
|
48
|
+
}
|
|
49
|
+
return size;
|
|
50
|
+
}, [tokens, showCategories]);
|
|
51
|
+
// Chunk the tokens for infinite loading simulation
|
|
52
|
+
const virtualizerConfig = useMemo(() => ({
|
|
19
53
|
count: tokens.length,
|
|
20
54
|
overscan: 5,
|
|
21
|
-
paddingEnd: 12,
|
|
22
55
|
getScrollElement: () => scrollElementRef.current,
|
|
23
|
-
estimateSize
|
|
24
|
-
// Base size for TokenListItem
|
|
25
|
-
let size = 64;
|
|
26
|
-
// Early return if categories are not shown
|
|
27
|
-
if (!showCategories) {
|
|
28
|
-
return size;
|
|
29
|
-
}
|
|
30
|
-
const currentToken = tokens[index];
|
|
31
|
-
const previousToken = tokens[index - 1];
|
|
32
|
-
// Adjust size for the first featured token
|
|
33
|
-
if (currentToken.featured && index === 0) {
|
|
34
|
-
size += 24;
|
|
35
|
-
}
|
|
36
|
-
// Adjust size based on changes between the current and previous tokens
|
|
37
|
-
const isCategoryChanged = (previousToken?.amount && !currentToken.amount) ||
|
|
38
|
-
(previousToken?.featured && !currentToken.featured) ||
|
|
39
|
-
(previousToken?.popular && !currentToken.popular);
|
|
40
|
-
if (isCategoryChanged) {
|
|
41
|
-
size += 32;
|
|
42
|
-
}
|
|
43
|
-
return size;
|
|
44
|
-
},
|
|
56
|
+
estimateSize,
|
|
45
57
|
getItemKey,
|
|
46
|
-
});
|
|
58
|
+
}), [tokens.length, estimateSize, getItemKey, scrollElementRef]);
|
|
59
|
+
const { getVirtualItems, getTotalSize, scrollToIndex, measure } = useVirtualizer(virtualizerConfig);
|
|
60
|
+
// Address the issue of disappearing tokens on rerender
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (scrollElementRef.current) {
|
|
63
|
+
measure();
|
|
64
|
+
}
|
|
65
|
+
}, [measure, scrollElementRef.current]);
|
|
47
66
|
// biome-ignore lint/correctness/useExhaustiveDependencies: run only when chainId changes
|
|
48
67
|
useEffect(() => {
|
|
49
68
|
// Scroll to the top of the list when switching the chains
|
|
@@ -52,13 +71,11 @@ export const VirtualizedTokenList = ({ account, tokens, scrollElementRef, chainI
|
|
|
52
71
|
}
|
|
53
72
|
// Close the token details sheet when switching the chains
|
|
54
73
|
tokenDetailsSheetRef.current?.close();
|
|
55
|
-
}, [scrollToIndex, chainId, getVirtualItems]);
|
|
56
|
-
if (isLoading) {
|
|
57
|
-
return (_jsx(List, { disablePadding: true, children: Array.from({ length: 3 }).map((_, index) => (_jsx(TokenListItemSkeleton, {}, index))) }));
|
|
58
|
-
}
|
|
74
|
+
}, [scrollToIndex, isAllNetworks, chainId, getVirtualItems]);
|
|
59
75
|
return (_jsxs(_Fragment, { children: [_jsx(List, { className: "long-list", style: { height: getTotalSize() }, disablePadding: true, children: getVirtualItems().map((item) => {
|
|
60
76
|
const currentToken = tokens[item.index];
|
|
61
77
|
const previousToken = tokens[item.index - 1];
|
|
78
|
+
const chain = chainsSet?.get(currentToken.chainId);
|
|
62
79
|
const isFirstFeaturedToken = currentToken.featured && item.index === 0;
|
|
63
80
|
const isTransitionFromFeaturedTokens = previousToken?.featured && !currentToken.featured;
|
|
64
81
|
const isTransitionFromMyTokens = previousToken?.amount && !currentToken.amount;
|
|
@@ -68,7 +85,7 @@ export const VirtualizedTokenList = ({ account, tokens, scrollElementRef, chainI
|
|
|
68
85
|
const shouldShowAllTokensCategory = isTransitionFromMyTokens ||
|
|
69
86
|
isTransitionFromFeaturedTokens ||
|
|
70
87
|
(previousToken?.popular && !currentToken.popular);
|
|
71
|
-
const startAdornmentLabel = showCategories
|
|
88
|
+
const startAdornmentLabel = !isAllNetworks && showCategories
|
|
72
89
|
? (() => {
|
|
73
90
|
if (isFirstFeaturedToken) {
|
|
74
91
|
return t('main.featuredTokens');
|
|
@@ -85,7 +102,9 @@ export const VirtualizedTokenList = ({ account, tokens, scrollElementRef, chainI
|
|
|
85
102
|
return null;
|
|
86
103
|
})()
|
|
87
104
|
: null;
|
|
88
|
-
|
|
105
|
+
const isSelected = selectedTokenAddress === currentToken.address &&
|
|
106
|
+
chainId === currentToken.chainId;
|
|
107
|
+
return (_jsx(TokenListItem, { onClick: onClick, size: item.size, start: item.start, token: currentToken, chain: isAllNetworks ? chain : undefined, selected: isSelected, onShowTokenDetails: onShowTokenDetails, isBalanceLoading: isBalanceLoading, startAdornment: startAdornmentLabel ? (_jsx(Typography, { sx: {
|
|
89
108
|
fontSize: 14,
|
|
90
109
|
fontWeight: 600,
|
|
91
110
|
lineHeight: '16px',
|
|
@@ -93,6 +112,6 @@ export const VirtualizedTokenList = ({ account, tokens, scrollElementRef, chainI
|
|
|
93
112
|
pt: isFirstFeaturedToken ? 0 : 1,
|
|
94
113
|
pb: 1,
|
|
95
114
|
}, children: startAdornmentLabel })) : null }, item.key));
|
|
96
|
-
}) }), _jsx(TokenDetailsSheet, { ref: tokenDetailsSheetRef,
|
|
115
|
+
}) }), _jsx(TokenDetailsSheet, { ref: tokenDetailsSheetRef }), isLoading && (_jsx(List, { disablePadding: true, sx: { cursor: 'default' }, children: Array.from({ length: 3 }).map((_, index) => (_jsx(TokenListItemSkeleton, {}, index))) }))] }));
|
|
97
116
|
};
|
|
98
117
|
//# sourceMappingURL=VirtualizedTokenList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualizedTokenList.js","sourceRoot":"","sources":["../../../../src/components/TokenList/VirtualizedTokenList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"VirtualizedTokenList.js","sourceRoot":"","sources":["../../../../src/components/TokenList/VirtualizedTokenList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { ExtendedChain } from '@lifi/sdk';
|
|
2
|
-
import type {
|
|
3
|
-
import type { MouseEventHandler, RefObject } from 'react';
|
|
2
|
+
import type { RefObject } from 'react';
|
|
4
3
|
import type { FormType } from '../../stores/form/types.js';
|
|
5
4
|
import type { TokenAmount } from '../../types/token.js';
|
|
6
5
|
export interface TokenListProps {
|
|
@@ -10,16 +9,15 @@ export interface TokenListProps {
|
|
|
10
9
|
onClick?(): void;
|
|
11
10
|
}
|
|
12
11
|
export interface VirtualizedTokenListProps {
|
|
13
|
-
account: Account;
|
|
14
12
|
tokens: TokenAmount[];
|
|
15
13
|
scrollElementRef: RefObject<HTMLElement | null>;
|
|
16
14
|
isLoading: boolean;
|
|
17
15
|
isBalanceLoading: boolean;
|
|
18
16
|
chainId?: number;
|
|
19
|
-
chain?: ExtendedChain;
|
|
20
17
|
showCategories?: boolean;
|
|
21
18
|
onClick(tokenAddress: string, chainId?: number): void;
|
|
22
19
|
selectedTokenAddress?: string;
|
|
20
|
+
isAllNetworks: boolean;
|
|
23
21
|
}
|
|
24
22
|
export interface TokenListItemBaseProps {
|
|
25
23
|
onClick?(tokenAddress: string, chainId?: number): void;
|
|
@@ -27,9 +25,8 @@ export interface TokenListItemBaseProps {
|
|
|
27
25
|
start: number;
|
|
28
26
|
}
|
|
29
27
|
export interface TokenListItemProps extends TokenListItemBaseProps {
|
|
30
|
-
accountAddress?: string;
|
|
31
28
|
token: TokenAmount;
|
|
32
|
-
onShowTokenDetails: (tokenAddress: string, noContractAddress: boolean) => void;
|
|
29
|
+
onShowTokenDetails: (tokenAddress: string, noContractAddress: boolean, chainId: number) => void;
|
|
33
30
|
chain?: ExtendedChain;
|
|
34
31
|
isBalanceLoading?: boolean;
|
|
35
32
|
startAdornment?: React.ReactNode;
|
|
@@ -37,9 +34,8 @@ export interface TokenListItemProps extends TokenListItemBaseProps {
|
|
|
37
34
|
selected?: boolean;
|
|
38
35
|
}
|
|
39
36
|
export interface TokenListItemButtonProps {
|
|
40
|
-
onShowTokenDetails: (tokenAddress: string, noContractAddress: boolean) => void;
|
|
41
|
-
onClick?:
|
|
42
|
-
accountAddress?: string;
|
|
37
|
+
onShowTokenDetails: (tokenAddress: string, noContractAddress: boolean, chainId: number) => void;
|
|
38
|
+
onClick?(tokenAddress: string, chainId?: number): void;
|
|
43
39
|
token: TokenAmount;
|
|
44
40
|
chain?: ExtendedChain;
|
|
45
41
|
isBalanceLoading?: boolean;
|
|
@@ -50,6 +46,6 @@ export interface TokenListItemAvatarProps {
|
|
|
50
46
|
}
|
|
51
47
|
export interface TokenDetailsSheetBase {
|
|
52
48
|
isOpen(): void;
|
|
53
|
-
open(address: string, noContractAddress: boolean): void;
|
|
49
|
+
open(address: string, noContractAddress: boolean, chainId: number): void;
|
|
54
50
|
close(): void;
|
|
55
51
|
}
|