@lifi/widget 3.25.0 → 3.26.1
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 +27 -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/ChainsExpanded.d.ts +1 -1
- package/dist/esm/components/Chains/ChainsExpanded.js +3 -2
- package/dist/esm/components/Chains/ChainsExpanded.js.map +1 -1
- package/dist/esm/components/Chains/ChainsExpanded.style.js +1 -2
- package/dist/esm/components/Chains/ChainsExpanded.style.js.map +1 -1
- package/dist/esm/components/Chains/SelectChainContent.d.ts +1 -1
- package/dist/esm/components/Chains/SelectChainContent.js +3 -2
- package/dist/esm/components/Chains/SelectChainContent.js.map +1 -1
- package/dist/esm/components/Chains/VirtualizedChainList.js +5 -3
- package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
- package/dist/esm/components/Expansion/Expansion.js +5 -16
- package/dist/esm/components/Expansion/Expansion.js.map +1 -1
- package/dist/esm/components/Expansion/Expansion.style.d.ts +32 -0
- package/dist/esm/components/Expansion/Expansion.style.js +40 -0
- package/dist/esm/components/Expansion/Expansion.style.js.map +1 -0
- package/dist/esm/components/Expansion/ExpansionTransition.d.ts +0 -1
- package/dist/esm/components/Expansion/ExpansionTransition.js +1 -30
- package/dist/esm/components/Expansion/ExpansionTransition.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/Routes/RoutesContent.d.ts +2 -3
- package/dist/esm/components/Routes/RoutesContent.js +8 -23
- package/dist/esm/components/Routes/RoutesContent.js.map +1 -1
- package/dist/esm/components/Routes/RoutesExpanded.d.ts +2 -3
- package/dist/esm/components/Routes/RoutesExpanded.js +24 -8
- package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
- package/dist/esm/components/Routes/RoutesExpanded.style.js +2 -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/TokenDetailsSheetContent.js +1 -2
- package/dist/esm/components/TokenList/TokenDetailsSheetContent.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/hooks/useFromAmountThreshold.js +2 -2
- package/dist/esm/hooks/useFromAmountThreshold.js.map +1 -1
- package/dist/esm/hooks/useGasSufficiency.js +3 -3
- package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
- 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 +51 -8
- 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/useTokenSearch.js +5 -2
- package/dist/esm/hooks/useTokenSearch.js.map +1 -1
- package/dist/esm/hooks/useTokens.js +2 -2
- 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 +1 -1
- package/dist/esm/i18n/de.json +1 -1
- package/dist/esm/i18n/en.json +1 -1
- package/dist/esm/i18n/es.json +1 -1
- package/dist/esm/i18n/fr.json +1 -1
- package/dist/esm/i18n/hi.json +1 -1
- package/dist/esm/i18n/id.json +1 -1
- package/dist/esm/i18n/it.json +1 -1
- package/dist/esm/i18n/ja.json +1 -1
- package/dist/esm/i18n/ko.json +1 -1
- package/dist/esm/i18n/pt.json +1 -1
- package/dist/esm/i18n/th.json +1 -1
- package/dist/esm/i18n/tr.json +1 -1
- package/dist/esm/i18n/uk.json +1 -1
- package/dist/esm/i18n/vi.json +1 -1
- package/dist/esm/i18n/zh.json +1 -1
- 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 +3 -2
- package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
- 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 +3 -2
- 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 +2 -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/ChainsExpanded.style.tsx +1 -2
- package/src/components/Chains/ChainsExpanded.tsx +6 -2
- package/src/components/Chains/SelectChainContent.tsx +81 -82
- package/src/components/Chains/VirtualizedChainList.tsx +5 -6
- package/src/components/Expansion/Expansion.style.tsx +43 -0
- package/src/components/Expansion/Expansion.tsx +8 -23
- package/src/components/Expansion/ExpansionTransition.tsx +5 -33
- package/src/components/Header/NavigationHeader.tsx +10 -1
- package/src/components/Routes/RoutesContent.tsx +14 -31
- package/src/components/Routes/RoutesExpanded.style.ts +2 -2
- package/src/components/Routes/RoutesExpanded.tsx +33 -13
- 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/TokenDetailsSheetContent.tsx +1 -2
- package/src/components/TokenList/useTokenSelect.ts +2 -4
- package/src/config/version.ts +1 -1
- package/src/hooks/useFromAmountThreshold.ts +6 -2
- package/src/hooks/useGasSufficiency.ts +4 -4
- package/src/hooks/useNavigateBack.ts +26 -17
- package/src/hooks/useRouteExecution.ts +1 -3
- package/src/hooks/useRoutes.ts +92 -37
- package/src/hooks/useSettingMonitor.ts +7 -11
- package/src/hooks/useTokenAddressBalance.ts +6 -1
- package/src/hooks/useTokenSearch.ts +5 -2
- package/src/hooks/useTokens.ts +2 -2
- package/src/hooks/useTools.ts +2 -2
- package/src/i18n/bn.json +1 -1
- package/src/i18n/de.json +1 -1
- package/src/i18n/en.json +1 -1
- package/src/i18n/es.json +1 -1
- package/src/i18n/fr.json +1 -1
- package/src/i18n/hi.json +1 -1
- package/src/i18n/id.json +1 -1
- package/src/i18n/it.json +1 -1
- package/src/i18n/ja.json +1 -1
- package/src/i18n/ko.json +1 -1
- package/src/i18n/pt.json +1 -1
- package/src/i18n/th.json +1 -1
- package/src/i18n/tr.json +1 -1
- package/src/i18n/uk.json +1 -1
- package/src/i18n/vi.json +1 -1
- package/src/i18n/zh.json +1 -1
- 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 +3 -3
- 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 +3 -5
- 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 +1 -0
- package/src/utils/format.ts +33 -0
- package/src/utils/getPriceImpact.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
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.26.1](https://github.com/lifinance/widget/compare/v3.26.0...v3.26.1) (2025-08-06)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* revert container fallbacks ([#501](https://github.com/lifinance/widget/issues/501)) ([147647b](https://github.com/lifinance/widget/commit/147647be64910b920d45e0e000f30fa3eaf6c82e))
|
|
11
|
+
|
|
12
|
+
## [3.26.0](https://github.com/lifinance/widget/compare/v3.25.0...v3.26.0) (2025-08-05)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* add option to hide low address activity confirmation ([#497](https://github.com/lifinance/widget/issues/497)) ([6c44863](https://github.com/lifinance/widget/commit/6c448632b008c63e60204281066b81b33decfb0d))
|
|
18
|
+
* enable mui native colors ([2026ae5](https://github.com/lifinance/widget/commit/2026ae55f0a895831cedce6cf5152cdaf863a197))
|
|
19
|
+
* improve amount input ([#489](https://github.com/lifinance/widget/issues/489)) ([584f247](https://github.com/lifinance/widget/commit/584f247527090d07cc2b8aaaf3392395dbd58880))
|
|
20
|
+
* **wallet-management:** add support for base account ([#482](https://github.com/lifinance/widget/issues/482)) ([eff8baa](https://github.com/lifinance/widget/commit/eff8baa1ba014cef8f59d3dc99ca817d01c9e0f5))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Bug Fixes
|
|
24
|
+
|
|
25
|
+
* add misc styling adjustments ([#494](https://github.com/lifinance/widget/issues/494)) ([b743ef3](https://github.com/lifinance/widget/commit/b743ef3416bcf8985cc00cf0f940d82de65d7598))
|
|
26
|
+
* avoid undefined query data in gas sufficiency ([#490](https://github.com/lifinance/widget/issues/490)) ([b66edf4](https://github.com/lifinance/widget/commit/b66edf435ea546c5e4657a50da99c1b46dfb861a))
|
|
27
|
+
* navigation from transaction details ([#499](https://github.com/lifinance/widget/issues/499)) ([b6500df](https://github.com/lifinance/widget/commit/b6500dff4d7e683e24b274095676bf1035566a86))
|
|
28
|
+
* price impact typo ([5b1f957](https://github.com/lifinance/widget/commit/5b1f957392bf56c57acba4be72debc70a03e24ee))
|
|
29
|
+
* remove unnecessary field value hook ([c144319](https://github.com/lifinance/widget/commit/c1443193091b161c91d0ab18ef370e3e6725ae94))
|
|
30
|
+
* update transaction link handling ([#500](https://github.com/lifinance/widget/issues/500)) ([bae8e9f](https://github.com/lifinance/widget/commit/bae8e9fe7ec3c9617b9f8dbcfb66abab972553a8))
|
|
31
|
+
|
|
5
32
|
## [3.25.0](https://github.com/lifinance/widget/compare/v3.25.0-beta.2...v3.25.0) (2025-07-28)
|
|
6
33
|
|
|
7
34
|
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useLayoutEffect, useRef } from 'react';
|
|
2
|
+
import { useLayoutEffect, useRef, useState } from 'react';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { useToken } from '../../hooks/useToken.js';
|
|
5
5
|
import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
|
|
6
6
|
import { FormKeyHelper } from '../../stores/form/types.js';
|
|
7
|
-
import {
|
|
7
|
+
import { useFieldActions } from '../../stores/form/useFieldActions.js';
|
|
8
8
|
import { useFieldValues } from '../../stores/form/useFieldValues.js';
|
|
9
|
+
import { useInputModeStore } from '../../stores/inputMode/useInputModeStore.js';
|
|
9
10
|
import { DisabledUI } from '../../types/widget.js';
|
|
10
|
-
import { formatInputAmount } from '../../utils/format.js';
|
|
11
|
+
import { formatInputAmount, formatTokenPrice, priceToTokenAmount, } from '../../utils/format.js';
|
|
11
12
|
import { fitInputText } from '../../utils/input.js';
|
|
12
|
-
import { CardTitle } from '../Card/CardTitle.js';
|
|
13
13
|
import { InputCard } from '../Card/InputCard.js';
|
|
14
|
-
import { FormContainer, FormControl, Input, maxInputFontSize, minInputFontSize, } from './AmountInput.style.js';
|
|
14
|
+
import { AmountInputCardHeader, AmountInputCardTitle, FormContainer, FormControl, Input, maxInputFontSize, minInputFontSize, } from './AmountInput.style.js';
|
|
15
15
|
import { AmountInputEndAdornment } from './AmountInputEndAdornment.js';
|
|
16
16
|
import { AmountInputStartAdornment } from './AmountInputStartAdornment.js';
|
|
17
17
|
import { PriceFormHelperText } from './PriceFormHelperText.js';
|
|
18
|
+
const USD_DECIMALS = 2;
|
|
18
19
|
export const AmountInput = ({ formType, ...props }) => {
|
|
19
20
|
const { disabledUI } = useWidgetConfig();
|
|
20
21
|
const [chainId, tokenAddress] = useFieldValues(FormKeyHelper.getChainKey(formType), FormKeyHelper.getTokenKey(formType));
|
|
@@ -26,32 +27,89 @@ export const AmountInputBase = ({ formType, token, startAdornment, endAdornment,
|
|
|
26
27
|
const { t } = useTranslation();
|
|
27
28
|
const { subvariant, subvariantOptions } = useWidgetConfig();
|
|
28
29
|
const ref = useRef(null);
|
|
30
|
+
const isEditingRef = useRef(false);
|
|
31
|
+
const [formattedPriceInput, setFormattedPriceInput] = useState('');
|
|
29
32
|
const amountKey = FormKeyHelper.getAmountKey(formType);
|
|
30
|
-
const
|
|
33
|
+
const [value] = useFieldValues(amountKey);
|
|
34
|
+
const { setFieldValue } = useFieldActions();
|
|
35
|
+
const { inputMode } = useInputModeStore();
|
|
36
|
+
const currentInputMode = inputMode[formType];
|
|
37
|
+
let displayValue;
|
|
38
|
+
if (isEditingRef.current) {
|
|
39
|
+
if (currentInputMode === 'price') {
|
|
40
|
+
displayValue = formattedPriceInput;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
displayValue = value;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
if (currentInputMode === 'price') {
|
|
48
|
+
const priceValue = formatTokenPrice(value, token?.priceUSD);
|
|
49
|
+
displayValue = formatInputAmount(priceValue.toFixed(USD_DECIMALS), USD_DECIMALS);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
displayValue = value;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
31
55
|
const handleChange = (event) => {
|
|
32
|
-
const { value } = event.target;
|
|
33
|
-
|
|
34
|
-
|
|
56
|
+
const { value: inputValue } = event.target;
|
|
57
|
+
isEditingRef.current = true;
|
|
58
|
+
let formattedValue;
|
|
59
|
+
if (currentInputMode === 'price') {
|
|
60
|
+
const cleanInputValue = inputValue.replace('$', '');
|
|
61
|
+
formattedValue = formatInputAmount(cleanInputValue, USD_DECIMALS, true);
|
|
62
|
+
const tokenValue = priceToTokenAmount(formattedValue, token?.priceUSD);
|
|
63
|
+
setFormattedPriceInput(formattedValue);
|
|
64
|
+
setFieldValue(amountKey, tokenValue, { isDirty: true, isTouched: true });
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
formattedValue = formatInputAmount(inputValue, token?.decimals, true);
|
|
68
|
+
setFieldValue(amountKey, formattedValue, {
|
|
69
|
+
isDirty: true,
|
|
70
|
+
isTouched: true,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
35
73
|
};
|
|
36
74
|
const handleBlur = (event) => {
|
|
37
|
-
const { value } = event.target;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
75
|
+
const { value: inputValue } = event.target;
|
|
76
|
+
isEditingRef.current = false;
|
|
77
|
+
let formattedValue;
|
|
78
|
+
if (currentInputMode === 'price') {
|
|
79
|
+
const cleanInputValue = inputValue.replace('$', '');
|
|
80
|
+
formattedValue = formatInputAmount(cleanInputValue, USD_DECIMALS);
|
|
81
|
+
const tokenValue = priceToTokenAmount(formattedValue, token?.priceUSD);
|
|
82
|
+
const formattedAmount = formatInputAmount(tokenValue, token?.decimals);
|
|
83
|
+
setFieldValue(amountKey, formattedAmount, {
|
|
84
|
+
isDirty: true,
|
|
85
|
+
isTouched: true,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
formattedValue = formatInputAmount(inputValue, token?.decimals);
|
|
90
|
+
setFieldValue(amountKey, formattedValue, {
|
|
91
|
+
isDirty: true,
|
|
92
|
+
isTouched: true,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
41
95
|
};
|
|
42
|
-
// biome-ignore lint/correctness/useExhaustiveDependencies: we need
|
|
96
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: we need run effect on value change
|
|
43
97
|
useLayoutEffect(() => {
|
|
44
98
|
if (ref.current) {
|
|
45
99
|
fitInputText(maxInputFontSize, minInputFontSize, ref.current);
|
|
46
100
|
}
|
|
47
|
-
}, [
|
|
101
|
+
}, [displayValue]);
|
|
48
102
|
const title = subvariant === 'custom'
|
|
49
103
|
? subvariantOptions?.custom === 'deposit'
|
|
50
104
|
? t('header.amount')
|
|
51
105
|
: t('header.youPay')
|
|
52
106
|
: t('header.send');
|
|
53
|
-
return (_jsxs(InputCard, { ...props, children: [_jsx(
|
|
107
|
+
return (_jsxs(InputCard, { ...props, children: [_jsxs(AmountInputCardHeader, { children: [_jsx(AmountInputCardTitle, { children: title }), endAdornment] }), _jsxs(FormContainer, { children: [_jsx(AmountInputStartAdornment, { formType: formType }), _jsxs(FormControl, { fullWidth: true, children: [_jsx(Input, { inputRef: ref, size: "small", autoComplete: "off", placeholder: currentInputMode === 'price' ? '$0' : '0', startAdornment: startAdornment, inputProps: {
|
|
54
108
|
inputMode: 'decimal',
|
|
55
|
-
}, onChange: handleChange, onBlur: handleBlur, value:
|
|
109
|
+
}, onChange: handleChange, onBlur: handleBlur, value: currentInputMode === 'price'
|
|
110
|
+
? displayValue
|
|
111
|
+
? `$${displayValue}`
|
|
112
|
+
: ''
|
|
113
|
+
: displayValue, name: amountKey, disabled: disabled, required: true }), bottomAdornment] })] })] }));
|
|
56
114
|
};
|
|
57
115
|
//# sourceMappingURL=AmountInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmountInput.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/AmountInput.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"AmountInput.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/AmountInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,3 +3,7 @@ export declare const minInputFontSize = 14;
|
|
|
3
3
|
export declare const FormContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
4
4
|
export declare const FormControl: import("@emotion/styled").StyledComponent<import("@mui/material").FormControlOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "error" | "color" | "margin" | "children" | "sx" | "style" | "className" | "classes" | "variant" | "size" | "disabled" | "fullWidth" | "required" | "focused" | "hiddenLabel"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
5
5
|
export declare const Input: import("@emotion/styled").StyledComponent<import("@mui/material").InputBaseProps & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
6
|
+
export declare const AmountInputCardTitle: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "color" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "p" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "textTransform" | "children" | "sx" | "style" | "className" | "classes" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variant" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
|
|
7
|
+
required?: boolean;
|
|
8
|
+
}, {}, {}>;
|
|
9
|
+
export declare const AmountInputCardHeader: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Box, InputBase, inputBaseClasses, FormControl as MuiFormControl, styled, } from '@mui/material';
|
|
2
|
+
import { CardTitle } from '../Card/CardTitle.js';
|
|
2
3
|
export const maxInputFontSize = 24;
|
|
3
4
|
export const minInputFontSize = 14;
|
|
4
5
|
export const FormContainer = styled(Box)(({ theme }) => ({
|
|
@@ -32,4 +33,14 @@ export const Input = styled(InputBase)(({ theme }) => ({
|
|
|
32
33
|
WebkitTextFillColor: 'unset',
|
|
33
34
|
},
|
|
34
35
|
}));
|
|
36
|
+
export const AmountInputCardTitle = styled(CardTitle)(({ theme }) => ({
|
|
37
|
+
padding: theme.spacing(2, 0, 0, 0),
|
|
38
|
+
}));
|
|
39
|
+
export const AmountInputCardHeader = styled(Box)(({ theme }) => ({
|
|
40
|
+
padding: theme.spacing(0, 2, 0, 2),
|
|
41
|
+
display: 'flex',
|
|
42
|
+
justifyContent: 'space-between',
|
|
43
|
+
alignItems: 'start',
|
|
44
|
+
height: 30,
|
|
45
|
+
}));
|
|
35
46
|
//# sourceMappingURL=AmountInput.style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmountInput.style.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/AmountInput.style.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,SAAS,EACT,gBAAgB,EAChB,WAAW,IAAI,cAAc,EAC7B,MAAM,GACP,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"AmountInput.style.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/AmountInput.style.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,SAAS,EACT,gBAAgB,EAChB,WAAW,IAAI,cAAc,EAC7B,MAAM,GACP,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAElC,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,EAAE,EAAE;CACX,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,GAAG;IACf,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE;QAC9B,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACnC;IACD,sGAAsG,EACpG;QACE,gBAAgB,EAAE,MAAM;QACxB,MAAM,EAAE,CAAC;KACV;IACH,wBAAwB,EAAE;QACxB,aAAa,EAAE,WAAW;KAC3B;IACD,CAAC,KAAK,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE;QAClC,KAAK,EAAE,SAAS;KACjB;IACD,CAAC,IAAI,gBAAgB,CAAC,KAAK,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE;QAC3D,mBAAmB,EAAE,OAAO;KAC7B;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACnC,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM;IACf,cAAc,EAAE,eAAe;IAC/B,UAAU,EAAE,OAAO;IACnB,MAAM,EAAE,EAAE;CACX,CAAC,CAAC,CAAA"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
export declare const ButtonContainer: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
1
2
|
export declare const MaxButton: import("@emotion/styled").StyledComponent<import("@mui/material").ButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "color" | "children" | "sx" | "style" | "className" | "tabIndex" | "classes" | "variant" | "href" | "size" | "action" | "disabled" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "loading" | "loadingIndicator" | "disableElevation" | "endIcon" | "fullWidth" | "loadingPosition" | "startIcon"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
2
3
|
export declare const MaxButtonSkeleton: import("@emotion/styled").StyledComponent<import("@mui/material").SkeletonOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "width" | "height" | "animation" | "children" | "sx" | "style" | "className" | "classes" | "variant"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
@@ -1,9 +1,68 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { Box, Skeleton, styled } from '@mui/material';
|
|
2
|
+
import { cardClasses } from '@mui/material/Card';
|
|
3
|
+
import { ButtonTertiary } from '../ButtonTertiary.js';
|
|
4
|
+
export const ButtonContainer = styled(Box)(({ theme }) => ({
|
|
5
|
+
display: 'flex',
|
|
6
|
+
gap: theme.spacing(0.5),
|
|
7
|
+
}));
|
|
8
|
+
export const MaxButton = styled(ButtonTertiary)(({ theme }) => ({
|
|
9
|
+
padding: theme.spacing(0.5, 1, 0.5, 1),
|
|
10
|
+
margin: theme.spacing(0, 0, 0, 0.5),
|
|
11
|
+
lineHeight: 1,
|
|
12
|
+
fontSize: '0.75rem',
|
|
6
13
|
minWidth: 'unset',
|
|
14
|
+
height: 24,
|
|
15
|
+
opacity: 0,
|
|
16
|
+
transform: 'scale(0.85) translateY(-10px)',
|
|
17
|
+
transition: 'opacity 200ms cubic-bezier(0.4, 0, 0.2, 1), transform 200ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
18
|
+
'&[data-delay="0"]': {
|
|
19
|
+
[`.${cardClasses.root}:hover &`]: {
|
|
20
|
+
opacity: 1,
|
|
21
|
+
transform: 'scale(1) translateY(0)',
|
|
22
|
+
transitionDelay: '75ms',
|
|
23
|
+
},
|
|
24
|
+
[`.${cardClasses.root}:not(:hover) &`]: {
|
|
25
|
+
opacity: 0,
|
|
26
|
+
transform: 'scale(0.85) translateY(-10px)',
|
|
27
|
+
transitionDelay: '0ms',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
'&[data-delay="1"]': {
|
|
31
|
+
[`.${cardClasses.root}:hover &`]: {
|
|
32
|
+
opacity: 1,
|
|
33
|
+
transform: 'scale(1) translateY(0)',
|
|
34
|
+
transitionDelay: '50ms',
|
|
35
|
+
},
|
|
36
|
+
[`.${cardClasses.root}:not(:hover) &`]: {
|
|
37
|
+
opacity: 0,
|
|
38
|
+
transform: 'scale(0.85) translateY(-10px)',
|
|
39
|
+
transitionDelay: '25ms',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
'&[data-delay="2"]': {
|
|
43
|
+
[`.${cardClasses.root}:hover &`]: {
|
|
44
|
+
opacity: 1,
|
|
45
|
+
transform: 'scale(1) translateY(0)',
|
|
46
|
+
transitionDelay: '25ms',
|
|
47
|
+
},
|
|
48
|
+
[`.${cardClasses.root}:not(:hover) &`]: {
|
|
49
|
+
opacity: 0,
|
|
50
|
+
transform: 'scale(0.85) translateY(-10px)',
|
|
51
|
+
transitionDelay: '50ms',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
'&[data-delay="3"]': {
|
|
55
|
+
[`.${cardClasses.root}:hover &`]: {
|
|
56
|
+
opacity: 1,
|
|
57
|
+
transform: 'scale(1) translateY(0)',
|
|
58
|
+
transitionDelay: '0ms',
|
|
59
|
+
},
|
|
60
|
+
[`.${cardClasses.root}:not(:hover) &`]: {
|
|
61
|
+
opacity: 0,
|
|
62
|
+
transform: 'scale(0.85) translateY(-10px)',
|
|
63
|
+
transitionDelay: '75ms',
|
|
64
|
+
},
|
|
65
|
+
},
|
|
7
66
|
}));
|
|
8
67
|
export const MaxButtonSkeleton = styled(Skeleton)(({ theme }) => ({
|
|
9
68
|
width: 46,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmountInputAdornment.style.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/AmountInputAdornment.style.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"AmountInputAdornment.style.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/AmountInputAdornment.style.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO,EAAE,MAAM;IACf,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;CACxB,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACnC,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,+BAA+B;IAC1C,UAAU,EACR,0FAA0F;IAC5F,mBAAmB,EAAE;QACnB,CAAC,IAAI,WAAW,CAAC,IAAI,UAAU,CAAC,EAAE;YAChC,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,wBAAwB;YACnC,eAAe,EAAE,MAAM;SACxB;QACD,CAAC,IAAI,WAAW,CAAC,IAAI,gBAAgB,CAAC,EAAE;YACtC,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,+BAA+B;YAC1C,eAAe,EAAE,KAAK;SACvB;KACF;IACD,mBAAmB,EAAE;QACnB,CAAC,IAAI,WAAW,CAAC,IAAI,UAAU,CAAC,EAAE;YAChC,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,wBAAwB;YACnC,eAAe,EAAE,MAAM;SACxB;QACD,CAAC,IAAI,WAAW,CAAC,IAAI,gBAAgB,CAAC,EAAE;YACtC,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,+BAA+B;YAC1C,eAAe,EAAE,MAAM;SACxB;KACF;IACD,mBAAmB,EAAE;QACnB,CAAC,IAAI,WAAW,CAAC,IAAI,UAAU,CAAC,EAAE;YAChC,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,wBAAwB;YACnC,eAAe,EAAE,MAAM;SACxB;QACD,CAAC,IAAI,WAAW,CAAC,IAAI,gBAAgB,CAAC,EAAE;YACtC,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,+BAA+B;YAC1C,eAAe,EAAE,MAAM;SACxB;KACF;IACD,mBAAmB,EAAE;QACnB,CAAC,IAAI,WAAW,CAAC,IAAI,UAAU,CAAC,EAAE;YAChC,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,wBAAwB;YACnC,eAAe,EAAE,KAAK;SACvB;QACD,CAAC,IAAI,WAAW,CAAC,IAAI,gBAAgB,CAAC,EAAE;YACtC,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,+BAA+B;YAC1C,eAAe,EAAE,MAAM;SACxB;KACF;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAChE,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB;CACrD,CAAC,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { InputAdornment } from '@mui/material';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { formatUnits } from 'viem';
|
|
@@ -8,7 +8,7 @@ import { useTokenAddressBalance } from '../../hooks/useTokenAddressBalance.js';
|
|
|
8
8
|
import { FormKeyHelper } from '../../stores/form/types.js';
|
|
9
9
|
import { useFieldActions } from '../../stores/form/useFieldActions.js';
|
|
10
10
|
import { useFieldValues } from '../../stores/form/useFieldValues.js';
|
|
11
|
-
import {
|
|
11
|
+
import { ButtonContainer, MaxButton } from './AmountInputAdornment.style.js';
|
|
12
12
|
export const AmountInputEndAdornment = ({ formType }) => {
|
|
13
13
|
const { t } = useTranslation();
|
|
14
14
|
const { getChainById } = useAvailableChains();
|
|
@@ -17,10 +17,10 @@ export const AmountInputEndAdornment = ({ formType }) => {
|
|
|
17
17
|
// We get gas recommendations for the source chain to make sure that after pressing the Max button
|
|
18
18
|
// the user will have enough funds remaining to cover gas costs
|
|
19
19
|
const { data } = useGasRecommendation(chainId);
|
|
20
|
-
const { token
|
|
21
|
-
const
|
|
20
|
+
const { token } = useTokenAddressBalance(chainId, tokenAddress);
|
|
21
|
+
const getMaxAmount = () => {
|
|
22
22
|
if (!token?.amount) {
|
|
23
|
-
return;
|
|
23
|
+
return 0n;
|
|
24
24
|
}
|
|
25
25
|
const chain = getChainById(chainId);
|
|
26
26
|
let maxAmount = token.amount;
|
|
@@ -30,12 +30,25 @@ export const AmountInputEndAdornment = ({ formType }) => {
|
|
|
30
30
|
maxAmount = token.amount - recommendedAmount;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
return maxAmount;
|
|
34
|
+
};
|
|
35
|
+
const handlePercentage = (percentage) => {
|
|
36
|
+
const maxAmount = getMaxAmount();
|
|
37
|
+
if (maxAmount && token?.decimals) {
|
|
38
|
+
const percentageAmount = (maxAmount * BigInt(percentage)) / 100n;
|
|
39
|
+
setFieldValue(FormKeyHelper.getAmountKey(formType), formatUnits(percentageAmount, token.decimals), {
|
|
40
|
+
isTouched: true,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const handleMax = () => {
|
|
45
|
+
const maxAmount = getMaxAmount();
|
|
46
|
+
if (maxAmount && token?.decimals) {
|
|
34
47
|
setFieldValue(FormKeyHelper.getAmountKey(formType), formatUnits(maxAmount, token.decimals), {
|
|
35
48
|
isTouched: true,
|
|
36
49
|
});
|
|
37
50
|
}
|
|
38
51
|
};
|
|
39
|
-
return (_jsx(InputAdornment, { position: "end", children:
|
|
52
|
+
return (_jsx(InputAdornment, { position: "end", sx: { paddingTop: 2 }, children: formType === 'from' && token?.amount ? (_jsxs(ButtonContainer, { children: [_jsx(MaxButton, { onClick: () => handlePercentage(25), "data-delay": "0", children: "25%" }), _jsx(MaxButton, { onClick: () => handlePercentage(50), "data-delay": "1", children: "50%" }), _jsx(MaxButton, { onClick: () => handlePercentage(75), "data-delay": "2", children: "75%" }), _jsx(MaxButton, { onClick: handleMax, "data-delay": "3", children: t('button.max') })] })) : null }));
|
|
40
53
|
};
|
|
41
54
|
//# sourceMappingURL=AmountInputEndAdornment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmountInputEndAdornment.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/AmountInputEndAdornment.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AmountInputEndAdornment.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/AmountInputEndAdornment.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import SwapVertIcon from '@mui/icons-material/SwapVert';
|
|
2
3
|
import { FormHelperText, Skeleton, Typography } from '@mui/material';
|
|
3
4
|
import { useTranslation } from 'react-i18next';
|
|
4
5
|
import { useTokenAddressBalance } from '../../hooks/useTokenAddressBalance.js';
|
|
5
6
|
import { FormKeyHelper } from '../../stores/form/types.js';
|
|
6
7
|
import { useFieldValues } from '../../stores/form/useFieldValues.js';
|
|
8
|
+
import { useInputModeStore } from '../../stores/inputMode/useInputModeStore.js';
|
|
7
9
|
import { formatTokenAmount, formatTokenPrice } from '../../utils/format.js';
|
|
10
|
+
import { InputPriceButton } from './PriceFormHelperText.style.js';
|
|
8
11
|
export const PriceFormHelperText = ({ formType }) => {
|
|
9
12
|
const [chainId, tokenAddress] = useFieldValues(FormKeyHelper.getChainKey(formType), FormKeyHelper.getTokenKey(formType));
|
|
10
13
|
const { token, isLoading } = useTokenAddressBalance(chainId, tokenAddress);
|
|
@@ -13,32 +16,55 @@ export const PriceFormHelperText = ({ formType }) => {
|
|
|
13
16
|
export const PriceFormHelperTextBase = ({ formType, isLoading, tokenAddress, token }) => {
|
|
14
17
|
const { t } = useTranslation();
|
|
15
18
|
const [amount] = useFieldValues(FormKeyHelper.getAmountKey(formType));
|
|
19
|
+
const { inputMode, toggleInputMode } = useInputModeStore();
|
|
20
|
+
const currentInputMode = inputMode[formType];
|
|
16
21
|
const tokenAmount = token
|
|
17
22
|
? formatTokenAmount(token.amount, token.decimals)
|
|
18
23
|
: '0';
|
|
19
|
-
const
|
|
24
|
+
const getPriceAmountDisplayValue = () => {
|
|
25
|
+
if (currentInputMode === 'amount') {
|
|
26
|
+
const tokenPrice = formatTokenPrice(amount, token?.priceUSD, token?.decimals);
|
|
27
|
+
return t('format.currency', { value: tokenPrice });
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return t('format.tokenAmount', { value: amount || '0' });
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const handleToggleMode = (e) => {
|
|
34
|
+
e.stopPropagation();
|
|
35
|
+
toggleInputMode(formType);
|
|
36
|
+
};
|
|
20
37
|
return (_jsxs(FormHelperText, { component: "div", sx: {
|
|
21
38
|
display: 'flex',
|
|
22
39
|
justifyContent: 'space-between',
|
|
40
|
+
alignItems: 'center',
|
|
23
41
|
margin: 0,
|
|
24
|
-
marginLeft:
|
|
25
|
-
marginTop: 0.
|
|
26
|
-
}, children: [_jsx(Typography, { sx: {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
42
|
+
marginLeft: 1.25,
|
|
43
|
+
marginTop: 0.5,
|
|
44
|
+
}, children: [_jsxs(InputPriceButton, { onClick: token?.priceUSD ? handleToggleMode : undefined, children: [_jsx(Typography, { sx: {
|
|
45
|
+
color: 'text.secondary',
|
|
46
|
+
fontWeight: 500,
|
|
47
|
+
fontSize: 12,
|
|
48
|
+
lineHeight: 1,
|
|
49
|
+
marginRight: 0.25,
|
|
50
|
+
maxWidth: 136,
|
|
51
|
+
overflow: 'hidden',
|
|
52
|
+
textOverflow: 'ellipsis',
|
|
53
|
+
whiteSpace: 'nowrap',
|
|
54
|
+
}, children: getPriceAmountDisplayValue() }), currentInputMode === 'price' && token?.symbol ? (_jsx(Typography, { sx: {
|
|
55
|
+
color: 'text.secondary',
|
|
56
|
+
fontWeight: 500,
|
|
57
|
+
fontSize: 12,
|
|
58
|
+
lineHeight: 1,
|
|
59
|
+
wordBreak: 'break-word',
|
|
60
|
+
overflowWrap: 'break-word',
|
|
61
|
+
marginRight: 0.25,
|
|
62
|
+
}, children: token.symbol })) : null, token?.priceUSD && _jsx(SwapVertIcon, { sx: { fontSize: 14 } })] }), isLoading && tokenAddress ? (_jsx(Skeleton, { variant: "text", width: 56, height: 16 })) : token?.amount ? (_jsx(Typography, { sx: {
|
|
37
63
|
fontWeight: 500,
|
|
38
64
|
fontSize: 12,
|
|
39
65
|
color: 'text.secondary',
|
|
40
66
|
lineHeight: 1,
|
|
41
|
-
|
|
67
|
+
paddingLeft: 0.25,
|
|
42
68
|
}, title: tokenAmount, children: `/ ${t('format.tokenAmount', {
|
|
43
69
|
value: tokenAmount,
|
|
44
70
|
})}` })) : null] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PriceFormHelperText.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/PriceFormHelperText.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"PriceFormHelperText.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/PriceFormHelperText.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const InputPriceButton: import("@emotion/styled").StyledComponent<import("@mui/material").ButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "color" | "children" | "sx" | "style" | "className" | "tabIndex" | "classes" | "variant" | "href" | "size" | "action" | "disabled" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "loading" | "loadingIndicator" | "disableElevation" | "endIcon" | "fullWidth" | "loadingPosition" | "startIcon"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Button, styled } from '@mui/material';
|
|
2
|
+
export const InputPriceButton = styled(Button)(({ theme, onClick }) => ({
|
|
3
|
+
color: theme.vars.palette.text.secondary,
|
|
4
|
+
padding: theme.spacing(0.25, 0.5, 0.25, 0.75),
|
|
5
|
+
maxHeight: 16,
|
|
6
|
+
fontSize: '0.75rem',
|
|
7
|
+
fontWeight: 500,
|
|
8
|
+
borderRadius: `calc(${theme.vars.shape.borderRadius} * 2)`,
|
|
9
|
+
backgroundColor: 'transparent',
|
|
10
|
+
minWidth: 32,
|
|
11
|
+
...(onClick
|
|
12
|
+
? {
|
|
13
|
+
'&:hover': {
|
|
14
|
+
backgroundColor: `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.04)`,
|
|
15
|
+
},
|
|
16
|
+
...theme.applyStyles('dark', {
|
|
17
|
+
backgroundColor: 'transparent',
|
|
18
|
+
'&:hover': {
|
|
19
|
+
backgroundColor: `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.04)`,
|
|
20
|
+
},
|
|
21
|
+
}),
|
|
22
|
+
}
|
|
23
|
+
: {
|
|
24
|
+
cursor: 'text',
|
|
25
|
+
userSelect: 'text',
|
|
26
|
+
pointerEvents: 'none',
|
|
27
|
+
}),
|
|
28
|
+
}));
|
|
29
|
+
//# sourceMappingURL=PriceFormHelperText.style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PriceFormHelperText.style.js","sourceRoot":"","sources":["../../../../src/components/AmountInput/PriceFormHelperText.style.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS;IACxC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;IAC7C,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,GAAG;IACf,YAAY,EAAE,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,OAAO;IAC1D,eAAe,EAAE,aAAa;IAC9B,QAAQ,EAAE,EAAE;IACZ,GAAG,CAAC,OAAO;QACT,CAAC,CAAC;YACE,SAAS,EAAE;gBACT,eAAe,EAAE,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,UAAU;aACjF;YACD,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;gBAC3B,eAAe,EAAE,aAAa;gBAC9B,SAAS,EAAE;oBACT,eAAe,EAAE,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,UAAU;iBACjF;aACF,CAAC;SACH;QACH,CAAC,CAAC;YACE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,MAAM;YAClB,aAAa,EAAE,MAAM;SACtB,CAAC;CACP,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppContainer.js","sourceRoot":"","sources":["../../../src/components/AppContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAEpE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,0GAA0G;AAC1G,wHAAwH;AACxH,uHAAuH;AACvH,mIAAmI;AACnI,0BAA0B;AAC1B,2BAA2B;AAC3B,6EAA6E;AAE7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,EAAE;IAC9C,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS;CAChD,CAAC,CAA8B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM;IACf,cAAc,EAAE,QAAQ;IACxB,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,CAAC;IACP,MAAM,EACJ,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,MAAM;QACjC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS;YAC1B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,MAAM;IACzC,QAAQ,EAAE;QACR;YACE,KAAK,EAAE;gBACL,OAAO,EAAE,QAAQ;aAClB;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM;aACf;SACF;KACF;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,EAAE;IAC3C,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS;CAChD,CAAC,CAA8B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5C,MAAM,SAAS,GACb,KAAK,CAAC,SAAS,EAAE,MAAM,KAAK,aAAa;QACvC,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAC/B,OAAO;QACL,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,aAAa;QACxB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;QACrC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;QACrC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;QACjD,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,CAAC;QACP,GAAG,KAAK,CAAC,SAAS;QAClB,SAAS,EACP,KAAK,CAAC,SAAS,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM;YAC7D,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,SAAS;QACf,MAAM,EAAE,CAAC,EAAE,0CAA0C;QACrD,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE;oBACL,OAAO,EAAE,QAAQ;iBAClB;gBACD,KAAK,EAAE;oBACL,SAAS,EAAE,MAAM;oBACjB,MAAM,EAAE,MAAM;oBACd,SAAS,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"AppContainer.js","sourceRoot":"","sources":["../../../src/components/AppContainer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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,
|