@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
package/README.md
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
This file is auto-generated. Do not edit manually.
|
|
3
|
-
Changes will be overwritten when running the docs update script.
|
|
4
|
-
Source template: template/packages/appkit-react/README.md
|
|
5
|
-
-->
|
|
6
|
-
|
|
7
1
|
# @ton/appkit-react
|
|
8
2
|
|
|
9
3
|
React components and hooks for AppKit.
|
|
@@ -312,3 +306,10 @@ export const AppContent: FC = () => {
|
|
|
312
306
|
## License
|
|
313
307
|
|
|
314
308
|
MIT
|
|
309
|
+
|
|
310
|
+
<!--
|
|
311
|
+
This file is auto-generated. Do not edit manually.
|
|
312
|
+
Changes will be overwritten when running the docs update script.
|
|
313
|
+
Source template: template/packages/appkit-react/README.md
|
|
314
|
+
-->
|
|
315
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { calcFiatValue, formatLargeValue } from '@ton/appkit';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import { Logo } from '../../ui/logo';
|
|
5
|
+
import { TonIconCircle } from '../../ui/icons';
|
|
6
|
+
import { getDisplayAmount } from '../../../features/swap/utils/get-display-amount';
|
|
7
|
+
import styles from './amount-preview.module.css';
|
|
8
|
+
const formatFiatDelta = (delta) => {
|
|
9
|
+
const sign = delta > 0 ? '+' : '';
|
|
10
|
+
return `(${sign}${(delta * 100).toFixed(2)}%)`;
|
|
11
|
+
};
|
|
12
|
+
export const AmountPreview = ({ amount, token, fiatSymbol = '$', fiatDelta, className, ...props }) => {
|
|
13
|
+
const displayAmount = getDisplayAmount(amount, token?.decimals);
|
|
14
|
+
const fiatValue = token?.rate ? formatLargeValue(calcFiatValue(amount || '0', token.rate), 2, 2) : null;
|
|
15
|
+
return (_jsxs("div", { className: clsx(styles.container, className), ...props, children: [_jsxs("div", { className: styles.amountRow, children: [_jsx("span", { className: styles.amount, children: displayAmount }), token && (_jsxs("span", { className: styles.tokenTag, children: [token.address === 'ton' ? (_jsx(TonIconCircle, { size: 24 })) : (_jsx(Logo, { size: 24, src: token.logo, fallback: token.symbol?.[0] ?? '?', alt: token.symbol })), _jsx("span", { className: styles.symbol, children: token.symbol })] }))] }), fiatValue !== null && (_jsxs("div", { className: styles.fiat, children: [_jsxs("span", { children: [fiatSymbol, " ", fiatValue] }), fiatDelta !== undefined && _jsx("span", { className: styles.fiatDelta, children: formatFiatDelta(fiatDelta) })] }))] }));
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=amount-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amount-preview.js","sourceRoot":"","sources":["../../../../../src/components/shared/amount-preview/amount-preview.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACnF,OAAO,MAAM,MAAM,6BAA6B,CAAC;AAgBjD,MAAM,eAAe,GAAG,CAAC,KAAa,EAAU,EAAE;IAC9C,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,OAAO,IAAI,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,EAClD,MAAM,EACN,KAAK,EACL,UAAU,GAAG,GAAG,EAChB,SAAS,EACT,SAAS,EACT,GAAG,KAAK,EACX,EAAE,EAAE;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAExG,OAAO,CACH,eAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,KAAM,KAAK,aACxD,eAAK,SAAS,EAAE,MAAM,CAAC,SAAS,aAC5B,eAAM,SAAS,EAAE,MAAM,CAAC,MAAM,YAAG,aAAa,GAAQ,EACrD,KAAK,IAAI,CACN,gBAAM,SAAS,EAAE,MAAM,CAAC,QAAQ,aAC3B,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CACvB,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,GAAI,CAC9B,CAAC,CAAC,CAAC,CACA,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,GAAI,CAC7F,EACD,eAAM,SAAS,EAAE,MAAM,CAAC,MAAM,YAAG,KAAK,CAAC,MAAM,GAAQ,IAClD,CACV,IACC,EACL,SAAS,KAAK,IAAI,IAAI,CACnB,eAAK,SAAS,EAAE,MAAM,CAAC,IAAI,aACvB,2BACK,UAAU,OAAG,SAAS,IACpB,EACN,SAAS,KAAK,SAAS,IAAI,eAAM,SAAS,EAAE,MAAM,CAAC,SAAS,YAAG,eAAe,CAAC,SAAS,CAAC,GAAQ,IAChG,CACT,IACC,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
.container {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: 4px;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.amountRow {
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
gap: 8px;
|
|
12
|
+
color: var(--ta-color-text);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.amount {
|
|
16
|
+
composes: display from "../../../styles/typography.module.css";
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.tokenTag {
|
|
20
|
+
display: inline-flex;
|
|
21
|
+
align-items: center;
|
|
22
|
+
gap: 6px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.symbol {
|
|
26
|
+
composes: bodySemibold from "../../../styles/typography.module.css";
|
|
27
|
+
color: var(--ta-color-text);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.fiat {
|
|
31
|
+
composes: bodyRegular from "../../../styles/typography.module.css";
|
|
32
|
+
display: inline-flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
gap: 4px;
|
|
35
|
+
color: var(--ta-color-text-secondary);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.fiatDelta {
|
|
39
|
+
color: var(--ta-color-text-tertiary);
|
|
40
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/shared/amount-preview/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { calcFiatValue } from '@ton/appkit';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import { ChevronDownIcon } from '../../ui/icons';
|
|
5
|
+
import { AmountPreview } from '../amount-preview';
|
|
6
|
+
import styles from './flow-preview.module.css';
|
|
7
|
+
/**
|
|
8
|
+
* Returns the relative fiat delta between paying `fromFiat` and receiving `toFiat`,
|
|
9
|
+
* or `undefined` when either side lacks fiat data.
|
|
10
|
+
*/
|
|
11
|
+
const calcFiatDelta = (fromFiat, toFiat) => {
|
|
12
|
+
const from = parseFloat(fromFiat);
|
|
13
|
+
const to = parseFloat(toFiat);
|
|
14
|
+
if (!from || !to)
|
|
15
|
+
return undefined;
|
|
16
|
+
return (to - from) / from;
|
|
17
|
+
};
|
|
18
|
+
export const FlowPreview = ({ fromAmount, toAmount, fromToken, toToken, fiatSymbol = '$', className, ...props }) => {
|
|
19
|
+
const fromFiat = calcFiatValue(fromAmount || '0', fromToken?.rate);
|
|
20
|
+
const toFiat = calcFiatValue(toAmount || '0', toToken?.rate);
|
|
21
|
+
const fiatDelta = calcFiatDelta(fromFiat, toFiat);
|
|
22
|
+
return (_jsxs("div", { className: clsx(styles.container, className), ...props, children: [_jsx(AmountPreview, { amount: fromAmount, token: fromToken, fiatSymbol: fiatSymbol }), _jsxs("div", { className: styles.separator, children: [_jsx("span", { className: styles.separatorLine }), _jsx("span", { className: styles.arrowBadge, children: _jsx(ChevronDownIcon, { size: 16 }) })] }), _jsx(AmountPreview, { amount: toAmount, token: toToken, fiatSymbol: fiatSymbol, fiatDelta: fiatDelta })] }));
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=flow-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-preview.js","sourceRoot":"","sources":["../../../../../src/components/shared/flow-preview/flow-preview.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAU/C;;;GAGG;AACH,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,MAAc,EAAsB,EAAE;IAC3E,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAC9C,UAAU,EACV,QAAQ,EACR,SAAS,EACT,OAAO,EACP,UAAU,GAAG,GAAG,EAChB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,EAAE;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAElD,OAAO,CACH,eAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,KAAM,KAAK,aACxD,KAAC,aAAa,IAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,GAAI,EAE/E,eAAK,SAAS,EAAE,MAAM,CAAC,SAAS,aAC5B,eAAM,SAAS,EAAE,MAAM,CAAC,aAAa,GAAI,EACzC,eAAM,SAAS,EAAE,MAAM,CAAC,UAAU,YAC9B,KAAC,eAAe,IAAC,IAAI,EAAE,EAAE,GAAI,GAC1B,IACL,EAEN,KAAC,aAAa,IAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAI,IAC/F,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
.container {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
align-items: stretch;
|
|
5
|
+
gap: 12px;
|
|
6
|
+
padding: 8px 0 4px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.separator {
|
|
10
|
+
position: relative;
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
justify-content: center;
|
|
14
|
+
height: 32px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.separatorLine {
|
|
18
|
+
position: absolute;
|
|
19
|
+
left: 0;
|
|
20
|
+
right: 0;
|
|
21
|
+
top: 50%;
|
|
22
|
+
height: 1px;
|
|
23
|
+
background-color: var(--ta-color-background-tertiary);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.arrowBadge {
|
|
27
|
+
position: relative;
|
|
28
|
+
display: inline-flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
justify-content: center;
|
|
31
|
+
width: 32px;
|
|
32
|
+
height: 32px;
|
|
33
|
+
border-radius: 50%;
|
|
34
|
+
border: 1px solid var(--ta-color-background-tertiary);
|
|
35
|
+
background-color: var(--ta-color-background);
|
|
36
|
+
color: var(--ta-color-text-tertiary);
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/shared/flow-preview/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,gBAAgB,CAAC"}
|
|
@@ -4,6 +4,6 @@ import { Button } from '../../ui/button';
|
|
|
4
4
|
import { SlidersIcon } from '../../ui/icons';
|
|
5
5
|
import styles from './settings-button.module.css';
|
|
6
6
|
export const SettingsButton = ({ onClick, className, ...props }) => {
|
|
7
|
-
return (_jsx(Button, { className: clsx(styles.settingsButton, className), variant: "
|
|
7
|
+
return (_jsx(Button, { className: clsx(styles.settingsButton, className), variant: "gray", size: "l", borderRadius: "l", onClick: onClick, ...props, children: _jsx(SlidersIcon, {}) }));
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=settings-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-button.js","sourceRoot":"","sources":["../../../../../src/components/shared/settings-button/settings-button.tsx"],"names":[],"mappings":";AASA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAMlD,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACxF,OAAO,CACH,KAAC,MAAM,IACH,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,EACjD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"settings-button.js","sourceRoot":"","sources":["../../../../../src/components/shared/settings-button/settings-button.tsx"],"names":[],"mappings":";AASA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAMlD,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACxF,OAAO,CACH,KAAC,MAAM,IACH,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,EACjD,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,GAAG,EACR,YAAY,EAAC,GAAG,EAChB,OAAO,EAAE,OAAO,KACZ,KAAK,YAET,KAAC,WAAW,KAAG,GACV,CACZ,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.logoFallback {
|
|
22
|
+
composes: labelMedium from "../../../styles/typography.module.css";
|
|
22
23
|
width: 100%;
|
|
23
24
|
height: 100%;
|
|
24
25
|
display: flex;
|
|
@@ -26,7 +27,4 @@
|
|
|
26
27
|
justify-content: center;
|
|
27
28
|
background-color: var(--ta-color-background-tertiary);
|
|
28
29
|
color: var(--ta-color-text);
|
|
29
|
-
font-size: 15px;
|
|
30
|
-
line-height: 1;
|
|
31
|
-
font-weight: 500;
|
|
32
30
|
}
|
|
@@ -17,7 +17,7 @@ export const SendJettonButton = ({ recipientAddress, amount, comment, jetton, ..
|
|
|
17
17
|
if (!jetton.address) {
|
|
18
18
|
throw new Error('Jetton address is required');
|
|
19
19
|
}
|
|
20
|
-
if (
|
|
20
|
+
if (jetton.decimals === undefined) {
|
|
21
21
|
throw new Error('Jetton decimals is required');
|
|
22
22
|
}
|
|
23
23
|
return createTransferJettonTransaction(appKit, {
|
|
@@ -29,7 +29,7 @@ export const SendJettonButton = ({ recipientAddress, amount, comment, jetton, ..
|
|
|
29
29
|
});
|
|
30
30
|
}, [appKit, recipientAddress, amount, comment, jetton]);
|
|
31
31
|
const text = useMemo(() => {
|
|
32
|
-
if (amount && jetton.decimals) {
|
|
32
|
+
if (amount && jetton.decimals !== undefined) {
|
|
33
33
|
return t('balances.sendJettonWithAmount', {
|
|
34
34
|
amount: formatUnits(parseUnits(amount, jetton.decimals), jetton.decimals).toString(),
|
|
35
35
|
symbol: jetton.symbol,
|
|
@@ -37,6 +37,6 @@ export const SendJettonButton = ({ recipientAddress, amount, comment, jetton, ..
|
|
|
37
37
|
}
|
|
38
38
|
return t('balances.sendJetton', { symbol: jetton.symbol, amount });
|
|
39
39
|
}, [t, amount, jetton]);
|
|
40
|
-
return (_jsx(Send, { request: createTransferTransaction, text: text, disabled: !recipientAddress || !amount || !jetton.address ||
|
|
40
|
+
return (_jsx(Send, { request: createTransferTransaction, text: text, disabled: !recipientAddress || !amount || !jetton.address || jetton.decimals === undefined, ...props }));
|
|
41
41
|
};
|
|
42
42
|
//# sourceMappingURL=send-jetton-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-jetton-button.js","sourceRoot":"","sources":["../../../../../../src/features/balances/components/send-jetton-button/send-jetton-button.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,+BAA+B,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAa5C,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EACxD,gBAAgB,EAChB,MAAM,EACN,OAAO,EACP,MAAM,EACN,GAAG,KAAK,EACX,EAAE,EAAE;IACD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,MAAM,yBAAyB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,
|
|
1
|
+
{"version":3,"file":"send-jetton-button.js","sourceRoot":"","sources":["../../../../../../src/features/balances/components/send-jetton-button/send-jetton-button.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,+BAA+B,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAa5C,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EACxD,gBAAgB,EAChB,MAAM,EACN,OAAO,EACP,MAAM,EACN,GAAG,KAAK,EACX,EAAE,EAAE;IACD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;IAExB,MAAM,yBAAyB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,+BAA+B,CAAC,MAAM,EAAE;YAC3C,aAAa,EAAE,MAAM,CAAC,OAAO;YAC7B,gBAAgB;YAChB,MAAM;YACN,OAAO;YACP,cAAc,EAAE,MAAM,CAAC,QAAQ;SAClC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;QACtB,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC,+BAA+B,EAAE;gBACtC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;gBACpF,MAAM,EAAE,MAAM,CAAC,MAAM;aACxB,CAAC,CAAC;QACP,CAAC;QAED,OAAO,CAAC,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAExB,OAAO,CACH,KAAC,IAAI,IACD,OAAO,EAAE,yBAAyB,EAClC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,gBAAgB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,KACtF,KAAK,GACX,CACL,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/balances/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,4BAA4B,CAAC;AAC3C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/features/balances/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC"}
|
|
@@ -14,6 +14,7 @@ import { ChevronDownIcon } from '../../../../components/ui/icons';
|
|
|
14
14
|
import { useI18n } from '../../../settings/hooks/use-i18n';
|
|
15
15
|
import { formatAmount } from '../staking-info/utils';
|
|
16
16
|
import styles from './select-unstake-mode.module.css';
|
|
17
|
+
import { Button } from '../../../../components/ui/button';
|
|
17
18
|
export const SelectUnstakeMode = ({ value, onValueChange, providerInfo, providerMetadata, className, ...props }) => {
|
|
18
19
|
const [open, setOpen] = useState(false);
|
|
19
20
|
const { t } = useI18n();
|
|
@@ -47,7 +48,7 @@ export const SelectUnstakeMode = ({ value, onValueChange, providerInfo, provider
|
|
|
47
48
|
if (modes.length === 1) {
|
|
48
49
|
return null;
|
|
49
50
|
}
|
|
50
|
-
return (_jsxs("div", { className: clsx(styles.root, className), ...props, children: [_jsxs("
|
|
51
|
+
return (_jsxs("div", { className: clsx(styles.root, className), ...props, children: [_jsxs("div", { className: styles.header, children: [_jsx("span", { className: styles.headerLabel, children: t('staking.unstakeType') }), _jsxs(Button, { variant: "gray", size: "s", borderRadius: "full", className: styles.headerValue, onClick: () => setOpen((v) => !v), children: [selectedLabel, _jsx(ChevronDownIcon, { size: 16, className: clsx(styles.chevron, open && styles.chevronOpen) })] })] }), _jsx(Collapsible, { open: open, children: _jsx("div", { className: styles.options, children: modes.map((mode) => {
|
|
51
52
|
const isActive = value === mode.value;
|
|
52
53
|
return (_jsx("div", { className: styles.option, onClick: () => handleSelect(mode.value), role: "button", tabIndex: 0, children: _jsxs("div", { className: styles.optionRow, children: [_jsx("span", { className: clsx(styles.radio, isActive && styles.radioActive), children: _jsx("span", { className: clsx(styles.point, isActive && styles.pointActive) }) }), _jsx("span", { className: styles.optionLabel, children: mode.label }), _jsx("div", { className: styles.tags, children: mode.tags.map((tag) => (_jsx("span", { className: styles.tag, children: tag }, tag))) })] }) }, mode.value));
|
|
53
54
|
}) }) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-unstake-mode.js","sourceRoot":"","sources":["../../../../../../src/features/staking/components/select-unstake-mode/select-unstake-mode.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,MAAM,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"select-unstake-mode.js","sourceRoot":"","sources":["../../../../../../src/features/staking/components/select-unstake-mode/select-unstake-mode.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/features/staking/components/select-unstake-mode/select-unstake-mode.module.css
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
.root {
|
|
2
|
-
padding: 0 16px;
|
|
3
2
|
display: flex;
|
|
4
3
|
flex-direction: column;
|
|
5
4
|
box-sizing: border-box;
|
|
6
|
-
border-radius: var(--ta-border-radius-l);
|
|
7
|
-
background-color: var(--ta-color-background-secondary);
|
|
8
5
|
}
|
|
9
6
|
|
|
10
7
|
.header {
|
|
@@ -13,7 +10,6 @@
|
|
|
13
10
|
justify-content: space-between;
|
|
14
11
|
align-items: center;
|
|
15
12
|
width: 100%;
|
|
16
|
-
padding: 16px 0;
|
|
17
13
|
border: none;
|
|
18
14
|
background: transparent;
|
|
19
15
|
cursor: pointer;
|
|
@@ -43,7 +39,7 @@
|
|
|
43
39
|
display: flex;
|
|
44
40
|
flex-direction: column;
|
|
45
41
|
gap: 8px;
|
|
46
|
-
padding-top:
|
|
42
|
+
padding-top: 16px;
|
|
47
43
|
padding-bottom: 16px;
|
|
48
44
|
}
|
|
49
45
|
|
|
@@ -56,7 +52,7 @@
|
|
|
56
52
|
flex-direction: column;
|
|
57
53
|
box-sizing: border-box;
|
|
58
54
|
border-radius: var(--ta-border-radius-l);
|
|
59
|
-
background-color: var(--ta-color-background
|
|
55
|
+
background-color: var(--ta-color-background);
|
|
60
56
|
}
|
|
61
57
|
|
|
62
58
|
.optionRow {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/features/staking/components/staking-confirm-modal/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
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 { AmountPreview } from '../../../../components/shared/amount-preview';
|
|
5
|
+
import { FlowPreview } from '../../../../components/shared/flow-preview';
|
|
6
|
+
import { useJettonInfo } from '../../../jettons';
|
|
7
|
+
import { useI18n } from '../../../settings/hooks/use-i18n';
|
|
8
|
+
import { StakingInfo } from '../staking-info';
|
|
9
|
+
import styles from './staking-confirm-modal.module.css';
|
|
10
|
+
/**
|
|
11
|
+
* Adapter from staking-domain token shape (`StakingTokenInfo`) to the shared
|
|
12
|
+
* `AppkitUIToken` shape consumed by AmountPreview/FlowPreview. `name` is taken
|
|
13
|
+
* from the resolved jetton metadata when available, falling back to ticker.
|
|
14
|
+
*/
|
|
15
|
+
const toUIToken = (token, jettonInfo, network) => {
|
|
16
|
+
if (!token || !network)
|
|
17
|
+
return undefined;
|
|
18
|
+
return {
|
|
19
|
+
symbol: token.ticker,
|
|
20
|
+
name: jettonInfo?.name ?? token.ticker,
|
|
21
|
+
decimals: token.decimals,
|
|
22
|
+
address: token.address,
|
|
23
|
+
logo: token.address === 'ton' ? undefined : jettonInfo?.image,
|
|
24
|
+
network,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export const StakingConfirmModal = ({ open, onClose, onConfirm, direction, network, quote, providerInfo, providerMetadata, isProviderInfoLoading, isQuoteLoading, }) => {
|
|
28
|
+
const { t } = useI18n();
|
|
29
|
+
const stakeAddress = providerMetadata?.stakeToken.address;
|
|
30
|
+
const receiveAddress = providerMetadata?.receiveToken?.address;
|
|
31
|
+
const { data: stakeJettonInfo } = useJettonInfo({
|
|
32
|
+
address: stakeAddress,
|
|
33
|
+
query: { enabled: !!stakeAddress && stakeAddress !== 'ton' },
|
|
34
|
+
});
|
|
35
|
+
const { data: receiveJettonInfo } = useJettonInfo({
|
|
36
|
+
address: receiveAddress,
|
|
37
|
+
query: { enabled: !!receiveAddress && receiveAddress !== 'ton' },
|
|
38
|
+
});
|
|
39
|
+
const stakeToken = toUIToken(providerMetadata?.stakeToken, stakeJettonInfo, network);
|
|
40
|
+
const receiveToken = toUIToken(providerMetadata?.receiveToken, receiveJettonInfo, network);
|
|
41
|
+
const title = direction === 'stake' ? t('staking.confirmStakingTitle') : t('staking.confirmUnstakingTitle');
|
|
42
|
+
const amountIn = quote?.amountIn ?? '0';
|
|
43
|
+
const amountOut = quote?.amountOut ?? '0';
|
|
44
|
+
return (_jsxs(Modal, { open: open, onOpenChange: (isOpen) => !isOpen && onClose(), title: title, children: [direction === 'stake' ? (_jsx(AmountPreview, { className: styles.singleAmount, amount: amountIn, token: stakeToken })) : (_jsx(FlowPreview, { fromAmount: amountIn, toAmount: amountOut, fromToken: receiveToken, toToken: stakeToken })), _jsx(StakingInfo, { className: styles.info, quote: quote, isQuoteLoading: isQuoteLoading, providerInfo: providerInfo, providerMetadata: providerMetadata, isProviderInfoLoading: isProviderInfoLoading, direction: direction }), _jsx(Button, { className: styles.confirmButton, variant: "fill", size: "l", fullWidth: true, onClick: onConfirm, children: t('staking.confirm') })] }));
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=staking-confirm-modal.js.map
|
package/dist/esm/features/staking/components/staking-confirm-modal/staking-confirm-modal.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staking-confirm-modal.js","sourceRoot":"","sources":["../../../../../../src/features/staking/components/staking-confirm-modal/staking-confirm-modal.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/features/staking/components/staking-widget-provider/staking-widget-provider.js
CHANGED
|
@@ -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 { calcMaxSpendable, formatUnits, getTonShortfall, setDefaultStakingProvider, validateNumericString, } from '@ton/appkit';
|
|
11
11
|
import { UnstakeMode } from '@ton/appkit';
|
|
12
12
|
import { useNetwork } from '../../../network';
|
|
@@ -105,8 +105,27 @@ export const StakingWidgetProvider = ({ children, network: networkProp }) => {
|
|
|
105
105
|
network,
|
|
106
106
|
query: { refetchInterval: 5000 },
|
|
107
107
|
});
|
|
108
|
-
const { mutateAsync: buildTransaction } = useBuildStakeTransaction();
|
|
109
|
-
const { mutateAsync: sendTransaction, isPending:
|
|
108
|
+
const { mutateAsync: buildTransaction, isPending: isBuildingTransaction, error: buildError, reset: resetBuild, } = useBuildStakeTransaction({ mutation: { networkMode: 'always' } });
|
|
109
|
+
const { mutateAsync: sendTransaction, isPending: isSendingPending, error: sendMutationError, reset: resetSend, } = useSendTransaction({ mutation: { networkMode: 'always' } });
|
|
110
|
+
const isSendingTransaction = isBuildingTransaction || isSendingPending;
|
|
111
|
+
const sendError = sendMutationError ?? buildError;
|
|
112
|
+
const resetSendError = useCallback(() => {
|
|
113
|
+
resetBuild();
|
|
114
|
+
resetSend();
|
|
115
|
+
}, [resetBuild, resetSend]);
|
|
116
|
+
// Drop the previous send error when the user changes anything that invalidates it —
|
|
117
|
+
// the next attempt is conceptually a new stake, no need to keep the old message on screen.
|
|
118
|
+
useEffect(() => {
|
|
119
|
+
resetSendError();
|
|
120
|
+
}, [direction, amount, isReversed, resetSendError]);
|
|
121
|
+
// Auto-clear the send error after a short delay so a stale failure doesn't linger in the
|
|
122
|
+
// submit button — the user is expected to act on it within seconds or move on.
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
if (!sendError)
|
|
125
|
+
return;
|
|
126
|
+
const id = setTimeout(resetSendError, 5000);
|
|
127
|
+
return () => clearTimeout(id);
|
|
128
|
+
}, [sendError, resetSendError]);
|
|
110
129
|
const amountDecimals = useMemo(() => {
|
|
111
130
|
const unstakeDecimals = isReversed
|
|
112
131
|
? providerMetadata?.stakeToken.decimals
|
|
@@ -124,7 +143,10 @@ export const StakingWidgetProvider = ({ children, network: networkProp }) => {
|
|
|
124
143
|
isReversed,
|
|
125
144
|
network,
|
|
126
145
|
}, 500);
|
|
127
|
-
const { data: quote, isFetching: isQuoteLoading, error: quoteError, } = useStakingQuote({
|
|
146
|
+
const { data: quote, isFetching: isQuoteLoading, error: quoteError, } = useStakingQuote({
|
|
147
|
+
...quoteParamsDebounced,
|
|
148
|
+
query: { enabled: isNetworkSupported, networkMode: 'always', retry: false, gcTime: 0 },
|
|
149
|
+
});
|
|
128
150
|
const reversedAmount = useMemo(() => {
|
|
129
151
|
if (direction === 'unstake' && isReversed)
|
|
130
152
|
return quote?.amountIn || '0';
|
|
@@ -194,6 +216,7 @@ export const StakingWidgetProvider = ({ children, network: networkProp }) => {
|
|
|
194
216
|
amountDebounced: quoteParamsDebounced.amount || '',
|
|
195
217
|
balance,
|
|
196
218
|
quoteError,
|
|
219
|
+
sendError,
|
|
197
220
|
direction,
|
|
198
221
|
stakedBalance: stakedBalanceData?.stakedBalance,
|
|
199
222
|
quote,
|
package/dist/esm/features/staking/components/staking-widget-provider/staking-widget-provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staking-widget-provider.js","sourceRoot":"","sources":["../../../../../../src/features/staking/components/staking-widget-provider/staking-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":"staking-widget-provider.js","sourceRoot":"","sources":["../../../../../../src/features/staking/components/staking-widget-provider/staking-widget-provider.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/features/staking/components/staking-widget-provider/use-staking-validation.js
CHANGED
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
import { useMemo } from 'react';
|
|
9
9
|
import { hasTooManyDecimals, isAmountExceedingBalance } from '../../../../utils/validate-amount';
|
|
10
10
|
import { mapStakingError } from '../../utils/map-staking-error';
|
|
11
|
-
export const useStakingValidation = ({ amount, amountDebounced, balance, quote, quoteError, direction, amountDecimals, isReversed, stakedBalance, isNetworkSupported, }) => {
|
|
12
|
-
|
|
11
|
+
export const useStakingValidation = ({ amount, amountDebounced, balance, quote, quoteError, sendError, direction, amountDecimals, isReversed, stakedBalance, isNetworkSupported, }) => {
|
|
12
|
+
// Input-side validation that blocks submission. `sendError` is intentionally NOT considered
|
|
13
|
+
// here — a previous failed attempt shouldn't lock the button against a retry.
|
|
14
|
+
const blockingError = useMemo(() => {
|
|
13
15
|
if (!isNetworkSupported)
|
|
14
16
|
return 'defi.unsupportedNetwork';
|
|
15
17
|
if ((parseFloat(amount) || 0) <= 0)
|
|
@@ -42,7 +44,14 @@ export const useStakingValidation = ({ amount, amountDebounced, balance, quote,
|
|
|
42
44
|
quote,
|
|
43
45
|
amountDecimals,
|
|
44
46
|
]);
|
|
45
|
-
|
|
47
|
+
// The user-visible error: build/send failure (most recent user action) wins over background
|
|
48
|
+
// validation noise; falls back to validation when no send error is active.
|
|
49
|
+
const error = useMemo(() => {
|
|
50
|
+
if (sendError)
|
|
51
|
+
return mapStakingError(sendError, 'staking.sendFailed');
|
|
52
|
+
return blockingError;
|
|
53
|
+
}, [sendError, blockingError]);
|
|
54
|
+
const canSubmit = (parseFloat(amount) || 0) > 0 && blockingError === null && quote !== undefined;
|
|
46
55
|
return { error, canSubmit };
|
|
47
56
|
};
|
|
48
57
|
//# sourceMappingURL=use-staking-validation.js.map
|
package/dist/esm/features/staking/components/staking-widget-provider/use-staking-validation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-staking-validation.js","sourceRoot":"","sources":["../../../../../../src/features/staking/components/staking-widget-provider/use-staking-validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-staking-validation.js","sourceRoot":"","sources":["../../../../../../src/features/staking/components/staking-widget-provider/use-staking-validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAiBhE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACjC,MAAM,EACN,eAAe,EACf,OAAO,EACP,KAAK,EACL,UAAU,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EACb,kBAAkB,GACQ,EAAE,EAAE;IAC9B,4FAA4F;IAC5F,8EAA8E;IAC9E,MAAM,aAAa,GAAkB,OAAO,CAAC,GAAG,EAAE;QAC9C,IAAI,CAAC,kBAAkB;YAAE,OAAO,yBAAyB,CAAC;QAE1D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEhD,IAAI,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC;YAAE,OAAO,yBAAyB,CAAC;QAEjF,IAAI,SAAS,KAAK,OAAO,IAAI,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACrE,OAAO,6BAA6B,CAAC;QACzC,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,qFAAqF;YACrF,wDAAwD;YACxD,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7D,IAAI,wBAAwB,CAAC,cAAc,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC1D,OAAO,6BAA6B,CAAC;YACzC,CAAC;QACL,CAAC;QAED,IAAI,UAAU,IAAI,eAAe;YAAE,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC;IAChB,CAAC,EAAE;QACC,kBAAkB;QAClB,MAAM;QACN,OAAO;QACP,UAAU;QACV,eAAe;QACf,SAAS;QACT,aAAa;QACb,UAAU;QACV,KAAK;QACL,cAAc;KACjB,CAAC,CAAC;IAEH,4FAA4F;IAC5F,2EAA2E;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAgB,GAAG,EAAE;QACtC,IAAI,SAAS;YAAE,OAAO,eAAe,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACvE,OAAO,aAAa,CAAC;IACzB,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,aAAa,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;IAEjG,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC,CAAC"}
|