@lifi/widget 3.25.0-beta.5 → 3.26.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 +43 -0
- package/dist/esm/components/AmountInput/AmountInput.js +75 -17
- package/dist/esm/components/AmountInput/AmountInput.js.map +1 -1
- package/dist/esm/components/AmountInput/AmountInput.style.d.ts +4 -0
- package/dist/esm/components/AmountInput/AmountInput.style.js +11 -0
- package/dist/esm/components/AmountInput/AmountInput.style.js.map +1 -1
- package/dist/esm/components/AmountInput/AmountInputAdornment.style.d.ts +1 -0
- package/dist/esm/components/AmountInput/AmountInputAdornment.style.js +64 -5
- package/dist/esm/components/AmountInput/AmountInputAdornment.style.js.map +1 -1
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +20 -7
- package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
- package/dist/esm/components/AmountInput/PriceFormHelperText.js +41 -15
- package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
- package/dist/esm/components/AmountInput/PriceFormHelperText.style.d.ts +1 -0
- package/dist/esm/components/AmountInput/PriceFormHelperText.style.js +29 -0
- package/dist/esm/components/AmountInput/PriceFormHelperText.style.js.map +1 -0
- package/dist/esm/components/AppContainer.js +1 -0
- package/dist/esm/components/AppContainer.js.map +1 -1
- package/dist/esm/components/ChainSelect/useChainSelect.js +2 -4
- package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
- 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 +45 -9
- package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
- package/dist/esm/components/Header/NavigationHeader.js +5 -1
- package/dist/esm/components/Header/NavigationHeader.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/Routes/RoutesContent.js +3 -2
- package/dist/esm/components/Routes/RoutesContent.js.map +1 -1
- package/dist/esm/components/Routes/RoutesExpanded.style.js +3 -2
- package/dist/esm/components/Routes/RoutesExpanded.style.js.map +1 -1
- package/dist/esm/components/SendToWallet/SendToWalletButton.js +1 -1
- package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
- package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js +3 -3
- package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -1
- package/dist/esm/components/Step/StepProcess.js +3 -8
- package/dist/esm/components/Step/StepProcess.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 +27 -4
- 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/components/TokenList/useTokenSelect.js +2 -4
- package/dist/esm/components/TokenList/useTokenSelect.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/useGasSufficiency.js +3 -3
- package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
- 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/useNavigateBack.d.ts +1 -1
- package/dist/esm/hooks/useNavigateBack.js +8 -2
- package/dist/esm/hooks/useNavigateBack.js.map +1 -1
- package/dist/esm/hooks/useRouteExecution.js +1 -2
- package/dist/esm/hooks/useRouteExecution.js.map +1 -1
- package/dist/esm/hooks/useRoutes.js +19 -4
- package/dist/esm/hooks/useRoutes.js.map +1 -1
- package/dist/esm/hooks/useSettingMonitor.js +1 -2
- package/dist/esm/hooks/useSettingMonitor.js.map +1 -1
- package/dist/esm/hooks/useTokenAddressBalance.js +4 -1
- package/dist/esm/hooks/useTokenAddressBalance.js.map +1 -1
- 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 +5 -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 +3 -12
- package/dist/esm/hooks/useTokens.js.map +1 -1
- package/dist/esm/hooks/useTools.js +2 -2
- package/dist/esm/hooks/useTools.js.map +1 -1
- package/dist/esm/i18n/bn.json +5 -2
- package/dist/esm/i18n/de.json +5 -2
- package/dist/esm/i18n/en.json +5 -2
- package/dist/esm/i18n/es.json +5 -2
- package/dist/esm/i18n/fr.json +5 -2
- package/dist/esm/i18n/hi.json +5 -2
- package/dist/esm/i18n/id.json +5 -2
- package/dist/esm/i18n/it.json +5 -2
- package/dist/esm/i18n/ja.json +5 -2
- package/dist/esm/i18n/ko.json +5 -2
- package/dist/esm/i18n/pl.json +4 -1
- package/dist/esm/i18n/pt.json +5 -2
- package/dist/esm/i18n/th.json +5 -2
- package/dist/esm/i18n/tr.json +5 -2
- package/dist/esm/i18n/uk.json +5 -2
- package/dist/esm/i18n/vi.json +5 -2
- package/dist/esm/i18n/zh.json +5 -2
- package/dist/esm/pages/SelectEnabledToolsPage.js +4 -2
- package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -1
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +14 -7
- package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -1
- package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js +1 -2
- package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
- package/dist/esm/pages/TransactionPage/TransactionPage.js +5 -3
- package/dist/esm/pages/TransactionPage/TransactionPage.js.map +1 -1
- package/dist/esm/stores/bookmarks/BookmarkStore.d.ts +1 -2
- package/dist/esm/stores/bookmarks/BookmarkStore.js +3 -3
- package/dist/esm/stores/bookmarks/BookmarkStore.js.map +1 -1
- package/dist/esm/stores/bookmarks/useBookmarkActions.js +1 -2
- package/dist/esm/stores/bookmarks/useBookmarkActions.js.map +1 -1
- package/dist/esm/stores/bookmarks/useBookmarks.js +1 -2
- package/dist/esm/stores/bookmarks/useBookmarks.js.map +1 -1
- package/dist/esm/stores/chains/ChainOrderStore.d.ts +1 -1
- package/dist/esm/stores/chains/ChainOrderStore.js +20 -7
- 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/chains/useChainOrder.js +1 -2
- package/dist/esm/stores/chains/useChainOrder.js.map +1 -1
- package/dist/esm/stores/form/useFieldActions.js +1 -2
- package/dist/esm/stores/form/useFieldActions.js.map +1 -1
- package/dist/esm/stores/form/useFieldValues.js +1 -2
- package/dist/esm/stores/form/useFieldValues.js.map +1 -1
- package/dist/esm/stores/form/useFormStore.d.ts +1 -2
- package/dist/esm/stores/form/useFormStore.js +3 -3
- package/dist/esm/stores/form/useFormStore.js.map +1 -1
- package/dist/esm/stores/form/useTouchedFields.js +1 -2
- package/dist/esm/stores/form/useTouchedFields.js.map +1 -1
- package/dist/esm/stores/form/useValidation.js +5 -2
- package/dist/esm/stores/form/useValidation.js.map +1 -1
- package/dist/esm/stores/form/useValidationActions.js +1 -2
- package/dist/esm/stores/form/useValidationActions.js.map +1 -1
- package/dist/esm/stores/header/useHeaderStore.d.ts +1 -1
- package/dist/esm/stores/header/useHeaderStore.js +5 -5
- package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
- package/dist/esm/stores/inputMode/useInputModeStore.d.ts +9 -0
- package/dist/esm/stores/inputMode/useInputModeStore.js +19 -0
- package/dist/esm/stores/inputMode/useInputModeStore.js.map +1 -0
- package/dist/esm/stores/routes/RouteExecutionStore.d.ts +1 -1
- package/dist/esm/stores/routes/RouteExecutionStore.js +3 -2
- package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
- package/dist/esm/stores/routes/useExecutingRoutesIds.js +1 -2
- package/dist/esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
- package/dist/esm/stores/settings/useSendToWalletStore.d.ts +2 -1
- package/dist/esm/stores/settings/useSendToWalletStore.js +6 -3
- package/dist/esm/stores/settings/useSendToWalletStore.js.map +1 -1
- package/dist/esm/stores/settings/useSettings.js +1 -2
- package/dist/esm/stores/settings/useSettings.js.map +1 -1
- package/dist/esm/stores/settings/useSettingsActions.js +1 -2
- package/dist/esm/stores/settings/useSettingsActions.js.map +1 -1
- package/dist/esm/stores/settings/useSettingsStore.d.ts +2 -1
- package/dist/esm/stores/settings/useSettingsStore.js +5 -1
- package/dist/esm/stores/settings/useSettingsStore.js.map +1 -1
- package/dist/esm/stores/settings/useSplitSubvariantStore.js +2 -1
- package/dist/esm/stores/settings/useSplitSubvariantStore.js.map +1 -1
- package/dist/esm/themes/createTheme.js +5 -1
- package/dist/esm/themes/createTheme.js.map +1 -1
- package/dist/esm/types/widget.d.ts +3 -1
- package/dist/esm/types/widget.js +1 -0
- package/dist/esm/types/widget.js.map +1 -1
- package/dist/esm/utils/format.d.ts +4 -0
- package/dist/esm/utils/format.js +26 -0
- package/dist/esm/utils/format.js.map +1 -1
- package/dist/esm/utils/getPriceImpact.d.ts +2 -2
- package/dist/esm/utils/getPriceImpact.js.map +1 -1
- package/package.json +12 -12
- package/package.json.tmp +14 -14
- package/src/components/AmountInput/AmountInput.style.tsx +13 -0
- package/src/components/AmountInput/AmountInput.tsx +91 -18
- package/src/components/AmountInput/AmountInputAdornment.style.tsx +66 -5
- package/src/components/AmountInput/AmountInputEndAdornment.tsx +40 -10
- package/src/components/AmountInput/PriceFormHelperText.style.tsx +29 -0
- package/src/components/AmountInput/PriceFormHelperText.tsx +63 -19
- package/src/components/AppContainer.tsx +1 -0
- package/src/components/ChainSelect/useChainSelect.ts +2 -4
- 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 +67 -20
- package/src/components/Header/NavigationHeader.tsx +10 -1
- 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/Routes/RoutesContent.tsx +6 -2
- package/src/components/Routes/RoutesExpanded.style.ts +3 -2
- package/src/components/SendToWallet/SendToWalletButton.tsx +1 -1
- package/src/components/SendToWallet/SendToWalletExpandButton.tsx +8 -3
- package/src/components/Step/StepProcess.tsx +3 -8
- package/src/components/TokenList/TokenDetailsSheet.tsx +0 -2
- package/src/components/TokenList/TokenDetailsSheetContent.tsx +50 -3
- package/src/components/TokenList/TokenList.tsx +24 -1
- package/src/components/TokenList/TokenListItem.tsx +6 -0
- package/src/components/TokenList/useTokenSelect.ts +2 -4
- package/src/config/version.ts +1 -1
- package/src/hooks/useFromAmountThreshold.ts +35 -0
- package/src/hooks/useGasSufficiency.ts +4 -4
- package/src/hooks/useLongPress.ts +51 -0
- package/src/hooks/useNavigateBack.ts +26 -17
- package/src/hooks/useRouteExecution.ts +1 -3
- package/src/hooks/useRoutes.ts +24 -4
- package/src/hooks/useSettingMonitor.ts +7 -11
- package/src/hooks/useTokenAddressBalance.ts +6 -1
- package/src/hooks/useTokenBalances.ts +3 -10
- package/src/hooks/useTokenSearch.ts +7 -4
- package/src/hooks/useTokens.ts +4 -31
- package/src/hooks/useTools.ts +2 -2
- package/src/i18n/bn.json +5 -2
- package/src/i18n/de.json +5 -2
- package/src/i18n/en.json +5 -2
- package/src/i18n/es.json +5 -2
- package/src/i18n/fr.json +5 -2
- package/src/i18n/hi.json +5 -2
- package/src/i18n/id.json +5 -2
- package/src/i18n/it.json +5 -2
- package/src/i18n/ja.json +5 -2
- package/src/i18n/ko.json +5 -2
- package/src/i18n/pl.json +4 -1
- package/src/i18n/pt.json +5 -2
- package/src/i18n/th.json +5 -2
- package/src/i18n/tr.json +5 -2
- package/src/i18n/uk.json +5 -2
- package/src/i18n/vi.json +5 -2
- package/src/i18n/zh.json +5 -2
- package/src/pages/SelectEnabledToolsPage.tsx +4 -5
- package/src/pages/SelectTokenPage/SearchTokenInput.tsx +19 -7
- package/src/pages/SettingsPage/BridgeAndExchangeSettings.tsx +1 -2
- package/src/pages/TransactionPage/TransactionPage.tsx +17 -9
- package/src/stores/bookmarks/BookmarkStore.tsx +3 -6
- package/src/stores/bookmarks/useBookmarkActions.ts +9 -13
- package/src/stores/bookmarks/useBookmarks.ts +1 -3
- package/src/stores/chains/ChainOrderStore.tsx +26 -8
- package/src/stores/chains/createChainOrderStore.ts +19 -1
- package/src/stores/chains/types.ts +2 -0
- package/src/stores/chains/useChainOrder.ts +1 -5
- package/src/stores/form/useFieldActions.ts +10 -14
- package/src/stores/form/useFieldValues.ts +1 -3
- package/src/stores/form/useFormStore.ts +3 -6
- package/src/stores/form/useTouchedFields.ts +1 -2
- package/src/stores/form/useValidation.ts +5 -5
- package/src/stores/form/useValidationActions.ts +5 -9
- package/src/stores/header/useHeaderStore.tsx +5 -14
- package/src/stores/inputMode/useInputModeStore.ts +29 -0
- package/src/stores/routes/RouteExecutionStore.tsx +3 -3
- package/src/stores/routes/useExecutingRoutesIds.ts +14 -17
- package/src/stores/settings/useSendToWalletStore.ts +11 -8
- package/src/stores/settings/useSettings.ts +8 -11
- package/src/stores/settings/useSettingsActions.ts +8 -12
- package/src/stores/settings/useSettingsStore.ts +8 -1
- package/src/stores/settings/useSplitSubvariantStore.tsx +2 -1
- package/src/themes/createTheme.ts +5 -1
- package/src/types/widget.ts +2 -0
- package/src/utils/format.ts +33 -0
- package/src/utils/getPriceImpact.ts +2 -2
|
@@ -7,11 +7,9 @@ import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.j
|
|
|
7
7
|
import { useChainOrder } from '../../stores/chains/useChainOrder.js';
|
|
8
8
|
import { FormKeyHelper } from '../../stores/form/types.js';
|
|
9
9
|
import { useFieldActions } from '../../stores/form/useFieldActions.js';
|
|
10
|
-
import { useFieldController } from '../../stores/form/useFieldController.js';
|
|
11
10
|
export const useChainSelect = (formType) => {
|
|
12
11
|
const { disabledUI } = useWidgetConfig();
|
|
13
12
|
const chainKey = FormKeyHelper.getChainKey(formType);
|
|
14
|
-
const { onChange } = useFieldController({ name: chainKey });
|
|
15
13
|
const { setFieldValue, getFieldValues } = useFieldActions();
|
|
16
14
|
const { useExternalWalletProvidersOnly, externalChainTypes } = useExternalWalletProvider();
|
|
17
15
|
const { chains, isLoading, getChainById } = useChains(formType,
|
|
@@ -34,7 +32,7 @@ export const useChainSelect = (formType) => {
|
|
|
34
32
|
return selectedChains;
|
|
35
33
|
};
|
|
36
34
|
const setCurrentChain = useCallback((chainId) => {
|
|
37
|
-
|
|
35
|
+
setFieldValue(chainKey, chainId, { isDirty: true, isTouched: true });
|
|
38
36
|
if (swapOnly) {
|
|
39
37
|
setFieldValue(FormKeyHelper.getChainKey('to'), chainId, {
|
|
40
38
|
isTouched: true,
|
|
@@ -56,7 +54,7 @@ export const useChainSelect = (formType) => {
|
|
|
56
54
|
}
|
|
57
55
|
setChainOrder(chainId, formType);
|
|
58
56
|
}, [
|
|
59
|
-
|
|
57
|
+
chainKey,
|
|
60
58
|
swapOnly,
|
|
61
59
|
setFieldValue,
|
|
62
60
|
disabledUI,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChainSelect.js","sourceRoot":"","sources":["../../../../src/components/ChainSelect/useChainSelect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6DAA6D,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"useChainSelect.js","sourceRoot":"","sources":["../../../../src/components/ChainSelect/useChainSelect.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,35 @@
|
|
|
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 { useChainOrderStore } from '../../stores/chains/ChainOrderStore';
|
|
4
5
|
import { List } from './ChainList.style';
|
|
5
6
|
import { ChainListItem } from './ChainListItem';
|
|
6
|
-
export const VirtualizedChainList = ({ chains, onSelect, selectedChainId, itemsSize, scrollElementRef, }) => {
|
|
7
|
-
const
|
|
7
|
+
export const VirtualizedChainList = ({ chains, onSelect, selectedChainId, itemsSize, scrollElementRef, withPinnedChains, }) => {
|
|
8
|
+
const selectedChainIdRef = useRef(selectedChainId); // Store the initial selected chain ID to scroll to it once chains are loaded
|
|
9
|
+
const hasScrolledRef = useRef(false);
|
|
10
|
+
const [pinnedChains, setPinnedChain] = useChainOrderStore((state) => [
|
|
11
|
+
state.pinnedChains,
|
|
12
|
+
state.setPinnedChain,
|
|
13
|
+
]);
|
|
14
|
+
const onPin = useCallback((chainId) => {
|
|
15
|
+
setPinnedChain(chainId);
|
|
16
|
+
}, [setPinnedChain]);
|
|
8
17
|
const sortedChains = useMemo(() => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
18
|
+
if (!pinnedChains.length) {
|
|
19
|
+
return chains;
|
|
20
|
+
}
|
|
21
|
+
// Pinning logic: move pinned chains to the top of the list
|
|
22
|
+
const pinned = pinnedChains
|
|
23
|
+
.map((id) => chains.find((c) => c.id === id))
|
|
24
|
+
.filter(Boolean);
|
|
25
|
+
const pinnedIds = new Set(pinned.map((c) => c.id));
|
|
26
|
+
const rest = chains.filter((c) => !pinnedIds.has(c.id));
|
|
27
|
+
return [...pinned, ...rest];
|
|
28
|
+
}, [chains, pinnedChains]);
|
|
13
29
|
const getItemKey = useCallback((index) => {
|
|
14
30
|
return `${sortedChains[index].id}-${index}`;
|
|
15
31
|
}, [sortedChains]);
|
|
16
|
-
const { getVirtualItems, getTotalSize, measure } = useVirtualizer({
|
|
32
|
+
const { getVirtualItems, getTotalSize, measure, scrollToIndex, range } = useVirtualizer({
|
|
17
33
|
count: sortedChains.length,
|
|
18
34
|
overscan: 3,
|
|
19
35
|
paddingEnd: 0,
|
|
@@ -32,9 +48,29 @@ export const VirtualizedChainList = ({ chains, onSelect, selectedChainId, itemsS
|
|
|
32
48
|
measure();
|
|
33
49
|
}
|
|
34
50
|
}, [measure, scrollElementRef.current]);
|
|
51
|
+
useLayoutEffect(() => {
|
|
52
|
+
// Only scroll if sortedChains is not empty and we haven't scrolled yet
|
|
53
|
+
if (!hasScrolledRef.current && sortedChains.length > 0 && range) {
|
|
54
|
+
const selectedChainIndex = sortedChains.findIndex((chain) => chain.id === selectedChainIdRef.current);
|
|
55
|
+
if (selectedChainIndex !== -1) {
|
|
56
|
+
// Only scroll if the selected chain is not in the visible range
|
|
57
|
+
// +1 and -1 to account for partially visible items
|
|
58
|
+
if (range.startIndex + 1 > selectedChainIndex ||
|
|
59
|
+
range.endIndex - 1 < selectedChainIndex) {
|
|
60
|
+
requestAnimationFrame(() => {
|
|
61
|
+
scrollToIndex(selectedChainIndex, {
|
|
62
|
+
align: 'center',
|
|
63
|
+
behavior: 'smooth',
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
hasScrolledRef.current = true; // Mark as scrolled (when needed)
|
|
69
|
+
}
|
|
70
|
+
}, [sortedChains, scrollToIndex, range]);
|
|
35
71
|
return (_jsx(List, { className: "long-list", style: { height: getTotalSize() }, disablePadding: true, children: getVirtualItems().map((item) => {
|
|
36
72
|
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));
|
|
73
|
+
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
74
|
}) }));
|
|
39
75
|
};
|
|
40
76
|
//# 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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"}
|
|
@@ -26,7 +26,11 @@ export const NavigationHeader = () => {
|
|
|
26
26
|
const path = cleanedPathname.substring(cleanedPathname.lastIndexOf('/') + 1);
|
|
27
27
|
const hasPath = navigationRoutesValues.includes(path);
|
|
28
28
|
const splitSubvariant = subvariant === 'split' && !hasPath;
|
|
29
|
-
return (_jsxs(_Fragment, { children: [_jsxs(HeaderAppBar, { elevation: 0, children: [backButtonRoutes.includes(path) ? (_jsx(BackButton, { onClick:
|
|
29
|
+
return (_jsxs(_Fragment, { children: [_jsxs(HeaderAppBar, { elevation: 0, children: [backButtonRoutes.includes(path) ? (_jsx(BackButton, { onClick: () => navigateBack(
|
|
30
|
+
// From transaction details page, navigate to home page
|
|
31
|
+
path === navigationRoutes.transactionDetails
|
|
32
|
+
? navigationRoutes.home
|
|
33
|
+
: undefined) })) : null, splitSubvariant ? (_jsx(Box, { sx: {
|
|
30
34
|
flex: 1,
|
|
31
35
|
}, children: _jsx(SplitWalletMenuButton, {}) })) : (_jsx(Typography, { align: hasPath ? 'center' : 'left', noWrap: defaultUI?.navigationHeaderTitleNoWrap ?? true, sx: {
|
|
32
36
|
fontSize: hasPath ? 18 : 24,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationHeader.js","sourceRoot":"","sources":["../../../../src/components/Header/NavigationHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAa,GAAG,EAAE;IAC7C,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAA;IACtE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAA;IAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAA;IAElC,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC5C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,QAAQ,CAAA;IACZ,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5E,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAErD,MAAM,eAAe,GAAG,UAAU,KAAK,OAAO,IAAI,CAAC,OAAO,CAAA;IAE1D,OAAO,CACL,8BACE,MAAC,YAAY,IAAC,SAAS,EAAE,CAAC,aACvB,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACjC,KAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"NavigationHeader.js","sourceRoot":"","sources":["../../../../src/components/Header/NavigationHeader.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":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,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;IAC1C,MAAM,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,GAAG,sBAAsB,EAAE,CAAA;IAE5E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,KAAK,GAAoB,EAAE,CAAA;QAEjC,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,gCAAgC;gBACpC,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE;aAC/D,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,qBAAqB,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,oBAAoB;gBACxB,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,qBAAqB,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,qBAAqB;gBACzB,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,EAAE,gBAAgB,EAAE;aAC5B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,kBAAkB;gBACtB,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,EAAE,eAAe,EAAE;aAC3B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,+BAA+B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,sBAAsB;gBAC1B,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,qBAAqB;gBACzB,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,4BAA4B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,kBAAkB;gBACtB,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IACtD,CAAC,EAAE;QACD,gBAAgB;QAChB,qBAAqB;QACrB,eAAe;QACf,4BAA4B;QAC5B,+BAA+B;QAC/B,iBAAiB;QACjB,SAAS;QACT,YAAY;QACZ,qBAAqB;QACrB,qBAAqB;QACrB,gBAAgB;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,QAAQ,EAAE,YAAY;QACtB,WAAW,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;QACpC,SAAS,EACP,uBAAuB;YACvB,6BAA6B;YAC7B,8BAA8B;KACjC,CAAA;AACH,CAAC,CAAA"}
|