@lifi/widget 3.25.0-beta.4 → 3.25.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 +23 -0
- package/dist/esm/components/Chains/ChainList.d.ts +2 -3
- package/dist/esm/components/Chains/ChainList.js +4 -3
- package/dist/esm/components/Chains/ChainList.js.map +1 -1
- package/dist/esm/components/Chains/ChainList.style.js +10 -3
- package/dist/esm/components/Chains/ChainList.style.js.map +1 -1
- package/dist/esm/components/Chains/ChainListItem.d.ts +4 -1
- package/dist/esm/components/Chains/ChainListItem.js +14 -2
- package/dist/esm/components/Chains/ChainListItem.js.map +1 -1
- package/dist/esm/components/Chains/PinChainButton.d.ts +7 -0
- package/dist/esm/components/Chains/PinChainButton.js +34 -0
- package/dist/esm/components/Chains/PinChainButton.js.map +1 -0
- package/dist/esm/components/Chains/SelectChainContent.js +15 -16
- 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 +43 -9
- package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
- package/dist/esm/components/Messages/MinFromAmountUSDMessage.d.ts +6 -0
- package/dist/esm/components/Messages/MinFromAmountUSDMessage.js +15 -0
- package/dist/esm/components/Messages/MinFromAmountUSDMessage.js.map +1 -0
- package/dist/esm/components/Messages/WarningMessages.js +3 -0
- package/dist/esm/components/Messages/WarningMessages.js.map +1 -1
- package/dist/esm/components/Messages/useMessageQueue.js +15 -4
- package/dist/esm/components/Messages/useMessageQueue.js.map +1 -1
- package/dist/esm/components/TokenList/TokenDetailsSheet.js +0 -2
- package/dist/esm/components/TokenList/TokenDetailsSheet.js.map +1 -1
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +26 -2
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
- package/dist/esm/components/TokenList/TokenList.js +10 -1
- package/dist/esm/components/TokenList/TokenList.js.map +1 -1
- package/dist/esm/components/TokenList/TokenListItem.js +3 -1
- package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/config/version.js.map +1 -1
- package/dist/esm/hooks/useFromAmountThreshold.d.ts +4 -0
- package/dist/esm/hooks/useFromAmountThreshold.js +23 -0
- package/dist/esm/hooks/useFromAmountThreshold.js.map +1 -0
- package/dist/esm/hooks/useLongPress.d.ts +7 -0
- package/dist/esm/hooks/useLongPress.js +41 -0
- package/dist/esm/hooks/useLongPress.js.map +1 -0
- package/dist/esm/hooks/useTokenBalances.d.ts +1 -2
- package/dist/esm/hooks/useTokenBalances.js +2 -3
- package/dist/esm/hooks/useTokenBalances.js.map +1 -1
- package/dist/esm/hooks/useTokenSearch.d.ts +2 -2
- package/dist/esm/hooks/useTokenSearch.js.map +1 -1
- package/dist/esm/hooks/useTokens.d.ts +1 -2
- package/dist/esm/hooks/useTokens.js +1 -10
- package/dist/esm/hooks/useTokens.js.map +1 -1
- package/dist/esm/i18n/bn.json +4 -1
- package/dist/esm/i18n/de.json +4 -1
- package/dist/esm/i18n/en.json +4 -1
- package/dist/esm/i18n/es.json +4 -1
- package/dist/esm/i18n/fr.json +4 -1
- package/dist/esm/i18n/hi.json +4 -1
- package/dist/esm/i18n/id.json +4 -1
- package/dist/esm/i18n/it.json +4 -1
- package/dist/esm/i18n/ja.json +4 -1
- package/dist/esm/i18n/ko.json +4 -1
- package/dist/esm/i18n/pl.json +4 -1
- package/dist/esm/i18n/pt.json +4 -1
- package/dist/esm/i18n/th.json +4 -1
- package/dist/esm/i18n/tr.json +4 -1
- package/dist/esm/i18n/uk.json +4 -1
- package/dist/esm/i18n/vi.json +4 -1
- package/dist/esm/i18n/zh.json +4 -1
- package/dist/esm/stores/chains/ChainOrderStore.js +17 -5
- package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
- package/dist/esm/stores/chains/createChainOrderStore.js +19 -1
- package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
- package/dist/esm/stores/chains/types.d.ts +2 -0
- package/dist/esm/stores/header/useHeaderStore.js +2 -3
- package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
- package/dist/esm/types/widget.d.ts +1 -0
- package/dist/esm/types/widget.js.map +1 -1
- package/package.json +4 -4
- package/package.json.tmp +3 -3
- package/src/components/Chains/ChainList.style.tsx +10 -2
- package/src/components/Chains/ChainList.tsx +6 -5
- package/src/components/Chains/ChainListItem.tsx +29 -0
- package/src/components/Chains/PinChainButton.tsx +51 -0
- package/src/components/Chains/SelectChainContent.tsx +18 -21
- package/src/components/Chains/VirtualizedChainList.tsx +68 -20
- package/src/components/Messages/MinFromAmountUSDMessage.tsx +35 -0
- package/src/components/Messages/WarningMessages.tsx +8 -0
- package/src/components/Messages/useMessageQueue.ts +16 -4
- package/src/components/TokenList/TokenDetailsSheet.tsx +0 -2
- package/src/components/TokenList/TokenDetailsSheetContent.tsx +49 -1
- package/src/components/TokenList/TokenList.tsx +24 -1
- package/src/components/TokenList/TokenListItem.tsx +6 -0
- package/src/config/version.ts +1 -1
- package/src/hooks/useFromAmountThreshold.ts +31 -0
- package/src/hooks/useLongPress.ts +51 -0
- package/src/hooks/useTokenBalances.ts +3 -10
- package/src/hooks/useTokenSearch.ts +3 -3
- package/src/hooks/useTokens.ts +2 -29
- package/src/i18n/bn.json +4 -1
- package/src/i18n/de.json +4 -1
- package/src/i18n/en.json +4 -1
- package/src/i18n/es.json +4 -1
- package/src/i18n/fr.json +4 -1
- package/src/i18n/hi.json +4 -1
- package/src/i18n/id.json +4 -1
- package/src/i18n/it.json +4 -1
- package/src/i18n/ja.json +4 -1
- package/src/i18n/ko.json +4 -1
- package/src/i18n/pl.json +4 -1
- package/src/i18n/pt.json +4 -1
- package/src/i18n/th.json +4 -1
- package/src/i18n/tr.json +4 -1
- package/src/i18n/uk.json +4 -1
- package/src/i18n/vi.json +4 -1
- package/src/i18n/zh.json +4 -1
- package/src/stores/chains/ChainOrderStore.tsx +23 -5
- package/src/stores/chains/createChainOrderStore.ts +19 -1
- package/src/stores/chains/types.ts +2 -0
- package/src/stores/header/useHeaderStore.tsx +2 -9
- package/src/types/widget.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [3.25.0](https://github.com/lifinance/widget/compare/v3.25.0-beta.2...v3.25.0) (2025-07-28)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add market cap and volume to token details ([#475](https://github.com/lifinance/widget/issues/475)) ([3f4f0f3](https://github.com/lifinance/widget/commit/3f4f0f37783e60fbc5bf1eff3ddd369b5aeacc46))
|
|
11
|
+
* add minFromAmountUSD configuration option ([#480](https://github.com/lifinance/widget/issues/480)) ([b3b7648](https://github.com/lifinance/widget/commit/b3b7648e2cab2fd39f2258f132686008a2a0e26d))
|
|
12
|
+
* add pinned chains ([#474](https://github.com/lifinance/widget/issues/474)) ([2ccde57](https://github.com/lifinance/widget/commit/2ccde572babacc4c1e22b7f519fb935d10134118))
|
|
13
|
+
* add pointer events for token details ([#477](https://github.com/lifinance/widget/issues/477)) ([84332ec](https://github.com/lifinance/widget/commit/84332eccc3b118f81cd4811d77e786b641bd8989))
|
|
14
|
+
* add wallet ecosystems ordering ([#464](https://github.com/lifinance/widget/issues/464)) ([ca0b42a](https://github.com/lifinance/widget/commit/ca0b42a2c512a3808b6384db309d87b880cd4fc6))
|
|
15
|
+
* separate config for chain sidebar and routes ([#469](https://github.com/lifinance/widget/issues/469)) ([ed1d817](https://github.com/lifinance/widget/commit/ed1d81751d80c6ead9a18c368a8943c66e4b725e))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* filter out duplicate EVM connectors ([#468](https://github.com/lifinance/widget/issues/468)) ([bed5130](https://github.com/lifinance/widget/commit/bed51303bd1afc6078010e412483b194f48fc1f9))
|
|
21
|
+
* **format:** wrap hashes in messages for better display ([#465](https://github.com/lifinance/widget/issues/465)) ([83da273](https://github.com/lifinance/widget/commit/83da273ca8aef413d9314cd981dd11e9ad5d5f11))
|
|
22
|
+
* improve tx link handling for relayed txs ([#473](https://github.com/lifinance/widget/issues/473)) ([41c19c7](https://github.com/lifinance/widget/commit/41c19c78f119371a65cab99c2181357067fc4def))
|
|
23
|
+
* remove outer routes container causing unnecessary scrolling ([#476](https://github.com/lifinance/widget/issues/476)) ([21fa74d](https://github.com/lifinance/widget/commit/21fa74dbfcadf40a37589f63c8e162b538bee8f6))
|
|
24
|
+
* reorg token filters ([#485](https://github.com/lifinance/widget/issues/485)) ([d97e709](https://github.com/lifinance/widget/commit/d97e709e96675b125d3cdd52fb78a52f115d4cdc))
|
|
25
|
+
* token details should not have empty state on transition ([#488](https://github.com/lifinance/widget/issues/488)) ([b299eca](https://github.com/lifinance/widget/commit/b299ecaf19ac3c5430ca21e8bd6a91aec4c6f6af))
|
|
26
|
+
* update color mixing for Card and ListItemButton components ([#471](https://github.com/lifinance/widget/issues/471)) ([af33afd](https://github.com/lifinance/widget/commit/af33afdffae644267176346e80588b92d231d73b))
|
|
27
|
+
|
|
5
28
|
### [3.24.3](https://github.com/lifinance/widget/compare/v3.24.2...v3.24.3) (2025-07-04)
|
|
6
29
|
|
|
7
30
|
|
|
@@ -6,8 +6,7 @@ interface ChainListProps {
|
|
|
6
6
|
onSelect: (chain: ExtendedChain) => void;
|
|
7
7
|
selectedChainId?: number;
|
|
8
8
|
isLoading: boolean;
|
|
9
|
-
|
|
10
|
-
adjustForStickySearchInput?: boolean;
|
|
9
|
+
inExpansion: boolean;
|
|
11
10
|
}
|
|
12
|
-
export declare const ChainList: ({ parentRef, chains, onSelect, selectedChainId, isLoading,
|
|
11
|
+
export declare const ChainList: ({ parentRef, chains, onSelect, selectedChainId, isLoading, inExpansion, }: ChainListProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
12
|
export {};
|
|
@@ -4,14 +4,15 @@ import { useTranslation } from 'react-i18next';
|
|
|
4
4
|
import { SearchNotFound } from '../Search/SearchNotFound';
|
|
5
5
|
import { List, ListItemAvatar, ListItemButton, ListItemText, } from './ChainList.style';
|
|
6
6
|
import { VirtualizedChainList } from './VirtualizedChainList';
|
|
7
|
-
export const ChainList = ({ parentRef, chains, onSelect, selectedChainId, isLoading,
|
|
7
|
+
export const ChainList = ({ parentRef, chains, onSelect, selectedChainId, isLoading, inExpansion, }) => {
|
|
8
8
|
const { t } = useTranslation();
|
|
9
|
+
const itemsSize = inExpansion ? 'small' : 'medium';
|
|
9
10
|
if (isLoading) {
|
|
10
11
|
return (_jsx(List, { disablePadding: true, sx: { cursor: 'default' }, children: Array.from({ length: 3 }).map((_, index) => (_jsxs(ListItemButton, { size: itemsSize, sx: { pointerEvents: 'none' }, children: [_jsx(ListItemAvatar, { size: itemsSize, children: _jsx(Skeleton, { variant: "circular", width: itemsSize === 'small' ? 32 : 40, height: itemsSize === 'small' ? 32 : 40, sx: { marginRight: 2 } }) }), _jsx(ListItemText, { primary: _jsx(Skeleton, { variant: "text", width: '100%', height: itemsSize === 'small' ? 18 : 24 }), size: itemsSize })] }, index))) }));
|
|
11
12
|
}
|
|
12
13
|
if (!chains.length) {
|
|
13
|
-
return (_jsx(SearchNotFound, { message: t('info.message.emptyChainList'), adjustForStickySearchInput:
|
|
14
|
+
return (_jsx(SearchNotFound, { message: t('info.message.emptyChainList'), adjustForStickySearchInput: !inExpansion }));
|
|
14
15
|
}
|
|
15
|
-
return (_jsx(VirtualizedChainList, { scrollElementRef: parentRef, chains: chains, onSelect: onSelect, selectedChainId: selectedChainId, itemsSize: itemsSize }));
|
|
16
|
+
return (_jsx(VirtualizedChainList, { scrollElementRef: parentRef, chains: chains, onSelect: onSelect, selectedChainId: selectedChainId, itemsSize: itemsSize, withPinnedChains: inExpansion }));
|
|
16
17
|
};
|
|
17
18
|
//# sourceMappingURL=ChainList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainList.js","sourceRoot":"","sources":["../../../../src/components/Chains/ChainList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EACL,IAAI,EACJ,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"ChainList.js","sourceRoot":"","sources":["../../../../src/components/Chains/ChainList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EACL,IAAI,EACJ,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAW7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACxB,SAAS,EACT,MAAM,EACN,QAAQ,EACR,eAAe,EACf,SAAS,EACT,WAAW,GACI,EAAE,EAAE;IACnB,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAA;IAE9B,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IAElD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,KAAC,IAAI,IAAC,cAAc,QAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3C,MAAC,cAAc,IAEb,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,aAE7B,KAAC,cAAc,IAAC,IAAI,EAAE,SAAS,YAC7B,KAAC,QAAQ,IACP,OAAO,EAAC,UAAU,EAClB,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EACtC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EACvC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,GACtB,GACa,EACjB,KAAC,YAAY,IACX,OAAO,EACL,KAAC,QAAQ,IACP,OAAO,EAAC,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GACvC,EAEJ,IAAI,EAAE,SAAS,GACf,KArBG,KAAK,CAsBK,CAClB,CAAC,GACG,CACR,CAAA;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CACL,KAAC,cAAc,IACb,OAAO,EAAE,CAAC,CAAC,6BAA6B,CAAC,EACzC,0BAA0B,EAAE,CAAC,WAAW,GACxC,CACH,CAAA;IACH,CAAC;IAED,OAAO,CACL,KAAC,oBAAoB,IACnB,gBAAgB,EAAE,SAAS,EAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,WAAW,GAC7B,CACH,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ListItem as ListItemBase, listItemTextClasses, Avatar as MuiAvatar, List as MuiList, ListItemAvatar as MuiListItemAvatar, ListItemText as MuiListItemText, styled, } from '@mui/material';
|
|
2
|
-
import { ListItemButton as ListItemButtonBase } from '../
|
|
1
|
+
import { ListItem as ListItemBase, listItemButtonClasses, listItemTextClasses, Avatar as MuiAvatar, List as MuiList, ListItemAvatar as MuiListItemAvatar, ListItemText as MuiListItemText, styled, } from '@mui/material';
|
|
2
|
+
import { ListItemButton as ListItemButtonBase } from '../ListItemButton.js';
|
|
3
3
|
export const Avatar = styled(MuiAvatar)(({ size = 'medium' }) => ({
|
|
4
4
|
width: size === 'small' ? 32 : 40,
|
|
5
5
|
height: size === 'small' ? 32 : 40,
|
|
@@ -11,6 +11,9 @@ export const ListItemText = styled(MuiListItemText)(({ size = 'medium' }) => ({
|
|
|
11
11
|
[`.${listItemTextClasses.primary}`]: {
|
|
12
12
|
fontWeight: 500,
|
|
13
13
|
fontSize: size === 'small' ? '1rem' : '1.125rem',
|
|
14
|
+
textOverflow: 'ellipsis',
|
|
15
|
+
overflow: 'hidden',
|
|
16
|
+
whiteSpace: 'nowrap',
|
|
14
17
|
},
|
|
15
18
|
}));
|
|
16
19
|
export const ListItemButton = styled(ListItemButtonBase)(({ size = 'medium', theme }) => {
|
|
@@ -18,6 +21,7 @@ export const ListItemButton = styled(ListItemButtonBase)(({ size = 'medium', the
|
|
|
18
21
|
borderRadius: theme.vars.shape.borderRadius,
|
|
19
22
|
paddingLeft: size === 'small' ? theme.spacing(1) : theme.spacing(1.5),
|
|
20
23
|
height: size === 'small' ? 44 : 56,
|
|
24
|
+
width: '100%',
|
|
21
25
|
};
|
|
22
26
|
});
|
|
23
27
|
export const List = styled(MuiList)(({ theme }) => ({
|
|
@@ -30,9 +34,12 @@ export const List = styled(MuiList)(({ theme }) => ({
|
|
|
30
34
|
marginBottom: theme.spacing(1.5),
|
|
31
35
|
cursor: 'pointer',
|
|
32
36
|
}));
|
|
33
|
-
export const ListItem = styled(ListItemBase)(() => ({
|
|
37
|
+
export const ListItem = styled(ListItemBase)(({ theme }) => ({
|
|
34
38
|
position: 'absolute',
|
|
35
39
|
top: 0,
|
|
36
40
|
left: 0,
|
|
41
|
+
[`& .${listItemButtonClasses.root}`]: {
|
|
42
|
+
paddingRight: theme.spacing(1),
|
|
43
|
+
},
|
|
37
44
|
}));
|
|
38
45
|
//# sourceMappingURL=ChainList.style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainList.style.js","sourceRoot":"","sources":["../../../../src/components/Chains/ChainList.style.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,mBAAmB,EACnB,MAAM,IAAI,SAAS,EACnB,IAAI,IAAI,OAAO,EACf,cAAc,IAAI,iBAAiB,EACnC,YAAY,IAAI,eAAe,EAC/B,MAAM,GACP,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"ChainList.style.js","sourceRoot":"","sources":["../../../../src/components/Chains/ChainList.style.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,9 @@ interface ChainListItemProps {
|
|
|
6
6
|
itemsSize: 'small' | 'medium';
|
|
7
7
|
size: number;
|
|
8
8
|
start: number;
|
|
9
|
+
isPinned: boolean;
|
|
10
|
+
onPin: (chainId: number) => void;
|
|
11
|
+
withPin: boolean;
|
|
9
12
|
}
|
|
10
|
-
export declare const ChainListItem: import("react").MemoExoticComponent<({ chain, onSelect, selected, itemsSize, size, start, }: ChainListItemProps) => import("react/jsx-runtime").JSX.Element>;
|
|
13
|
+
export declare const ChainListItem: import("react").MemoExoticComponent<({ chain, onSelect, selected, itemsSize, size, start, isPinned, onPin, withPin, }: ChainListItemProps) => import("react/jsx-runtime").JSX.Element>;
|
|
11
14
|
export {};
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box } from '@mui/material';
|
|
2
3
|
import { memo } from 'react';
|
|
3
4
|
import { Avatar, ListItem, ListItemAvatar, ListItemButton, ListItemText, } from './ChainList.style';
|
|
4
|
-
|
|
5
|
+
import { PinChainButton, pinButtonClassName } from './PinChainButton';
|
|
6
|
+
export const ChainListItem = memo(({ chain, onSelect, selected, itemsSize, size, start, isPinned, onPin, withPin, }) => {
|
|
5
7
|
return (_jsx(ListItem, { style: {
|
|
6
8
|
height: `${size}px`,
|
|
7
9
|
transform: `translateY(${start}px)`,
|
|
8
10
|
padding: 0,
|
|
9
|
-
|
|
11
|
+
overflow: 'hidden',
|
|
12
|
+
}, sx: {
|
|
13
|
+
[`&:hover .${pinButtonClassName}`]: {
|
|
14
|
+
opacity: 1,
|
|
15
|
+
transform: 'translateY(0)',
|
|
16
|
+
},
|
|
17
|
+
}, children: _jsxs(ListItemButton, { onClick: () => onSelect(chain), selected: selected, size: itemsSize, children: [_jsx(ListItemAvatar, { size: itemsSize, children: _jsx(Avatar, { src: chain.logoURI, alt: chain.name, size: itemsSize, children: chain.name[0] }) }), _jsx(ListItemText, { primary: chain.name, size: itemsSize }), withPin && (_jsx(Box, { style: {
|
|
18
|
+
position: 'relative',
|
|
19
|
+
height: 28,
|
|
20
|
+
width: 28,
|
|
21
|
+
}, children: _jsx(PinChainButton, { isPinned: isPinned, onPin: () => onPin(chain.id) }) }))] }) }));
|
|
10
22
|
});
|
|
11
23
|
//# sourceMappingURL=ChainListItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainListItem.js","sourceRoot":"","sources":["../../../../src/components/Chains/ChainListItem.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,EACL,MAAM,EACN,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"ChainListItem.js","sourceRoot":"","sources":["../../../../src/components/Chains/ChainListItem.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAC5B,OAAO,EACL,MAAM,EACN,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAcrE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAC/B,CAAC,EACC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,OAAO,GACY,EAAE,EAAE;IACvB,OAAO,CACL,KAAC,QAAQ,IACP,KAAK,EAAE;YACL,MAAM,EAAE,GAAG,IAAI,IAAI;YACnB,SAAS,EAAE,cAAc,KAAK,KAAK;YACnC,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,QAAQ;SACnB,EACD,EAAE,EAAE;YACF,CAAC,YAAY,kBAAkB,EAAE,CAAC,EAAE;gBAClC,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,eAAe;aAC3B;SACF,YAED,MAAC,cAAc,IACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,SAAS,aAEf,KAAC,cAAc,IAAC,IAAI,EAAE,SAAS,YAC7B,KAAC,MAAM,IAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,YACzD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GACP,GACM,EACjB,KAAC,YAAY,IAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,GAAI,EACrD,OAAO,IAAI,CACV,KAAC,GAAG,IACF,KAAK,EAAE;wBACL,QAAQ,EAAE,UAAU;wBACpB,MAAM,EAAE,EAAE;wBACV,KAAK,EAAE,EAAE;qBACV,YAED,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAC5B,GACE,CACP,IACc,GACR,CACZ,CAAA;AACH,CAAC,CACF,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface PinChainButtonProps {
|
|
2
|
+
isPinned: boolean;
|
|
3
|
+
onPin: () => void;
|
|
4
|
+
}
|
|
5
|
+
export declare const pinButtonClassName = "pin-button";
|
|
6
|
+
export declare const PinChainButton: ({ isPinned, onPin }: PinChainButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import PushPinIcon from '@mui/icons-material/PushPin';
|
|
3
|
+
import PushPinOutlinedIcon from '@mui/icons-material/PushPinOutlined';
|
|
4
|
+
import { IconButton } from '@mui/material';
|
|
5
|
+
export const pinButtonClassName = 'pin-button';
|
|
6
|
+
const animationDuration = 225;
|
|
7
|
+
export const PinChainButton = ({ isPinned, onPin }) => {
|
|
8
|
+
const PinIcon = isPinned ? PushPinIcon : PushPinOutlinedIcon;
|
|
9
|
+
return (_jsx(IconButton, { className: pinButtonClassName, edge: "end", "aria-label": "pin", onClick: (e) => {
|
|
10
|
+
e.stopPropagation();
|
|
11
|
+
onPin();
|
|
12
|
+
}, sx: {
|
|
13
|
+
position: 'absolute',
|
|
14
|
+
top: 0,
|
|
15
|
+
left: 0,
|
|
16
|
+
height: 28,
|
|
17
|
+
width: 28,
|
|
18
|
+
transition: `opacity ${animationDuration}ms cubic-bezier(0.4, 0, 0.2, 1), transform ${animationDuration}ms cubic-bezier(0.4, 0, 0.2, 1)`,
|
|
19
|
+
...(isPinned
|
|
20
|
+
? {
|
|
21
|
+
opacity: 1,
|
|
22
|
+
transform: 'translateY(0)',
|
|
23
|
+
}
|
|
24
|
+
: {
|
|
25
|
+
opacity: 0,
|
|
26
|
+
transform: 'translateY(-50%)',
|
|
27
|
+
}),
|
|
28
|
+
}, children: _jsx(PinIcon, { sx: {
|
|
29
|
+
height: 20,
|
|
30
|
+
width: 20,
|
|
31
|
+
color: 'text.secondary',
|
|
32
|
+
} }) }));
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=PinChainButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PinChainButton.js","sourceRoot":"","sources":["../../../../src/components/Chains/PinChainButton.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW,MAAM,6BAA6B,CAAA;AACrD,OAAO,mBAAmB,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAO1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAA;AAC9C,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAuB,EAAE,EAAE;IACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAA;IAC5D,OAAO,CACL,KAAC,UAAU,IACT,SAAS,EAAE,kBAAkB,EAC7B,IAAI,EAAC,KAAK,gBACC,KAAK,EAChB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,eAAe,EAAE,CAAA;YACnB,KAAK,EAAE,CAAA;QACT,CAAC,EACD,EAAE,EAAE;YACF,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,WAAW,iBAAiB,8CAA8C,iBAAiB,iCAAiC;YACxI,GAAG,CAAC,QAAQ;gBACV,CAAC,CAAC;oBACE,OAAO,EAAE,CAAC;oBACV,SAAS,EAAE,eAAe;iBAC3B;gBACH,CAAC,CAAC;oBACE,OAAO,EAAE,CAAC;oBACV,SAAS,EAAE,kBAAkB;iBAC9B,CAAC;SACP,YAED,KAAC,OAAO,IACN,EAAE,EAAE;gBACF,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,gBAAgB;aACxB,GACD,GACS,CACd,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -19,35 +19,34 @@ export const SelectChainContent = memo(({ formType, onSelect, inExpansion }) =>
|
|
|
19
19
|
const [selectedChainId] = useFieldValues(FormKeyHelper.getChainKey(formType));
|
|
20
20
|
const inputRef = useRef(null);
|
|
21
21
|
const listRef = useRef(null);
|
|
22
|
-
const [
|
|
22
|
+
const [debouncedSearchValue, setDebouncedSearchValue] = useState('');
|
|
23
|
+
const filteredChains = useMemo(() => {
|
|
24
|
+
const value = debouncedSearchValue.toLowerCase();
|
|
25
|
+
return value
|
|
26
|
+
? (chains?.filter((chain) => chain.name.toLowerCase().includes(value)) ?? [])
|
|
27
|
+
: (chains ?? []);
|
|
28
|
+
}, [chains, debouncedSearchValue]);
|
|
23
29
|
const scrollToTop = useCallback(() => {
|
|
24
30
|
// Scroll widget container to top
|
|
25
31
|
if (!inExpansion && scrollableContainer) {
|
|
26
32
|
scrollableContainer.scrollTop = 0;
|
|
27
33
|
}
|
|
28
|
-
// Scroll chain list to top
|
|
29
|
-
if (inExpansion && listRef.current) {
|
|
30
|
-
listRef.current.scrollTop = 0;
|
|
31
|
-
}
|
|
32
34
|
}, [inExpansion, scrollableContainer]);
|
|
33
|
-
const debouncedFilterChains = useMemo(() => debounce((
|
|
34
|
-
|
|
35
|
-
const filtered = value
|
|
36
|
-
? chains?.filter((chain) => chain.name.toLowerCase().includes(value))
|
|
37
|
-
: chains;
|
|
38
|
-
setFilteredChains(filtered ?? []);
|
|
35
|
+
const debouncedFilterChains = useMemo(() => debounce((value) => {
|
|
36
|
+
setDebouncedSearchValue(value);
|
|
39
37
|
scrollToTop();
|
|
40
38
|
}, 250), [scrollToTop]);
|
|
41
39
|
const onSelectChainFallback = useCallback((chain) => {
|
|
42
40
|
setCurrentChain(chain.id);
|
|
43
41
|
}, [setCurrentChain]);
|
|
44
42
|
const onChange = useCallback(() => {
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
const value = inputRef.current?.value || '';
|
|
44
|
+
debouncedFilterChains(value);
|
|
45
|
+
}, [debouncedFilterChains]);
|
|
47
46
|
const onClear = useCallback(() => {
|
|
48
|
-
|
|
47
|
+
setDebouncedSearchValue('');
|
|
49
48
|
scrollToTop();
|
|
50
|
-
}, [
|
|
49
|
+
}, [scrollToTop]);
|
|
51
50
|
const listContainerHeight = useMemo(() => {
|
|
52
51
|
const fullContainerHeight = getWidgetMaxHeight(theme);
|
|
53
52
|
const heightValue = typeof fullContainerHeight === 'number'
|
|
@@ -55,6 +54,6 @@ export const SelectChainContent = memo(({ formType, onSelect, inExpansion }) =>
|
|
|
55
54
|
: fullContainerHeight;
|
|
56
55
|
return `calc(${heightValue} - ${searchHeaderHeight})`;
|
|
57
56
|
}, [theme]);
|
|
58
|
-
return (_jsxs(FullPageContainer, { disableGutters: true, children: [_jsx(ChainSearchInput, { inputRef: inputRef, inExpansion: inExpansion, onChange: onChange, onClear: onClear, searchHeaderHeight: searchHeaderHeight }), _jsx(Box, { ref: listRef, sx: inExpansion ? { height: listContainerHeight, overflow: 'auto' } : {}, children: _jsx(ChainList, { parentRef: listRef, chains: filteredChains, isLoading: isLoading, onSelect: onSelect ?? onSelectChainFallback, selectedChainId: selectedChainId,
|
|
57
|
+
return (_jsxs(FullPageContainer, { disableGutters: true, children: [_jsx(ChainSearchInput, { inputRef: inputRef, inExpansion: inExpansion, onChange: onChange, onClear: onClear, searchHeaderHeight: searchHeaderHeight }), _jsx(Box, { ref: listRef, sx: inExpansion ? { height: listContainerHeight, overflow: 'auto' } : {}, children: _jsx(ChainList, { parentRef: listRef, chains: filteredChains, isLoading: isLoading, onSelect: onSelect ?? onSelectChainFallback, selectedChainId: selectedChainId, inExpansion: inExpansion }) })] }));
|
|
59
58
|
});
|
|
60
59
|
//# sourceMappingURL=SelectChainContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectChainContent.js","sourceRoot":"","sources":["../../../../src/components/Chains/SelectChainContent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAiB,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAQrD,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAAsC,IAAI,CACvE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;IACtC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IACvE,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAA;IACvC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAA;IAC7D,MAAM,CAAC,eAAe,CAAC,GAAG,cAAc,CACtC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CACpC,CAAA;IACD,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"SelectChainContent.js","sourceRoot":"","sources":["../../../../src/components/Chains/SelectChainContent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ interface VirtualizedChainListProps {
|
|
|
6
6
|
onSelect: (chain: ExtendedChain) => void;
|
|
7
7
|
selectedChainId?: number;
|
|
8
8
|
itemsSize: 'small' | 'medium';
|
|
9
|
+
withPinnedChains: boolean;
|
|
9
10
|
}
|
|
10
|
-
export declare const VirtualizedChainList: ({ chains, onSelect, selectedChainId, itemsSize, scrollElementRef, }: VirtualizedChainListProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare const VirtualizedChainList: ({ chains, onSelect, selectedChainId, itemsSize, scrollElementRef, withPinnedChains, }: VirtualizedChainListProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
12
|
export {};
|
|
@@ -1,19 +1,33 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
3
|
-
import { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
3
|
+
import { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from 'react';
|
|
4
|
+
import { shallow } from 'zustand/shallow';
|
|
5
|
+
import { useChainOrderStore } from '../../stores/chains/ChainOrderStore';
|
|
4
6
|
import { List } from './ChainList.style';
|
|
5
7
|
import { ChainListItem } from './ChainListItem';
|
|
6
|
-
export const VirtualizedChainList = ({ chains, onSelect, selectedChainId, itemsSize, scrollElementRef, }) => {
|
|
7
|
-
const
|
|
8
|
+
export const VirtualizedChainList = ({ chains, onSelect, selectedChainId, itemsSize, scrollElementRef, withPinnedChains, }) => {
|
|
9
|
+
const selectedChainIdRef = useRef(selectedChainId); // Store the initial selected chain ID to scroll to it once chains are loaded
|
|
10
|
+
const hasScrolledRef = useRef(false);
|
|
11
|
+
const [pinnedChains, setPinnedChain] = useChainOrderStore((state) => [state.pinnedChains, state.setPinnedChain], shallow);
|
|
12
|
+
const onPin = useCallback((chainId) => {
|
|
13
|
+
setPinnedChain(chainId);
|
|
14
|
+
}, [setPinnedChain]);
|
|
8
15
|
const sortedChains = useMemo(() => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
if (!pinnedChains.length) {
|
|
17
|
+
return chains;
|
|
18
|
+
}
|
|
19
|
+
// Pinning logic: move pinned chains to the top of the list
|
|
20
|
+
const pinned = pinnedChains
|
|
21
|
+
.map((id) => chains.find((c) => c.id === id))
|
|
22
|
+
.filter(Boolean);
|
|
23
|
+
const pinnedIds = new Set(pinned.map((c) => c.id));
|
|
24
|
+
const rest = chains.filter((c) => !pinnedIds.has(c.id));
|
|
25
|
+
return [...pinned, ...rest];
|
|
26
|
+
}, [chains, pinnedChains]);
|
|
13
27
|
const getItemKey = useCallback((index) => {
|
|
14
28
|
return `${sortedChains[index].id}-${index}`;
|
|
15
29
|
}, [sortedChains]);
|
|
16
|
-
const { getVirtualItems, getTotalSize, measure } = useVirtualizer({
|
|
30
|
+
const { getVirtualItems, getTotalSize, measure, scrollToIndex, range } = useVirtualizer({
|
|
17
31
|
count: sortedChains.length,
|
|
18
32
|
overscan: 3,
|
|
19
33
|
paddingEnd: 0,
|
|
@@ -32,9 +46,29 @@ export const VirtualizedChainList = ({ chains, onSelect, selectedChainId, itemsS
|
|
|
32
46
|
measure();
|
|
33
47
|
}
|
|
34
48
|
}, [measure, scrollElementRef.current]);
|
|
49
|
+
useLayoutEffect(() => {
|
|
50
|
+
// Only scroll if sortedChains is not empty and we haven't scrolled yet
|
|
51
|
+
if (!hasScrolledRef.current && sortedChains.length > 0 && range) {
|
|
52
|
+
const selectedChainIndex = sortedChains.findIndex((chain) => chain.id === selectedChainIdRef.current);
|
|
53
|
+
if (selectedChainIndex !== -1) {
|
|
54
|
+
// Only scroll if the selected chain is not in the visible range
|
|
55
|
+
// +1 and -1 to account for partially visible items
|
|
56
|
+
if (range.startIndex + 1 > selectedChainIndex ||
|
|
57
|
+
range.endIndex - 1 < selectedChainIndex) {
|
|
58
|
+
requestAnimationFrame(() => {
|
|
59
|
+
scrollToIndex(selectedChainIndex, {
|
|
60
|
+
align: 'center',
|
|
61
|
+
behavior: 'smooth',
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
hasScrolledRef.current = true; // Mark as scrolled (when needed)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}, [sortedChains, scrollToIndex, range]);
|
|
35
69
|
return (_jsx(List, { className: "long-list", style: { height: getTotalSize() }, disablePadding: true, children: getVirtualItems().map((item) => {
|
|
36
70
|
const chain = sortedChains[item.index];
|
|
37
|
-
return (_jsx(ChainListItem, { chain: chain, onSelect: onSelect, selected: chain.id === selectedChainId, itemsSize: itemsSize, size: item.size, start: item.start }, item.key));
|
|
71
|
+
return (_jsx(ChainListItem, { chain: chain, onSelect: onSelect, selected: chain.id === selectedChainId, itemsSize: itemsSize, size: item.size, start: item.start, withPin: withPinnedChains, isPinned: pinnedChains.includes(chain.id), onPin: onPin }, item.key));
|
|
38
72
|
}) }));
|
|
39
73
|
};
|
|
40
74
|
//# sourceMappingURL=VirtualizedChainList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualizedChainList.js","sourceRoot":"","sources":["../../../../src/components/Chains/VirtualizedChainList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"VirtualizedChainList.js","sourceRoot":"","sources":["../../../../src/components/Chains/VirtualizedChainList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import WarningRounded from '@mui/icons-material/WarningRounded';
|
|
3
|
+
import { Typography } from '@mui/material';
|
|
4
|
+
import { useTranslation } from 'react-i18next';
|
|
5
|
+
import { AlertMessage } from './AlertMessage.js';
|
|
6
|
+
export const MinFromAmountUSDMessage = ({ minFromAmountUSD, ...props }) => {
|
|
7
|
+
const { t } = useTranslation();
|
|
8
|
+
return (_jsx(AlertMessage, { severity: "warning", icon: _jsx(WarningRounded, {}), title: _jsx(Typography, { variant: "body2", sx: {
|
|
9
|
+
color: 'text.primary',
|
|
10
|
+
}, children: t('warning.message.minFromAmountUSD', {
|
|
11
|
+
amount: minFromAmountUSD,
|
|
12
|
+
minimumFractionDigits: 0,
|
|
13
|
+
}) }), multiline: true, ...props }));
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=MinFromAmountUSDMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinFromAmountUSDMessage.js","sourceRoot":"","sources":["../../../../src/components/Messages/MinFromAmountUSDMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,cAAc,MAAM,oCAAoC,CAAA;AAC/D,OAAO,EAAiB,UAAU,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAMhD,MAAM,CAAC,MAAM,uBAAuB,GAEhC,CAAC,EAAE,gBAAgB,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACrC,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9B,OAAO,CACL,KAAC,YAAY,IACX,QAAQ,EAAC,SAAS,EAClB,IAAI,EAAE,KAAC,cAAc,KAAG,EACxB,KAAK,EACH,KAAC,UAAU,IACT,OAAO,EAAC,OAAO,EACf,EAAE,EAAE;gBACF,KAAK,EAAE,cAAc;aACtB,YAEA,CAAC,CAAC,kCAAkC,EAAE;gBACrC,MAAM,EAAE,gBAAgB;gBACxB,qBAAqB,EAAE,CAAC;aACzB,CAAC,GACS,EAEf,SAAS,WACL,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { AccountDeployedMessage } from './AccountDeployedMessage.js';
|
|
|
4
4
|
import { AccountNotDeployedMessage } from './AccountNotDeployedMessage.js';
|
|
5
5
|
import { FundsSufficiencyMessage } from './FundsSufficiencyMessage.js';
|
|
6
6
|
import { GasSufficiencyMessage } from './GasSufficiencyMessage.js';
|
|
7
|
+
import { MinFromAmountUSDMessage } from './MinFromAmountUSDMessage.js';
|
|
7
8
|
import { MissingRouteRequiredAccountMessage } from './MissingRouteRequiredAccountMessage.js';
|
|
8
9
|
import { ToAddressRequiredMessage } from './ToAddressRequiredMessage.js';
|
|
9
10
|
import { useMessageQueue } from './useMessageQueue.js';
|
|
@@ -17,6 +18,8 @@ export const WarningMessages = ({ route, allowInteraction, ...props }) => {
|
|
|
17
18
|
return _jsx(FundsSufficiencyMessage, { ...props });
|
|
18
19
|
case 'INSUFFICIENT_GAS':
|
|
19
20
|
return (_jsx(GasSufficiencyMessage, { insufficientGas: messages[0].props?.insufficientGas, ...props }));
|
|
21
|
+
case 'MIN_FROM_AMOUNT_USD':
|
|
22
|
+
return (_jsx(MinFromAmountUSDMessage, { minFromAmountUSD: messages[0].props?.minFromAmountUSD, ...props }));
|
|
20
23
|
case 'ACCOUNT_NOT_DEPLOYED':
|
|
21
24
|
return _jsx(AccountNotDeployedMessage, { ...props });
|
|
22
25
|
case 'ACCOUNT_DEPLOYED':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WarningMessages.js","sourceRoot":"","sources":["../../../../src/components/Messages/WarningMessages.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAA;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAOtD,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,KAAK,EACL,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;IAE1E,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,QAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;YACxB,KAAK,gCAAgC;gBACnC,OAAO,CACL,KAAC,kCAAkC,IACjC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAC/B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,KAC/B,KAAK,GACT,CACH,CAAA;YACH,KAAK,oBAAoB;gBACvB,OAAO,KAAC,uBAAuB,OAAK,KAAK,GAAI,CAAA;YAC/C,KAAK,kBAAkB;gBACrB,OAAO,CACL,KAAC,qBAAqB,IACpB,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,KAC/C,KAAK,GACT,CACH,CAAA;YACH,KAAK,sBAAsB;gBACzB,OAAO,KAAC,yBAAyB,OAAK,KAAK,GAAI,CAAA;YACjD,KAAK,kBAAkB;gBACrB,OAAO,KAAC,sBAAsB,OAAK,KAAK,GAAI,CAAA;YAC9C,KAAK,qBAAqB;gBACxB,OAAO,KAAC,wBAAwB,OAAK,KAAK,GAAI,CAAA;YAChD;gBACE,OAAO,IAAI,CAAA;QACf,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,KAAC,QAAQ,IAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,QAAC,YAAY,kBAChE,UAAU,EAAE,GACJ,CACZ,CAAA;AACH,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"WarningMessages.js","sourceRoot":"","sources":["../../../../src/components/Messages/WarningMessages.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAA;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAOtD,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,KAAK,EACL,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAA;IAE1E,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,QAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;YACxB,KAAK,gCAAgC;gBACnC,OAAO,CACL,KAAC,kCAAkC,IACjC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAC/B,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,KAC/B,KAAK,GACT,CACH,CAAA;YACH,KAAK,oBAAoB;gBACvB,OAAO,KAAC,uBAAuB,OAAK,KAAK,GAAI,CAAA;YAC/C,KAAK,kBAAkB;gBACrB,OAAO,CACL,KAAC,qBAAqB,IACpB,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,KAC/C,KAAK,GACT,CACH,CAAA;YACH,KAAK,qBAAqB;gBACxB,OAAO,CACL,KAAC,uBAAuB,IACtB,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,gBAAgB,KACjD,KAAK,GACT,CACH,CAAA;YACH,KAAK,sBAAsB;gBACzB,OAAO,KAAC,yBAAyB,OAAK,KAAK,GAAI,CAAA;YACjD,KAAK,kBAAkB;gBACrB,OAAO,KAAC,sBAAsB,OAAK,KAAK,GAAI,CAAA;YAC9C,KAAK,qBAAqB;gBACxB,OAAO,KAAC,wBAAwB,OAAK,KAAK,GAAI,CAAA;YAChD;gBACE,OAAO,IAAI,CAAA;QACf,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,KAAC,QAAQ,IAAC,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,QAAC,YAAY,kBAChE,UAAU,EAAE,GACJ,CACZ,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
+
import { useFromAmountThreshold } from '../../hooks/useFromAmountThreshold.js';
|
|
2
3
|
import { useFromTokenSufficiency } from '../../hooks/useFromTokenSufficiency.js';
|
|
3
4
|
import { useGasSufficiency } from '../../hooks/useGasSufficiency.js';
|
|
4
5
|
import { useRouteRequiredAccountConnection } from '../../hooks/useRouteRequiredAccountConnection.js';
|
|
@@ -8,6 +9,7 @@ export const useMessageQueue = (route, allowInteraction) => {
|
|
|
8
9
|
const { insufficientFromToken, isLoading: isFromTokenSufficiencyLoading } = useFromTokenSufficiency(route);
|
|
9
10
|
const { insufficientGas, isLoading: isGasSufficiencyLoading } = useGasSufficiency(route);
|
|
10
11
|
const { missingChain, missingAccountAddress } = useRouteRequiredAccountConnection(route);
|
|
12
|
+
const { belowMinFromAmountUSD, minFromAmountUSD } = useFromAmountThreshold();
|
|
11
13
|
const messageQueue = useMemo(() => {
|
|
12
14
|
const queue = [];
|
|
13
15
|
if (missingChain) {
|
|
@@ -23,29 +25,36 @@ export const useMessageQueue = (route, allowInteraction) => {
|
|
|
23
25
|
priority: 2,
|
|
24
26
|
});
|
|
25
27
|
}
|
|
28
|
+
if (belowMinFromAmountUSD) {
|
|
29
|
+
queue.push({
|
|
30
|
+
id: 'MIN_FROM_AMOUNT_USD',
|
|
31
|
+
priority: 3,
|
|
32
|
+
props: { minFromAmountUSD },
|
|
33
|
+
});
|
|
34
|
+
}
|
|
26
35
|
if (insufficientGas?.length) {
|
|
27
36
|
queue.push({
|
|
28
37
|
id: 'INSUFFICIENT_GAS',
|
|
29
|
-
priority:
|
|
38
|
+
priority: 4,
|
|
30
39
|
props: { insufficientGas },
|
|
31
40
|
});
|
|
32
41
|
}
|
|
33
42
|
if (accountNotDeployedAtDestination && !allowInteraction) {
|
|
34
43
|
queue.push({
|
|
35
44
|
id: 'ACCOUNT_NOT_DEPLOYED',
|
|
36
|
-
priority:
|
|
45
|
+
priority: 5,
|
|
37
46
|
});
|
|
38
47
|
}
|
|
39
48
|
if (requiredToAddress && !toAddress) {
|
|
40
49
|
queue.push({
|
|
41
50
|
id: 'TO_ADDRESS_REQUIRED',
|
|
42
|
-
priority:
|
|
51
|
+
priority: 6,
|
|
43
52
|
});
|
|
44
53
|
}
|
|
45
54
|
if (accountDeployedAtDestination && !allowInteraction) {
|
|
46
55
|
queue.push({
|
|
47
56
|
id: 'ACCOUNT_DEPLOYED',
|
|
48
|
-
priority:
|
|
57
|
+
priority: 7,
|
|
49
58
|
});
|
|
50
59
|
}
|
|
51
60
|
return queue.sort((a, b) => a.priority - b.priority);
|
|
@@ -59,6 +68,8 @@ export const useMessageQueue = (route, allowInteraction) => {
|
|
|
59
68
|
toAddress,
|
|
60
69
|
missingChain,
|
|
61
70
|
missingAccountAddress,
|
|
71
|
+
belowMinFromAmountUSD,
|
|
72
|
+
minFromAmountUSD,
|
|
62
73
|
]);
|
|
63
74
|
return {
|
|
64
75
|
messages: messageQueue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMessageQueue.js","sourceRoot":"","sources":["../../../../src/components/Messages/useMessageQueue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAA;AACpG,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAQlF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,gBAA0B,EAAE,EAAE;IAC3E,MAAM,EACJ,iBAAiB,EACjB,SAAS,EACT,+BAA+B,EAC/B,4BAA4B,EAC5B,SAAS,EAAE,8BAA8B,GAC1C,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,6BAA6B,EAAE,GACvE,uBAAuB,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,uBAAuB,EAAE,GAC3D,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC1B,MAAM,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAC3C,iCAAiC,CAAC,KAAK,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"useMessageQueue.js","sourceRoot":"","sources":["../../../../src/components/Messages/useMessageQueue.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,6 @@ export const TokenDetailsSheet = forwardRef(({ chainId }, ref) => {
|
|
|
15
15
|
},
|
|
16
16
|
close: () => {
|
|
17
17
|
bottomSheetRef.current?.close();
|
|
18
|
-
setTokenAddress(undefined);
|
|
19
|
-
setWithoutContractAddress(false);
|
|
20
18
|
},
|
|
21
19
|
}), []);
|
|
22
20
|
return (_jsx(BottomSheet, { ref: bottomSheetRef, children: _jsx(TokenDetailsSheetContent, { ref: ref, tokenAddress: tokenAddress, withoutContractAddress: withoutContractAddress, chainId: chainId }) }));
|
|
@@ -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;AAOxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAGzC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE;IACrB,MAAM,cAAc,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAA;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC9C,SAAS,CACV,CAAA;IACD,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,EAAE;YACpD,eAAe,CAAC,OAAO,CAAC,CAAA;YACxB,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;YAC5C,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA;QAChC,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,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;AAOxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAGzC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE;IACrB,MAAM,cAAc,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAA;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC9C,SAAS,CACV,CAAA;IACD,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,EAAE;YACpD,eAAe,CAAC,OAAO,CAAC,CAAA;YACxB,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;YAC5C,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,YAC9B,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"}
|