@ton/appkit-react 1.0.0-alpha.0 → 1.0.0-alpha.2
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/README.md +7 -6
- package/dist/esm/components/shared/amount-preview/amount-preview.js +17 -0
- package/dist/esm/components/shared/amount-preview/amount-preview.js.map +1 -0
- package/dist/esm/components/shared/amount-preview/amount-preview.module.css +40 -0
- package/dist/esm/{features/balances/components/balance-badge → components/shared/amount-preview}/index.js +1 -1
- package/dist/esm/components/shared/amount-preview/index.js.map +1 -0
- package/dist/esm/components/shared/flow-preview/flow-preview.js +24 -0
- package/dist/esm/components/shared/flow-preview/flow-preview.js.map +1 -0
- package/dist/esm/components/shared/flow-preview/flow-preview.module.css +37 -0
- package/dist/esm/components/shared/flow-preview/index.js +9 -0
- package/dist/esm/components/shared/flow-preview/index.js.map +1 -0
- package/dist/esm/components/shared/settings-button/settings-button.js +1 -1
- package/dist/esm/components/shared/settings-button/settings-button.js.map +1 -1
- package/dist/esm/components/ui/button/button.module.css +1 -1
- package/dist/esm/components/ui/logo/logo.module.css +1 -3
- package/dist/esm/components/ui/modal/modal.module.css +1 -1
- package/dist/esm/components/ui/tabs/tabs.module.css +1 -1
- package/dist/esm/features/balances/components/send-jetton-button/send-jetton-button.js +3 -3
- package/dist/esm/features/balances/components/send-jetton-button/send-jetton-button.js.map +1 -1
- package/dist/esm/features/balances/index.js +0 -1
- package/dist/esm/features/balances/index.js.map +1 -1
- package/dist/esm/features/staking/components/select-unstake-mode/select-unstake-mode.js +2 -1
- package/dist/esm/features/staking/components/select-unstake-mode/select-unstake-mode.js.map +1 -1
- package/dist/esm/features/staking/components/select-unstake-mode/select-unstake-mode.module.css +2 -6
- package/dist/esm/features/staking/components/staking-confirm-modal/index.js +9 -0
- package/dist/esm/features/staking/components/staking-confirm-modal/index.js.map +1 -0
- package/dist/esm/features/staking/components/staking-confirm-modal/staking-confirm-modal.js +46 -0
- package/dist/esm/features/staking/components/staking-confirm-modal/staking-confirm-modal.js.map +1 -0
- package/dist/esm/features/staking/components/staking-confirm-modal/staking-confirm-modal.module.css +11 -0
- package/dist/esm/features/staking/components/staking-widget-provider/staking-widget-provider.js +27 -4
- package/dist/esm/features/staking/components/staking-widget-provider/staking-widget-provider.js.map +1 -1
- package/dist/esm/features/staking/components/staking-widget-provider/use-staking-validation.js +12 -3
- package/dist/esm/features/staking/components/staking-widget-provider/use-staking-validation.js.map +1 -1
- package/dist/esm/features/staking/components/staking-widget-ui/staking-widget-ui.js +16 -4
- package/dist/esm/features/staking/components/staking-widget-ui/staking-widget-ui.js.map +1 -1
- package/dist/esm/features/staking/components/staking-widget-ui/staking-widget-ui.module.css +4 -0
- package/dist/esm/features/staking/hooks/use-build-stake-transaction.js +2 -2
- package/dist/esm/features/staking/hooks/use-build-stake-transaction.js.map +1 -1
- package/dist/esm/features/staking/utils/map-staking-error.js +6 -4
- package/dist/esm/features/staking/utils/map-staking-error.js.map +1 -1
- package/dist/esm/features/swap/components/swap-confirm-modal/index.js +9 -0
- package/dist/esm/features/swap/components/swap-confirm-modal/index.js.map +1 -0
- package/dist/esm/features/swap/components/swap-confirm-modal/swap-confirm-modal.js +12 -0
- package/dist/esm/features/swap/components/swap-confirm-modal/swap-confirm-modal.js.map +1 -0
- package/dist/esm/features/swap/components/swap-confirm-modal/swap-confirm-modal.module.css +7 -0
- package/dist/esm/features/swap/components/swap-widget-provider/swap-widget-provider.js +28 -6
- package/dist/esm/features/swap/components/swap-widget-provider/swap-widget-provider.js.map +1 -1
- package/dist/esm/features/swap/components/swap-widget-provider/use-swap-validation.js +12 -3
- package/dist/esm/features/swap/components/swap-widget-provider/use-swap-validation.js.map +1 -1
- package/dist/esm/features/swap/components/swap-widget-ui/swap-widget-ui.js +16 -4
- package/dist/esm/features/swap/components/swap-widget-ui/swap-widget-ui.js.map +1 -1
- package/dist/esm/features/swap/utils/map-swap-error.js +10 -8
- package/dist/esm/features/swap/utils/map-swap-error.js.map +1 -1
- package/dist/esm/locales/en.js +9 -0
- package/dist/esm/locales/en.js.map +1 -1
- package/dist/esm/styles/index.css +3 -3
- package/dist/esm/utils/map-defi-error.js +7 -7
- package/dist/esm/utils/map-defi-error.js.map +1 -1
- package/dist/types/components/shared/amount-preview/amount-preview.d.ts +24 -0
- package/dist/types/components/shared/amount-preview/amount-preview.d.ts.map +1 -0
- package/dist/types/{features/balances/components/balance-badge → components/shared/amount-preview}/index.d.ts +1 -1
- package/dist/types/components/shared/amount-preview/index.d.ts.map +1 -0
- package/dist/types/components/shared/flow-preview/flow-preview.d.ts +18 -0
- package/dist/types/components/shared/flow-preview/flow-preview.d.ts.map +1 -0
- package/dist/types/components/shared/flow-preview/index.d.ts +9 -0
- package/dist/types/components/shared/flow-preview/index.d.ts.map +1 -0
- package/dist/types/features/balances/index.d.ts +0 -1
- package/dist/types/features/balances/index.d.ts.map +1 -1
- package/dist/types/features/staking/components/select-unstake-mode/select-unstake-mode.d.ts.map +1 -1
- package/dist/types/features/staking/components/staking-confirm-modal/index.d.ts +9 -0
- package/dist/types/features/staking/components/staking-confirm-modal/index.d.ts.map +1 -0
- package/dist/types/features/staking/components/staking-confirm-modal/staking-confirm-modal.d.ts +23 -0
- package/dist/types/features/staking/components/staking-confirm-modal/staking-confirm-modal.d.ts.map +1 -0
- package/dist/types/features/staking/components/staking-widget-provider/staking-widget-provider.d.ts.map +1 -1
- package/dist/types/features/staking/components/staking-widget-provider/use-staking-validation.d.ts +3 -1
- package/dist/types/features/staking/components/staking-widget-provider/use-staking-validation.d.ts.map +1 -1
- package/dist/types/features/staking/components/staking-widget-ui/staking-widget-ui.d.ts.map +1 -1
- package/dist/types/features/staking/hooks/use-build-stake-transaction.d.ts +3 -2
- package/dist/types/features/staking/hooks/use-build-stake-transaction.d.ts.map +1 -1
- package/dist/types/features/staking/utils/map-staking-error.d.ts +5 -3
- package/dist/types/features/staking/utils/map-staking-error.d.ts.map +1 -1
- package/dist/types/features/swap/components/swap-confirm-modal/index.d.ts +9 -0
- package/dist/types/features/swap/components/swap-confirm-modal/index.d.ts.map +1 -0
- package/dist/types/features/swap/components/swap-confirm-modal/swap-confirm-modal.d.ts +26 -0
- package/dist/types/features/swap/components/swap-confirm-modal/swap-confirm-modal.d.ts.map +1 -0
- package/dist/types/features/swap/components/swap-widget-provider/swap-widget-provider.d.ts.map +1 -1
- package/dist/types/features/swap/components/swap-widget-provider/use-swap-validation.d.ts +4 -1
- package/dist/types/features/swap/components/swap-widget-provider/use-swap-validation.d.ts.map +1 -1
- package/dist/types/features/swap/components/swap-widget-ui/swap-widget-ui.d.ts.map +1 -1
- package/dist/types/features/swap/utils/map-swap-error.d.ts +4 -2
- package/dist/types/features/swap/utils/map-swap-error.d.ts.map +1 -1
- package/dist/types/libs/i18n.d.ts +9 -0
- package/dist/types/libs/i18n.d.ts.map +1 -1
- package/dist/types/locales/en.d.ts +9 -0
- package/dist/types/locales/en.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/components/shared/amount-preview/amount-preview.tsx +74 -0
- package/src/{features/balances/components/balance-badge → components/shared/amount-preview}/index.ts +1 -1
- package/src/components/shared/flow-preview/flow-preview.tsx +64 -0
- package/src/components/shared/flow-preview/index.ts +9 -0
- package/src/components/shared/settings-button/settings-button.tsx +1 -1
- package/src/features/balances/components/send-jetton-button/send-jetton-button.tsx +3 -3
- package/src/features/balances/index.ts +0 -1
- package/src/features/staking/components/select-unstake-mode/select-unstake-mode.tsx +12 -4
- package/src/features/staking/components/staking-confirm-modal/index.ts +9 -0
- package/src/features/staking/components/staking-confirm-modal/staking-confirm-modal.tsx +121 -0
- package/src/features/staking/components/staking-widget-provider/staking-widget-provider.tsx +39 -4
- package/src/features/staking/components/staking-widget-provider/use-staking-validation.ts +14 -2
- package/src/features/staking/components/staking-widget-ui/staking-widget-ui.tsx +39 -13
- package/src/features/staking/hooks/use-build-stake-transaction.ts +7 -2
- package/src/features/staking/utils/map-staking-error.ts +6 -4
- package/src/features/swap/components/swap-confirm-modal/index.ts +9 -0
- package/src/features/swap/components/swap-confirm-modal/swap-confirm-modal.tsx +75 -0
- package/src/features/swap/components/swap-widget-provider/swap-widget-provider.tsx +40 -6
- package/src/features/swap/components/swap-widget-provider/use-swap-validation.ts +17 -2
- package/src/features/swap/components/swap-widget-ui/swap-widget-ui.tsx +30 -3
- package/src/features/swap/utils/map-swap-error.ts +10 -8
- package/src/locales/en.ts +9 -0
- package/src/utils/map-defi-error.ts +7 -7
- package/dist/esm/features/balances/components/balance-badge/balance-badge.js +0 -33
- package/dist/esm/features/balances/components/balance-badge/balance-badge.js.map +0 -1
- package/dist/esm/features/balances/components/balance-badge/balance-badge.module.css +0 -21
- package/dist/esm/features/balances/components/balance-badge/index.js.map +0 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +0 -1
- package/dist/types/features/balances/components/balance-badge/balance-badge.d.ts +0 -21
- package/dist/types/features/balances/components/balance-badge/balance-badge.d.ts.map +0 -1
- package/dist/types/features/balances/components/balance-badge/index.d.ts.map +0 -1
- package/src/features/balances/components/balance-badge/balance-badge.tsx +0 -47
|
@@ -6,12 +6,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
|
-
import { useMemo, useState } from 'react';
|
|
9
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
10
10
|
import clsx from 'clsx';
|
|
11
11
|
import { CenteredAmountInput } from '../../../../components/ui/centered-amount-input';
|
|
12
12
|
import { Tabs, TabsList, TabsTrigger, TabsContent } from '../../../../components/ui/tabs';
|
|
13
13
|
import { useI18n } from '../../../settings/hooks/use-i18n';
|
|
14
14
|
import { StakingBalanceBlock } from '../staking-balance-block';
|
|
15
|
+
import { StakingConfirmModal } from '../staking-confirm-modal';
|
|
15
16
|
import { StakingInfo } from '../staking-info';
|
|
16
17
|
import { SelectUnstakeMode } from '../select-unstake-mode';
|
|
17
18
|
import { StakingSettingsModal } from '../staking-settings-modal';
|
|
@@ -23,14 +24,25 @@ import { SettingsButton } from '../../../../components/shared/settings-button';
|
|
|
23
24
|
export const StakingWidgetUI = ({ amount, canSubmit, isQuoteLoading, error, providerInfo, providerMetadata, stakingProvider, stakingProviders, setStakingProviderId, network, isProviderInfoLoading, setAmount, direction, quote, sendTransaction, isSendingTransaction, unstakeMode, setUnstakeMode, stakedBalance, isStakedBalanceLoading, onChangeDirection, isReversed, toggleReversed, reversedAmount, onMaxClick, balance, isBalanceLoading, isLowBalanceWarningOpen, lowBalanceMode, lowBalanceRequiredTon, onLowBalanceChange, onLowBalanceCancel, className, ...props }) => {
|
|
24
25
|
const { t } = useI18n();
|
|
25
26
|
const [isSettingsOpen, setIsSettingsOpen] = useState(false);
|
|
27
|
+
const [isConfirmOpen, setIsConfirmOpen] = useState(false);
|
|
26
28
|
const receiveToken = providerMetadata?.receiveToken;
|
|
27
29
|
const stakeToken = providerMetadata?.stakeToken;
|
|
28
30
|
const buttonText = useMemo(() => {
|
|
31
|
+
if (isSendingTransaction || isQuoteLoading)
|
|
32
|
+
return t('staking.loading');
|
|
29
33
|
if (error)
|
|
30
34
|
return t(error);
|
|
31
35
|
return direction === 'stake' ? t('staking.continue') : t('staking.unstake');
|
|
32
|
-
}, [error, direction, t]);
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
}, [isSendingTransaction, isQuoteLoading, error, direction, t]);
|
|
37
|
+
// Close the modal immediately; the build/send result (including errors) is surfaced
|
|
38
|
+
// back in the widget's main button via the `error` from the provider.
|
|
39
|
+
const handleConfirm = useCallback(() => {
|
|
40
|
+
setIsConfirmOpen(false);
|
|
41
|
+
sendTransaction().catch(() => {
|
|
42
|
+
// Error is captured by the mutation and shown through the validator's `error` output.
|
|
43
|
+
});
|
|
44
|
+
}, [sendTransaction]);
|
|
45
|
+
const submitActions = (_jsxs("div", { className: styles.actions, children: [_jsx(ButtonWithConnect, { variant: "fill", size: "l", fullWidth: true, disabled: !canSubmit || isQuoteLoading || isSendingTransaction, onClick: () => setIsConfirmOpen(true), children: buttonText }), _jsx(SettingsButton, { onClick: () => setIsSettingsOpen(true) })] }));
|
|
46
|
+
return (_jsxs("div", { className: clsx(styles.widget, className), ...props, children: [_jsxs(Tabs, { defaultValue: direction, onValueChange: (value) => onChangeDirection(value), children: [_jsxs(TabsList, { children: [_jsx(TabsTrigger, { value: "stake", children: t('staking.stake') }), _jsx(TabsTrigger, { value: "unstake", children: t('staking.unstake') })] }), _jsx(TabsContent, { className: styles.tab, value: "stake", children: _jsxs("div", { className: styles.content, children: [_jsxs("div", { className: styles.inputSection, children: [_jsx(CenteredAmountInput, { value: amount, onValueChange: setAmount, ticker: stakeToken?.ticker }), receiveToken && (_jsx(AmountReversed, { value: reversedAmount, ticker: receiveToken.ticker, decimals: receiveToken.decimals }))] }), _jsx(StakingBalanceBlock, { direction: "stake", providerMetadata: providerMetadata, stakedBalance: stakedBalance?.stakedBalance, isStakedBalanceLoading: isStakedBalanceLoading, balance: balance, isBalanceLoading: isBalanceLoading, onMaxClick: onMaxClick }), submitActions] }) }), _jsx(TabsContent, { value: "unstake", children: _jsxs("div", { className: styles.content, children: [_jsxs("div", { className: styles.inputSection, children: [_jsx(CenteredAmountInput, { value: amount, onValueChange: setAmount, ticker: !isReversed && receiveToken ? receiveToken.ticker : stakeToken?.ticker }), receiveToken && (_jsx(AmountReversed, { value: reversedAmount, ticker: isReversed ? receiveToken.ticker : (stakeToken?.ticker ?? ''), decimals: isReversed ? receiveToken.decimals : stakeToken?.decimals, onChangeDirection: providerMetadata?.supportsReversedQuote ? toggleReversed : undefined }))] }), _jsx(StakingBalanceBlock, { direction: "unstake", providerMetadata: providerMetadata, stakedBalance: stakedBalance?.stakedBalance, isStakedBalanceLoading: isStakedBalanceLoading, balance: balance, isBalanceLoading: isBalanceLoading, onMaxClick: onMaxClick }), submitActions, _jsx(SelectUnstakeMode, { value: unstakeMode, onValueChange: setUnstakeMode, providerInfo: providerInfo, providerMetadata: providerMetadata })] }) })] }), _jsx(StakingInfo, { className: styles.info, quote: quote, isQuoteLoading: isQuoteLoading, providerInfo: providerInfo, providerMetadata: providerMetadata, isProviderInfoLoading: isProviderInfoLoading, direction: direction }), _jsx(LowBalanceModal, { open: isLowBalanceWarningOpen, mode: lowBalanceMode, requiredTon: lowBalanceRequiredTon, onChange: onLowBalanceChange, onCancel: onLowBalanceCancel }), _jsx(StakingSettingsModal, { open: isSettingsOpen, onClose: () => setIsSettingsOpen(false), provider: stakingProvider, providers: stakingProviders, onProviderChange: setStakingProviderId, network: network }), _jsx(StakingConfirmModal, { open: isConfirmOpen, onClose: () => setIsConfirmOpen(false), onConfirm: handleConfirm, direction: direction, network: network, quote: quote, providerInfo: providerInfo, providerMetadata: providerMetadata, isProviderInfoLoading: isProviderInfoLoading, isQuoteLoading: isQuoteLoading })] }));
|
|
35
47
|
};
|
|
36
48
|
//# sourceMappingURL=staking-widget-ui.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staking-widget-ui.js","sourceRoot":"","sources":["../../../../../../src/features/staking/components/staking-widget-ui/staking-widget-ui.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"staking-widget-ui.js","sourceRoot":"","sources":["../../../../../../src/features/staking/components/staking-widget-ui/staking-widget-ui.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,8 @@ import { useMutation } from '../../../libs/query';
|
|
|
11
11
|
/**
|
|
12
12
|
* Hook to build stake transaction
|
|
13
13
|
*/
|
|
14
|
-
export const useBuildStakeTransaction = () => {
|
|
14
|
+
export const useBuildStakeTransaction = (parameters) => {
|
|
15
15
|
const appKit = useAppKit();
|
|
16
|
-
return useMutation(buildStakeTransactionMutationOptions(appKit));
|
|
16
|
+
return useMutation(buildStakeTransactionMutationOptions(appKit, parameters));
|
|
17
17
|
};
|
|
18
18
|
//# sourceMappingURL=use-build-stake-transaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-build-stake-transaction.js","sourceRoot":"","sources":["../../../../../src/features/staking/hooks/use-build-stake-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,oCAAoC,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-build-stake-transaction.js","sourceRoot":"","sources":["../../../../../src/features/staking/hooks/use-build-stake-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,oCAAoC,EAAE,MAAM,qBAAqB,CAAC;AAQ3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAWlD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACpC,UAAwD,EACb,EAAE;IAC7C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,WAAW,CAAC,oCAAoC,CAAU,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAC1F,CAAC,CAAC"}
|
|
@@ -8,10 +8,12 @@
|
|
|
8
8
|
import { StakingError, StakingErrorCode } from '@ton/appkit';
|
|
9
9
|
import { mapDefiError } from '../../../utils/map-defi-error';
|
|
10
10
|
/**
|
|
11
|
-
* Map a thrown staking error to an i18n key. Tries staking-specific codes first, falls back to
|
|
12
|
-
* shared {@link mapDefiError} for base DeFi codes, and finally to
|
|
11
|
+
* Map a thrown staking error to an i18n key. Tries staking-specific codes first, falls back to
|
|
12
|
+
* the shared {@link mapDefiError} for base DeFi codes, and finally to the caller-provided
|
|
13
|
+
* {@link fallback} (defaults to `staking.quoteError`, but send-time callers should pass
|
|
14
|
+
* `staking.sendFailed`).
|
|
13
15
|
*/
|
|
14
|
-
export const mapStakingError = (error) => {
|
|
16
|
+
export const mapStakingError = (error, fallback = 'staking.quoteError') => {
|
|
15
17
|
if (error instanceof StakingError) {
|
|
16
18
|
switch (error.code) {
|
|
17
19
|
case StakingErrorCode.InvalidParams:
|
|
@@ -20,6 +22,6 @@ export const mapStakingError = (error) => {
|
|
|
20
22
|
return 'staking.unsupportedOperation';
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
|
-
return mapDefiError(error) ??
|
|
25
|
+
return mapDefiError(error) ?? fallback;
|
|
24
26
|
};
|
|
25
27
|
//# sourceMappingURL=map-staking-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-staking-error.js","sourceRoot":"","sources":["../../../../../src/features/staking/utils/map-staking-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D
|
|
1
|
+
{"version":3,"file":"map-staking-error.js","sourceRoot":"","sources":["../../../../../src/features/staking/utils/map-staking-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAE,WAAmB,oBAAoB,EAAU,EAAE;IAC/F,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAChC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,gBAAgB,CAAC,aAAa;gBAC/B,OAAO,uBAAuB,CAAC;YACnC,KAAK,gBAAgB,CAAC,oBAAoB;gBACtC,OAAO,8BAA8B,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;AAC3C,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/features/swap/components/swap-confirm-modal/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Modal } from '../../../../components/ui/modal/modal';
|
|
3
|
+
import { Button } from '../../../../components/ui/button';
|
|
4
|
+
import { FlowPreview } from '../../../../components/shared/flow-preview';
|
|
5
|
+
import { useI18n } from '../../../settings/hooks/use-i18n';
|
|
6
|
+
import { SwapInfo } from '../swap-info';
|
|
7
|
+
import styles from './swap-confirm-modal.module.css';
|
|
8
|
+
export const SwapConfirmModal = ({ open, onClose, onConfirm, fromToken, toToken, fromAmount, toAmount, fiatSymbol, quote, swapProvider, slippage, isQuoteLoading, }) => {
|
|
9
|
+
const { t } = useI18n();
|
|
10
|
+
return (_jsxs(Modal, { open: open, onOpenChange: (isOpen) => !isOpen && onClose(), title: t('swap.confirmTitle'), children: [_jsx(FlowPreview, { fromAmount: fromAmount, toAmount: toAmount, fromToken: fromToken ?? undefined, toToken: toToken ?? undefined, fiatSymbol: fiatSymbol }), _jsx(SwapInfo, { className: styles.info, quote: quote, provider: swapProvider, toToken: toToken, slippage: slippage, isQuoteLoading: isQuoteLoading }), _jsx(Button, { className: styles.confirmButton, variant: "fill", size: "l", fullWidth: true, onClick: onConfirm, children: t('swap.confirm') })] }));
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=swap-confirm-modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap-confirm-modal.js","sourceRoot":"","sources":["../../../../../../src/features/swap/components/swap-confirm-modal/swap-confirm-modal.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,MAAM,MAAM,iCAAiC,CAAC;AAiBrD,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EACxD,IAAI,EACJ,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,EACV,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,cAAc,GACjB,EAAE,EAAE;IACD,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,OAAO,CACH,MAAC,KAAK,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,aAC5F,KAAC,WAAW,IACR,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,IAAI,SAAS,EACjC,OAAO,EAAE,OAAO,IAAI,SAAS,EAC7B,UAAU,EAAE,UAAU,GACxB,EAEF,KAAC,QAAQ,IACL,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAChC,EAEF,KAAC,MAAM,IAAC,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,GAAG,EAAC,SAAS,QAAC,OAAO,EAAE,SAAS,YACxF,CAAC,CAAC,cAAc,CAAC,GACb,IACL,CACX,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
|
-
import { createContext, useCallback, useContext, useMemo, useState } from 'react';
|
|
9
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
|
|
10
10
|
import { formatUnits } from '@ton/appkit';
|
|
11
11
|
import { getTonShortfall } from '@ton/appkit';
|
|
12
12
|
import { calcMaxSpendable } from '@ton/appkit';
|
|
@@ -102,7 +102,7 @@ export const SwapWidgetProvider = ({ children, tokens, network: networkProp, fia
|
|
|
102
102
|
network,
|
|
103
103
|
slippageBps: slippage,
|
|
104
104
|
providerId: swapProvider?.providerId,
|
|
105
|
-
query: { enabled: isNetworkSupported },
|
|
105
|
+
query: { enabled: isNetworkSupported, networkMode: 'always', retry: false, gcTime: 0 },
|
|
106
106
|
});
|
|
107
107
|
// Also show "loading" while the user is still typing (debounce in-flight) so the UI doesn't flash
|
|
108
108
|
// the previous quote as if it were final.
|
|
@@ -114,6 +114,17 @@ export const SwapWidgetProvider = ({ children, tokens, network: networkProp, fia
|
|
|
114
114
|
network,
|
|
115
115
|
});
|
|
116
116
|
const { data: tonBalance } = useBalance({ network, query: { refetchInterval: 5000 } });
|
|
117
|
+
// 4. Mutations (hoisted above validation: the mutation `error` is one of its inputs)
|
|
118
|
+
const { mutateAsync: buildTransaction, isPending: isBuildingTransaction, error: buildError, reset: resetBuild, } = useBuildSwapTransaction({ mutation: { networkMode: 'always' } });
|
|
119
|
+
const { mutateAsync: sendTransaction, isPending: isSendingPending, error: sendMutationError, reset: resetSend, } = useSendTransaction({ mutation: { networkMode: 'always' } });
|
|
120
|
+
const isSendingTransaction = isBuildingTransaction || isSendingPending;
|
|
121
|
+
const sendError = sendMutationError ?? buildError;
|
|
122
|
+
// Drop the previous send error when the user changes anything that would invalidate it —
|
|
123
|
+
// the next attempt is conceptually a new swap, no need to keep the old message on screen.
|
|
124
|
+
const resetSendError = useCallback(() => {
|
|
125
|
+
resetBuild();
|
|
126
|
+
resetSend();
|
|
127
|
+
}, [resetBuild, resetSend]);
|
|
117
128
|
// 3. Derivations
|
|
118
129
|
const toAmount = quote?.toAmount ?? '';
|
|
119
130
|
const { error, canSubmit } = useSwapValidation({
|
|
@@ -122,7 +133,9 @@ export const SwapWidgetProvider = ({ children, tokens, network: networkProp, fia
|
|
|
122
133
|
fromToken,
|
|
123
134
|
toToken,
|
|
124
135
|
fromBalance,
|
|
136
|
+
quote,
|
|
125
137
|
quoteError,
|
|
138
|
+
sendError,
|
|
126
139
|
isNetworkSupported,
|
|
127
140
|
});
|
|
128
141
|
const isLowBalanceWarningOpen = pendingSwap !== undefined;
|
|
@@ -132,10 +145,19 @@ export const SwapWidgetProvider = ({ children, tokens, network: networkProp, fia
|
|
|
132
145
|
return '';
|
|
133
146
|
return formatUnits(pendingSwap.requiredNanos, 9);
|
|
134
147
|
}, [pendingSwap]);
|
|
135
|
-
//
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
148
|
+
// Drop the previous send error when the user changes anything that would invalidate it —
|
|
149
|
+
// the next attempt is conceptually a new swap, no need to keep the old message on screen.
|
|
150
|
+
useEffect(() => {
|
|
151
|
+
resetSendError();
|
|
152
|
+
}, [fromToken?.address, toToken?.address, fromAmount, resetSendError]);
|
|
153
|
+
// Auto-clear the send error after a short delay so a stale failure doesn't linger in the
|
|
154
|
+
// submit button — the user is expected to act on it within seconds or move on.
|
|
155
|
+
useEffect(() => {
|
|
156
|
+
if (!sendError)
|
|
157
|
+
return;
|
|
158
|
+
const id = setTimeout(resetSendError, 5000);
|
|
159
|
+
return () => clearTimeout(id);
|
|
160
|
+
}, [sendError, resetSendError]);
|
|
139
161
|
// 5. Callbacks
|
|
140
162
|
const handleMaxClick = useCallback(() => {
|
|
141
163
|
if (!fromBalance || !fromToken)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap-widget-provider.js","sourceRoot":"","sources":["../../../../../../src/features/swap/components/swap-widget-provider/swap-widget-provider.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"swap-widget-provider.js","sourceRoot":"","sources":["../../../../../../src/features/swap/components/swap-widget-provider/swap-widget-provider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
import { useMemo } from 'react';
|
|
9
9
|
import { hasTooManyDecimals, isAmountExceedingBalance } from '../../../../utils/validate-amount';
|
|
10
10
|
import { mapSwapError } from '../../utils/map-swap-error';
|
|
11
|
-
export function useSwapValidation({ fromAmount, fromAmountDebounced, fromToken, toToken, fromBalance, quoteError, isNetworkSupported, }) {
|
|
12
|
-
const
|
|
11
|
+
export function useSwapValidation({ fromAmount, fromAmountDebounced, fromToken, toToken, fromBalance, quote, quoteError, sendError, isNetworkSupported, }) {
|
|
12
|
+
const blockingError = useMemo(() => {
|
|
13
13
|
if (!isNetworkSupported)
|
|
14
14
|
return 'defi.unsupportedNetwork';
|
|
15
15
|
if ((parseFloat(fromAmount) || 0) <= 0)
|
|
@@ -22,7 +22,16 @@ export function useSwapValidation({ fromAmount, fromAmountDebounced, fromToken,
|
|
|
22
22
|
return mapSwapError(quoteError);
|
|
23
23
|
return null;
|
|
24
24
|
}, [isNetworkSupported, fromAmount, fromToken, fromBalance, quoteError, fromAmountDebounced]);
|
|
25
|
-
const
|
|
25
|
+
const error = useMemo(() => {
|
|
26
|
+
if (sendError)
|
|
27
|
+
return mapSwapError(sendError, 'swap.sendFailed');
|
|
28
|
+
return blockingError;
|
|
29
|
+
}, [sendError, blockingError]);
|
|
30
|
+
const canSubmit = (parseFloat(fromAmount) || 0) > 0 &&
|
|
31
|
+
fromToken !== null &&
|
|
32
|
+
toToken !== null &&
|
|
33
|
+
blockingError === null &&
|
|
34
|
+
quote !== undefined;
|
|
26
35
|
return { error, canSubmit };
|
|
27
36
|
}
|
|
28
37
|
//# sourceMappingURL=use-swap-validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-swap-validation.js","sourceRoot":"","sources":["../../../../../../src/features/swap/components/swap-widget-provider/use-swap-validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-swap-validation.js","sourceRoot":"","sources":["../../../../../../src/features/swap/components/swap-widget-provider/use-swap-validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAc1D,MAAM,UAAU,iBAAiB,CAAC,EAC9B,UAAU,EACV,mBAAmB,EACnB,SAAS,EACT,OAAO,EACP,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,kBAAkB,GACK;IACvB,MAAM,aAAa,GAAkB,OAAO,CAAC,GAAG,EAAE;QAC9C,IAAI,CAAC,kBAAkB;YAAE,OAAO,yBAAyB,CAAC;QAE1D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpD,IAAI,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;YAAE,OAAO,sBAAsB,CAAC;QAEvF,IAAI,wBAAwB,CAAC,UAAU,EAAE,WAAW,CAAC;YAAE,OAAO,0BAA0B,CAAC;QAEzF,IAAI,UAAU,IAAI,mBAAmB;YAAE,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC;IAChB,CAAC,EAAE,CAAC,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE9F,MAAM,KAAK,GAAG,OAAO,CAAgB,GAAG,EAAE;QACtC,IAAI,SAAS;YAAE,OAAO,YAAY,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACjE,OAAO,aAAa,CAAC;IACzB,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IAE/B,MAAM,SAAS,GACX,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;QACjC,SAAS,KAAK,IAAI;QAClB,OAAO,KAAK,IAAI;QAChB,aAAa,KAAK,IAAI;QACtB,KAAK,KAAK,SAAS,CAAC;IAExB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -10,6 +10,7 @@ import { useCallback, useMemo, useState } from 'react';
|
|
|
10
10
|
import clsx from 'clsx';
|
|
11
11
|
import { useI18n } from '../../../settings/hooks/use-i18n';
|
|
12
12
|
import { useSelectedWallet } from '../../../wallets';
|
|
13
|
+
import { SwapConfirmModal } from '../swap-confirm-modal';
|
|
13
14
|
import { SwapField } from '../swap-field';
|
|
14
15
|
import { SwapFlipButton } from '../swap-flip-button';
|
|
15
16
|
import { SwapInfo } from '../swap-info';
|
|
@@ -25,25 +26,36 @@ export const SwapWidgetUI = ({ fromToken, toToken, tokens, fromAmount, toAmount,
|
|
|
25
26
|
const { t } = useI18n();
|
|
26
27
|
const [activeField, setActiveField] = useState(null);
|
|
27
28
|
const [isSettingsOpen, setIsSettingsOpen] = useState(false);
|
|
29
|
+
const [isConfirmOpen, setIsConfirmOpen] = useState(false);
|
|
28
30
|
const [isFlipped, setIsFlipped] = useState(false);
|
|
29
31
|
const handleFlip = useCallback(() => {
|
|
30
32
|
setIsFlipped((prev) => !prev);
|
|
31
33
|
onFlip();
|
|
32
34
|
}, [onFlip]);
|
|
35
|
+
// Close the modal immediately; the build/send result (including errors) is surfaced
|
|
36
|
+
// back in the widget's main button via the `error` from the provider.
|
|
37
|
+
const handleConfirm = useCallback(() => {
|
|
38
|
+
setIsConfirmOpen(false);
|
|
39
|
+
sendSwapTransaction().catch(() => {
|
|
40
|
+
// Error is captured by the mutation and shown through the validator's `error` output.
|
|
41
|
+
});
|
|
42
|
+
}, [sendSwapTransaction]);
|
|
33
43
|
const buttonText = useMemo(() => {
|
|
34
|
-
if (
|
|
35
|
-
return t(
|
|
44
|
+
if (isSendingTransaction || isQuoteLoading)
|
|
45
|
+
return t('swap.loading');
|
|
36
46
|
if (!fromToken || !toToken)
|
|
37
47
|
return t('swap.selectToken');
|
|
48
|
+
if (error)
|
|
49
|
+
return t(error);
|
|
38
50
|
if (canSubmit)
|
|
39
51
|
return t('swap.continue');
|
|
40
52
|
return t('swap.enterAmount');
|
|
41
|
-
}, [error, fromToken, toToken, canSubmit, t]);
|
|
53
|
+
}, [isSendingTransaction, isQuoteLoading, error, fromToken, toToken, canSubmit, t]);
|
|
42
54
|
return (_jsxs("div", { className: clsx(styles.widget, className), ...props, children: [_jsxs("div", { className: styles.fieldsContainer, children: [_jsx(SwapField, { type: "pay", token: fromToken ?? undefined, amount: fromAmount, onAmountChange: setFromAmount, balance: fromBalance, isBalanceLoading: isFromBalanceLoading, onMaxClick: onMaxClick, onTokenSelectorClick: () => setActiveField('from'), isWalletConnected: isWalletConnected, fiatSymbol: fiatSymbol }), _jsxs("div", { className: styles.flipButtonWrapper, children: [_jsx("div", { className: styles.flipButtonSeparator }), _jsx(SwapFlipButton, { className: styles.flipButton, onClick: handleFlip, rotated: isFlipped })] }), _jsx(SwapField, { type: "receive", token: toToken ?? undefined, amount: toAmount, balance: toBalance, isBalanceLoading: isToBalanceLoading, onTokenSelectorClick: () => setActiveField('to'), loading: isQuoteLoading, isWalletConnected: isWalletConnected, fiatSymbol: fiatSymbol })] }), _jsx(SwapTokenSelectModal, { open: activeField !== null, onClose: () => setActiveField(null), tokens: tokens, onSelect: (token) => {
|
|
43
55
|
if (activeField === 'from')
|
|
44
56
|
setFromToken(token);
|
|
45
57
|
else
|
|
46
58
|
setToToken(token);
|
|
47
|
-
} }), _jsx(SwapSettingsModal, { open: isSettingsOpen, onClose: () => setIsSettingsOpen(false), slippage: slippage, onSlippageChange: setSlippage, provider: swapProvider, providers: swapProviders, onProviderChange: setSwapProviderId }), _jsx(LowBalanceModal, { open: isLowBalanceWarningOpen, mode: lowBalanceMode, requiredTon: lowBalanceRequiredTon, onChange: onLowBalanceChange, onCancel: onLowBalanceCancel }), _jsxs("div", { className: styles.actions, children: [_jsx(ButtonWithConnect, { variant: "fill", size: "l", fullWidth: true, disabled: !canSubmit || isQuoteLoading || isSendingTransaction, onClick:
|
|
59
|
+
} }), _jsx(SwapSettingsModal, { open: isSettingsOpen, onClose: () => setIsSettingsOpen(false), slippage: slippage, onSlippageChange: setSlippage, provider: swapProvider, providers: swapProviders, onProviderChange: setSwapProviderId }), _jsx(SwapConfirmModal, { open: isConfirmOpen, onClose: () => setIsConfirmOpen(false), onConfirm: handleConfirm, fromToken: fromToken, toToken: toToken, fromAmount: fromAmount, toAmount: toAmount, fiatSymbol: fiatSymbol, quote: quote, swapProvider: swapProvider, slippage: slippage, isQuoteLoading: isQuoteLoading }), _jsx(LowBalanceModal, { open: isLowBalanceWarningOpen, mode: lowBalanceMode, requiredTon: lowBalanceRequiredTon, onChange: onLowBalanceChange, onCancel: onLowBalanceCancel }), _jsxs("div", { className: styles.actions, children: [_jsx(ButtonWithConnect, { variant: "fill", size: "l", fullWidth: true, disabled: !canSubmit || isQuoteLoading || isSendingTransaction, onClick: () => setIsConfirmOpen(true), children: buttonText }), _jsx(SettingsButton, { onClick: () => setIsSettingsOpen(true) })] }), _jsx(SwapInfo, { quote: quote, provider: swapProvider, toToken: toToken, slippage: slippage, isQuoteLoading: isQuoteLoading })] }));
|
|
48
60
|
};
|
|
49
61
|
//# sourceMappingURL=swap-widget-ui.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap-widget-ui.js","sourceRoot":"","sources":["../../../../../../src/features/swap/components/swap-widget-ui/swap-widget-ui.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,MAAM,MAAM,6BAA6B,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAI/E,MAAM,CAAC,MAAM,YAAY,GAA8B,CAAC,EACpD,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,KAAK,EACL,cAAc,EACd,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,EAAE;IACD,MAAM,CAAC,MAAM,CAAC,GAAG,iBAAiB,EAAE,CAAC;IACrC,MAAM,iBAAiB,GAAG,MAAM,KAAK,IAAI,CAAC;IAE1C,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC;IACb,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5B,IAAI,
|
|
1
|
+
{"version":3,"file":"swap-widget-ui.js","sourceRoot":"","sources":["../../../../../../src/features/swap/components/swap-widget-ui/swap-widget-ui.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,25 +5,27 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
import { SwapError } from '@ton/appkit';
|
|
8
|
+
import { SwapError, SwapErrorCode } from '@ton/appkit';
|
|
9
9
|
import { mapDefiError } from '../../../utils/map-defi-error';
|
|
10
10
|
/**
|
|
11
11
|
* Map a thrown swap error to an i18n key. Tries swap-specific codes first, falls back to the
|
|
12
|
-
* shared {@link mapDefiError} for base DeFi codes, and finally to
|
|
12
|
+
* shared {@link mapDefiError} for base DeFi codes, and finally to the caller-provided
|
|
13
|
+
* {@link fallback} (defaults to `swap.quoteError`, but send-time callers should pass
|
|
14
|
+
* `swap.sendFailed`).
|
|
13
15
|
*/
|
|
14
|
-
export const mapSwapError = (error) => {
|
|
16
|
+
export const mapSwapError = (error, fallback = 'swap.quoteError') => {
|
|
15
17
|
if (error instanceof SwapError) {
|
|
16
18
|
switch (error.code) {
|
|
17
|
-
case
|
|
19
|
+
case SwapErrorCode.InvalidQuote:
|
|
18
20
|
return 'swap.invalidQuote';
|
|
19
|
-
case
|
|
21
|
+
case SwapErrorCode.InsufficientLiquidity:
|
|
20
22
|
return 'swap.insufficientLiquidity';
|
|
21
|
-
case
|
|
23
|
+
case SwapErrorCode.QuoteExpired:
|
|
22
24
|
return 'swap.quoteExpired';
|
|
23
|
-
case
|
|
25
|
+
case SwapErrorCode.BuildTxFailed:
|
|
24
26
|
return 'swap.buildTxFailed';
|
|
25
27
|
}
|
|
26
28
|
}
|
|
27
|
-
return mapDefiError(error) ??
|
|
29
|
+
return mapDefiError(error) ?? fallback;
|
|
28
30
|
};
|
|
29
31
|
//# sourceMappingURL=map-swap-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-swap-error.js","sourceRoot":"","sources":["../../../../../src/features/swap/utils/map-swap-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"map-swap-error.js","sourceRoot":"","sources":["../../../../../src/features/swap/utils/map-swap-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,WAAmB,iBAAiB,EAAU,EAAE;IACzF,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC7B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,aAAa,CAAC,YAAY;gBAC3B,OAAO,mBAAmB,CAAC;YAC/B,KAAK,aAAa,CAAC,qBAAqB;gBACpC,OAAO,4BAA4B,CAAC;YACxC,KAAK,aAAa,CAAC,YAAY;gBAC3B,OAAO,mBAAmB,CAAC;YAC/B,KAAK,aAAa,CAAC,aAAa;gBAC5B,OAAO,oBAAoB,CAAC;QACpC,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;AAC3C,CAAC,CAAC"}
|
package/dist/esm/locales/en.js
CHANGED
|
@@ -71,6 +71,10 @@ export default {
|
|
|
71
71
|
provider: 'Provider',
|
|
72
72
|
save: 'Save',
|
|
73
73
|
minReceived: 'Min Received',
|
|
74
|
+
confirmTitle: 'Confirm swap transaction',
|
|
75
|
+
confirm: 'Confirm',
|
|
76
|
+
sendFailed: 'Transaction failed',
|
|
77
|
+
loading: 'Loading...',
|
|
74
78
|
},
|
|
75
79
|
// Low balance modal (shared between swap, staking, etc.)
|
|
76
80
|
lowBalance: {
|
|
@@ -107,6 +111,11 @@ export default {
|
|
|
107
111
|
provider: 'Provider',
|
|
108
112
|
settings: 'Staking settings',
|
|
109
113
|
save: 'Save',
|
|
114
|
+
confirmStakingTitle: 'Confirm staking',
|
|
115
|
+
confirmUnstakingTitle: 'Confirm unstaking',
|
|
116
|
+
confirm: 'Confirm',
|
|
117
|
+
sendFailed: 'Transaction failed',
|
|
118
|
+
loading: 'Loading...',
|
|
110
119
|
},
|
|
111
120
|
};
|
|
112
121
|
//# sourceMappingURL=en.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/locales/en.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAe;IACX,oBAAoB;IACpB,MAAM,EAAE;QACJ,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,kBAAkB;KACrC;IAED,cAAc;IACd,WAAW,EAAE;QACT,eAAe,EAAE,kBAAkB;QACnC,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE;YACJ,OAAO,EAAE,eAAe;YACxB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,QAAQ;SACnB;KACJ;IAED,WAAW;IACX,QAAQ,EAAE;QACN,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,uBAAuB;QACnC,oBAAoB,EAAE,gCAAgC;KACzD;IAED,MAAM;IACN,GAAG,EAAE;QACD,MAAM,EAAE,SAAS;KACpB;IAED,iDAAiD;IACjD,WAAW,EAAE;QACT,YAAY,EAAE,4BAA4B;QAC1C,eAAe,EAAE,2BAA2B;QAC5C,eAAe,EAAE,+CAA+C;KACnE;IAED,0DAA0D;IAC1D,IAAI,EAAE;QACF,kBAAkB,EAAE,0BAA0B;QAC9C,YAAY,EAAE,iCAAiC;QAC/C,gBAAgB,EAAE,oBAAoB;QACtC,iBAAiB,EAAE,wBAAwB;QAC3C,eAAe,EAAE,kBAAkB;QACnC,aAAa,EAAE,oBAAoB;KACtC;IAED,OAAO;IACP,IAAI,EAAE;QACF,GAAG,EAAE,KAAK;QACV,OAAO,EAAE,SAAS;QAClB,GAAG,EAAE,KAAK;QACV,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,iBAAiB;QAC9B,mBAAmB,EAAE,sBAAsB;QAC3C,eAAe,EAAE,yBAAyB;QAC1C,UAAU,EAAE,uBAAuB;QACnC,YAAY,EAAE,kBAAkB;QAChC,qBAAqB,EAAE,sCAAsC;QAC7D,YAAY,EAAE,iCAAiC;QAC/C,aAAa,EAAE,qCAAqC;QACpD,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,qFAAqF;QACpG,eAAe,EAAE,oEAAoE;QACrF,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/locales/en.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAe;IACX,oBAAoB;IACpB,MAAM,EAAE;QACJ,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,kBAAkB;KACrC;IAED,cAAc;IACd,WAAW,EAAE;QACT,eAAe,EAAE,kBAAkB;QACnC,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE;YACJ,OAAO,EAAE,eAAe;YACxB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,QAAQ;SACnB;KACJ;IAED,WAAW;IACX,QAAQ,EAAE;QACN,OAAO,EAAE,uBAAuB;QAChC,UAAU,EAAE,uBAAuB;QACnC,oBAAoB,EAAE,gCAAgC;KACzD;IAED,MAAM;IACN,GAAG,EAAE;QACD,MAAM,EAAE,SAAS;KACpB;IAED,iDAAiD;IACjD,WAAW,EAAE;QACT,YAAY,EAAE,4BAA4B;QAC1C,eAAe,EAAE,2BAA2B;QAC5C,eAAe,EAAE,+CAA+C;KACnE;IAED,0DAA0D;IAC1D,IAAI,EAAE;QACF,kBAAkB,EAAE,0BAA0B;QAC9C,YAAY,EAAE,iCAAiC;QAC/C,gBAAgB,EAAE,oBAAoB;QACtC,iBAAiB,EAAE,wBAAwB;QAC3C,eAAe,EAAE,kBAAkB;QACnC,aAAa,EAAE,oBAAoB;KACtC;IAED,OAAO;IACP,IAAI,EAAE;QACF,GAAG,EAAE,KAAK;QACV,OAAO,EAAE,SAAS;QAClB,GAAG,EAAE,KAAK;QACV,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,iBAAiB;QAC9B,mBAAmB,EAAE,sBAAsB;QAC3C,eAAe,EAAE,yBAAyB;QAC1C,UAAU,EAAE,uBAAuB;QACnC,YAAY,EAAE,kBAAkB;QAChC,qBAAqB,EAAE,sCAAsC;QAC7D,YAAY,EAAE,iCAAiC;QAC/C,aAAa,EAAE,qCAAqC;QACpD,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,qFAAqF;QACpG,eAAe,EAAE,oEAAoE;QACrF,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,0BAA0B;QACxC,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,oBAAoB;QAChC,OAAO,EAAE,YAAY;KACxB;IAED,yDAAyD;IACzD,UAAU,EAAE;QACR,KAAK,EAAE,gBAAgB;QACvB,aAAa,EACT,0GAA0G;QAC9G,YAAY,EACR,oGAAoG;QACxG,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,OAAO;KACjB;IAED,UAAU;IACV,OAAO,EAAE;QACL,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,OAAO;QACjB,mBAAmB,EAAE,sBAAsB;QAC3C,eAAe,EAAE,yBAAyB;QAC1C,UAAU,EAAE,uBAAuB;QACnC,aAAa,EAAE,4BAA4B;QAC3C,oBAAoB,EAAE,0CAA0C;QAChE,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,aAAa;QACzB,GAAG,EAAE,KAAK;QACV,YAAY,EAAE,eAAe;QAC7B,aAAa,EAAE,gBAAgB;QAC/B,WAAW,EAAE,cAAc;QAC3B,aAAa,EAAE,gBAAgB;QAC/B,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,oBAAoB;QAClC,kBAAkB,EAAE,YAAY;QAChC,aAAa,EAAE,gBAAgB;QAC/B,kBAAkB,EAAE,WAAW;QAC/B,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,kBAAkB;QAC5B,IAAI,EAAE,MAAM;QACZ,mBAAmB,EAAE,iBAAiB;QACtC,qBAAqB,EAAE,mBAAmB;QAC1C,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,oBAAoB;QAChC,OAAO,EAAE,YAAY;KACxB;CACK,CAAC"}
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
--ta-display-large-weight: 800;
|
|
10
10
|
--ta-display-large-line-height: 70px;
|
|
11
11
|
|
|
12
|
-
--ta-display-size:
|
|
12
|
+
--ta-display-size: 32px;
|
|
13
13
|
--ta-display-weight: 800;
|
|
14
|
-
--ta-display-line-height:
|
|
14
|
+
--ta-display-line-height: 40px;
|
|
15
15
|
|
|
16
16
|
/* headline */
|
|
17
17
|
--ta-headline-size: 28px;
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
--ta-color-error: #FF3B30;
|
|
78
78
|
--ta-color-success: #34C759;
|
|
79
79
|
--ta-color-text: #121214;
|
|
80
|
-
--ta-color-text-secondary: #
|
|
80
|
+
--ta-color-text-secondary: #60606E;
|
|
81
81
|
--ta-color-text-tertiary: #909DAB;
|
|
82
82
|
--ta-color-background: #FFFFFF;
|
|
83
83
|
--ta-color-background-secondary: #F1F3F5;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
import { DefiError } from '@ton/appkit';
|
|
8
|
+
import { DefiError, DefiErrorCode } from '@ton/appkit';
|
|
9
9
|
/**
|
|
10
10
|
* Map a thrown error to an i18n key from the `defi.*` namespace.
|
|
11
11
|
* Returns `null` when the error isn't a {@link DefiError} or the code isn't recognised —
|
|
@@ -15,17 +15,17 @@ export const mapDefiError = (error) => {
|
|
|
15
15
|
if (!(error instanceof DefiError))
|
|
16
16
|
return null;
|
|
17
17
|
switch (error.code) {
|
|
18
|
-
case
|
|
18
|
+
case DefiErrorCode.UnsupportedNetwork:
|
|
19
19
|
return 'defi.unsupportedNetwork';
|
|
20
|
-
case
|
|
20
|
+
case DefiErrorCode.NetworkError:
|
|
21
21
|
return 'defi.networkError';
|
|
22
|
-
case
|
|
22
|
+
case DefiErrorCode.ProviderNotFound:
|
|
23
23
|
return 'defi.providerNotFound';
|
|
24
|
-
case
|
|
24
|
+
case DefiErrorCode.NoDefaultProvider:
|
|
25
25
|
return 'defi.noDefaultProvider';
|
|
26
|
-
case
|
|
26
|
+
case DefiErrorCode.InvalidProvider:
|
|
27
27
|
return 'defi.invalidProvider';
|
|
28
|
-
case
|
|
28
|
+
case DefiErrorCode.InvalidParams:
|
|
29
29
|
return 'defi.invalidParams';
|
|
30
30
|
default:
|
|
31
31
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-defi-error.js","sourceRoot":"","sources":["../../../src/utils/map-defi-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"map-defi-error.js","sourceRoot":"","sources":["../../../src/utils/map-defi-error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAiB,EAAE;IAC1D,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC,kBAAkB;YACjC,OAAO,yBAAyB,CAAC;QACrC,KAAK,aAAa,CAAC,YAAY;YAC3B,OAAO,mBAAmB,CAAC;QAC/B,KAAK,aAAa,CAAC,gBAAgB;YAC/B,OAAO,uBAAuB,CAAC;QACnC,KAAK,aAAa,CAAC,iBAAiB;YAChC,OAAO,wBAAwB,CAAC;QACpC,KAAK,aAAa,CAAC,eAAe;YAC9B,OAAO,sBAAsB,CAAC;QAClC,KAAK,aAAa,CAAC,aAAa;YAC5B,OAAO,oBAAoB,CAAC;QAChC;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) TonTech.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
import type { FC, ComponentProps } from 'react';
|
|
9
|
+
import type { AppkitUIToken } from '../../../types/appkit-ui-token';
|
|
10
|
+
export interface AmountPreviewProps extends ComponentProps<'div'> {
|
|
11
|
+
/** Raw token amount to display (decimal string). */
|
|
12
|
+
amount: string;
|
|
13
|
+
/** Token whose logo and symbol are shown alongside the amount. */
|
|
14
|
+
token?: AppkitUIToken;
|
|
15
|
+
/** Fiat currency symbol, e.g. "$". */
|
|
16
|
+
fiatSymbol?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Relative fiat delta to render after the fiat value, e.g. -0.0025 → "(-0.25%)".
|
|
19
|
+
* Typically computed by a parent that knows both legs of a flow.
|
|
20
|
+
*/
|
|
21
|
+
fiatDelta?: number;
|
|
22
|
+
}
|
|
23
|
+
export declare const AmountPreview: FC<AmountPreviewProps>;
|
|
24
|
+
//# sourceMappingURL=amount-preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amount-preview.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/amount-preview/amount-preview.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAMhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAIpE,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC7D,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAOD,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAoChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/amount-preview/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,kBAAkB,CAAC"}
|