tek-wallet 0.0.764 → 0.0.765

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.
Files changed (23) hide show
  1. package/dist/components/TekWallet/components/ui/ConfirmByPasscode/index.js +6 -7
  2. package/dist/components/TekWallet/components/ui/ConfirmSwapToken/Result.js +7 -4
  3. package/dist/components/TekWallet/components/ui/DetailSwapResult/index.js +6 -6
  4. package/dist/components/TekWallet/components/ui/ScanQRToSend/index.js +7 -2
  5. package/dist/components/TekWallet/components/ui/SwapFunction/index.js +2 -2
  6. package/dist/components/TekWallet/components/views/AssetView/index.js +2 -1
  7. package/dist/components/TekWallet/components/views/SendExternalView/components/Form.js +36 -15
  8. package/dist/components/TekWallet/components/views/SendExternalView/index.js +1 -1
  9. package/dist/components/TekWallet/components/views/SendInternalView/index.js +1 -1
  10. package/dist/components/TekWallet/components/views/SwapView/components/FromCard/FromCardSkeleton.d.ts +2 -0
  11. package/dist/components/TekWallet/components/views/SwapView/components/FromCard/FromCardSkeleton.js +27 -0
  12. package/dist/components/TekWallet/components/views/SwapView/components/FromCard/index.d.ts +3 -2
  13. package/dist/components/TekWallet/components/views/SwapView/components/FromCard/index.js +24 -27
  14. package/dist/components/TekWallet/components/views/SwapView/components/{CardTo → ToCard}/index.d.ts +2 -2
  15. package/dist/components/TekWallet/components/views/SwapView/components/{CardTo → ToCard}/index.js +2 -2
  16. package/dist/components/TekWallet/components/views/SwapView/index.js +38 -32
  17. package/dist/components/TekWallet/components/views/TekWalletView/index.js +2 -1
  18. package/dist/components/TekWallet/hooks/useEventHandler.js +2 -2
  19. package/dist/components/TekWallet/providers/EventHandlerProvider/index.js +3 -3
  20. package/dist/components/TekWallet/providers/RealtimeProvider/index.js +5 -1
  21. package/dist/components/TekWallet/services/axios/get-swap-tokens-list-service/type.d.ts +1 -0
  22. package/dist/components/TekWallet/services/axios/type.d.ts +1 -0
  23. package/package.json +1 -1
@@ -96,7 +96,6 @@ var xhub_keyboard_1 = require("xhub-keyboard");
96
96
  var useUniqueId_1 = require("../../../hooks/useUniqueId");
97
97
  var xhub_keyboard_2 = require("xhub-keyboard");
98
98
  var useWarningWrongPasscode_1 = require("../../../hooks/useWarningWrongPasscode");
99
- var clsx_1 = __importDefault(require("clsx"));
100
99
  var passcodeLength = 6;
101
100
  var ConfirmByPasscode = (0, react_1.forwardRef)(function (props, ref) {
102
101
  var onConfirmSuccess = props.onConfirmSuccess, sx = props.sx;
@@ -187,13 +186,13 @@ var ConfirmByPasscode = (0, react_1.forwardRef)(function (props, ref) {
187
186
  case 5: return [2 /*return*/];
188
187
  }
189
188
  });
190
- }); }, [handleClose, onConfirmSuccess, passcode]);
189
+ }); }, [handleClose, handleVerifyPasscode, onConfirmSuccess, passcode]);
191
190
  return ((0, jsx_runtime_1.jsx)(DrawerComponent_1.default, { ref: drawerRef, trigger: (0, jsx_runtime_1.jsx)(xhub_keyboard_1.Label, { style: {
192
191
  width: "100%",
193
- }, useBrowserInput: false, htmlFor: keyboardId, children: props.children }), onOpen: handleOnOpen, onClose: handleOnClose, triggerStatus: props.triggerStatus, sx: __assign({ width: "100%", maxWidth: "calc(100dvw - 2rem)", display: "flex" }, sx), children: (0, jsx_runtime_1.jsx)(xhub_keyboard_1.Keyboard, { ref: keyboardRef, id: keyboardId, value: passcode, onChange: handlePasscodeChange, keyboardType: xhub_keyboard_1.KeyboardType.Text, layoutType: xhub_keyboard_1.LayoutType.Integer, classNames: {
194
- keyboardContainer: (0, clsx_1.default)({
195
- "!hidden": isLocked,
196
- }),
192
+ }, useBrowserInput: false, htmlFor: keyboardId, children: props.children }), onOpen: handleOnOpen, onClose: handleOnClose, triggerStatus: props.triggerStatus, sx: __assign({ width: "100%", maxWidth: "calc(100dvw - 2rem)", display: "flex" }, sx), children: (0, jsx_runtime_1.jsx)(xhub_keyboard_1.Keyboard, { ref: keyboardRef, id: keyboardId, value: passcode, onChange: handlePasscodeChange, keyboardType: xhub_keyboard_1.KeyboardType.Text, layoutType: xhub_keyboard_1.LayoutType.Integer, styles: {
193
+ keyboardContainer: {
194
+ display: isLocked ? "none" : "block",
195
+ },
197
196
  }, children: (0, jsx_runtime_1.jsx)(LoadingLayout_1.default, { initLoading: false, ref: loadingRef, sx: {
198
197
  backgroundColor: "transparent",
199
198
  width: "100%",
@@ -204,7 +203,7 @@ var ConfirmByPasscode = (0, react_1.forwardRef)(function (props, ref) {
204
203
  backgroundColor: theme.palette.background.tertiary,
205
204
  }, children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { justifyContent: "center", alignItems: "center", gap: "0.75rem", width: "100%" }), children: [(0, jsx_runtime_1.jsx)(xhub_keyboard_1.Label, { style: {
206
205
  width: "100%",
207
- }, useBrowserInput: false, htmlFor: keyboardId, children: (0, jsx_runtime_1.jsx)(OTP_1.default, { disabled: isLocked, value: passcode, onChange: handlePasscodeChange, numInputs: passcodeLength, otpInputType: OTP_1.OtpInputType.CONFIRM_BY_PASSCODE }) }), warningContent, unknownError] }) }) }) }) }));
206
+ }, useBrowserInput: false, htmlFor: keyboardId, children: (0, jsx_runtime_1.jsx)(OTP_1.default, { disabled: isLocked, value: passcode, onChange: handlePasscodeChange, numInputs: passcodeLength, otpInputType: OTP_1.OtpInputType.CONFIRM_BY_PASSCODE }) }), !isLocked && warningContent, unknownError] }) }) }) }) }));
208
207
  });
209
208
  ConfirmByPasscode.displayName = "ConfirmByPasscode";
210
209
  exports.default = ConfirmByPasscode;
@@ -28,12 +28,13 @@ var type_1 = require("../../../services/axios/get-activities-service/type");
28
28
  var InlineTitleValue_1 = __importDefault(require("../InlineTitleValue"));
29
29
  var convertTokensRate_1 = __importDefault(require("../../views/SwapView/functions/convertTokensRate"));
30
30
  function Result(props) {
31
+ var _a;
31
32
  var theme = (0, providers_1.useTheme)();
32
33
  var formatDate = (0, useFormatter_1.default)().formatDate;
33
34
  var transaction = props.transaction, onDone = props.onDone;
34
35
  var status = (0, react_1.useMemo)(function () { return (transaction === null || transaction === void 0 ? void 0 : transaction.transaction_status) || "failed"; }, [transaction === null || transaction === void 0 ? void 0 : transaction.transaction_status]);
35
36
  var amount = (0, react_1.useMemo)(function () { return transaction === null || transaction === void 0 ? void 0 : transaction.amount; }, [transaction === null || transaction === void 0 ? void 0 : transaction.amount]);
36
- var toAmount = 1;
37
+ var toAmount = (0, react_1.useMemo)(function () { var _a; return (_a = transaction === null || transaction === void 0 ? void 0 : transaction.to_currency_data) === null || _a === void 0 ? void 0 : _a.swap_total_amount; }, [(_a = transaction === null || transaction === void 0 ? void 0 : transaction.to_currency_data) === null || _a === void 0 ? void 0 : _a.swap_total_amount]);
37
38
  var fromToken = (0, react_1.useMemo)(function () { return transaction === null || transaction === void 0 ? void 0 : transaction.currency_data; }, [transaction === null || transaction === void 0 ? void 0 : transaction.currency_data]);
38
39
  var toToken = (0, react_1.useMemo)(function () { return transaction === null || transaction === void 0 ? void 0 : transaction.to_currency_data; }, [transaction === null || transaction === void 0 ? void 0 : transaction.to_currency_data]);
39
40
  var toTokenRate = (0, react_1.useMemo)(function () {
@@ -85,11 +86,13 @@ function Result(props) {
85
86
  width: 20,
86
87
  height: 20,
87
88
  borderRadius: "999px",
88
- } }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { color: "inherit" }), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: amount }) }), (0, jsx_runtime_1.jsx)(Icon_1.default, { iconKey: "IC_SWAP", sx: {
89
+ } }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { color: "inherit" }), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: amount }) }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: { mx: "auto" } }), (0, jsx_runtime_1.jsx)(Icon_1.default, { iconKey: "IC_SWAP", sx: {
89
90
  width: 16,
90
91
  height: 16,
91
- mx: "auto",
92
- transform: "rotate(-90deg)",
92
+ position: "absolute",
93
+ left: "50%",
94
+ top: "50%",
95
+ transform: "translate(-50%, -50%) rotate(-90deg)",
93
96
  } }), (0, jsx_runtime_1.jsx)(Icon_1.default, { src: toToken === null || toToken === void 0 ? void 0 : toToken.link, sx: {
94
97
  width: 20,
95
98
  height: 20,
@@ -28,7 +28,7 @@ var LineValue_1 = __importDefault(require("../LineValue"));
28
28
  var formatDate_1 = __importDefault(require("../../../utils/formatDate"));
29
29
  var roundToTwoSignificantDecimals_1 = __importDefault(require("../../../utils/roundToTwoSignificantDecimals"));
30
30
  var DetailSwapResult = function (_a) {
31
- var _b, _c, _d;
31
+ var _b, _c;
32
32
  var onClose = _a.onClose, swapData = _a.swapData;
33
33
  var transaction = (0, useWallet_1.default)().transaction;
34
34
  var theme = (0, providers_1.useTheme)();
@@ -38,7 +38,7 @@ var DetailSwapResult = function (_a) {
38
38
  return ((_b = (_a = resultData === null || resultData === void 0 ? void 0 : resultData.fee_info) === null || _a === void 0 ? void 0 : _a.fee_detail) === null || _b === void 0 ? void 0 : _b.map(function (item) { return item === null || item === void 0 ? void 0 : item.currency; })) || [];
39
39
  }, [resultData]);
40
40
  var getOutputs = feeInfo === null || feeInfo === void 0 ? void 0 : feeInfo.map(function (item) { return item === null || item === void 0 ? void 0 : item.outputs; });
41
- var getDetailOutputs = ((_b = getOutputs === null || getOutputs === void 0 ? void 0 : getOutputs[0]) === null || _b === void 0 ? void 0 : _b.map(function (item) { return item; })) || [];
41
+ var getDetailOutputs = (0, react_1.useMemo)(function () { var _a; return ((_a = getOutputs === null || getOutputs === void 0 ? void 0 : getOutputs[0]) === null || _a === void 0 ? void 0 : _a.map(function (item) { return item; })) || []; }, [getOutputs]);
42
42
  var getInfoDetailOutputs = (0, react_1.useMemo)(function () {
43
43
  return (getDetailOutputs === null || getDetailOutputs === void 0 ? void 0 : getDetailOutputs[0]) || {};
44
44
  }, [getDetailOutputs]);
@@ -90,13 +90,13 @@ var DetailSwapResult = function (_a) {
90
90
  width: "100%",
91
91
  color: theme.palette.text.accent,
92
92
  mt: theme.mixins.customMargin.m12,
93
- } }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { justifyContent: "space-between", mt: theme.mixins.customMargin.m16 }), children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsx)(Icon_1.default, { src: (_c = resultData === null || resultData === void 0 ? void 0 : resultData.currency_data) === null || _c === void 0 ? void 0 : _c.link, width: 20, height: 20, className: "rounded-full" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
93
+ } }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { justifyContent: "space-between", mt: theme.mixins.customMargin.m16 }), children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsx)(Icon_1.default, { src: (_b = resultData === null || resultData === void 0 ? void 0 : resultData.currency_data) === null || _b === void 0 ? void 0 : _b.link, width: 20, height: 20, className: "rounded-full" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
94
94
  fontSize: theme.typography.fontSize14,
95
95
  fontWeight: theme.typography.fontWeight700,
96
- }, children: resultData === null || resultData === void 0 ? void 0 : resultData.amount })] }), (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("swap_horizontal"), width: 20, height: 20 }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsx)(Icon_1.default, { src: getInfoDetailOutputs === null || getInfoDetailOutputs === void 0 ? void 0 : getInfoDetailOutputs.link, width: 20, height: 20, className: "rounded-full" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
96
+ }, children: resultData === null || resultData === void 0 ? void 0 : resultData.amount })] }), (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("swap_horizontal"), width: 20, height: 20 }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsx)(Icon_1.default, { src: getInfoDetailOutputs === null || getInfoDetailOutputs === void 0 ? void 0 : getInfoDetailOutputs.link, width: 20, height: 20, className: "rounded-full" }), (0, jsx_runtime_1.jsxs)(Text_1.default, { sx: {
97
97
  fontSize: theme.typography.fontSize14,
98
98
  fontWeight: theme.typography.fontWeight700,
99
- }, children: (0, roundToTwoSignificantDecimals_1.default)((resultData === null || resultData === void 0 ? void 0 : resultData.amount) * (getInfoDetailOutputs === null || getInfoDetailOutputs === void 0 ? void 0 : getInfoDetailOutputs.swap_amount)) })] })] }), (0, jsx_runtime_1.jsx)(material_1.Divider, { sx: {
99
+ }, children: [(0, roundToTwoSignificantDecimals_1.default)(getInfoDetailOutputs === null || getInfoDetailOutputs === void 0 ? void 0 : getInfoDetailOutputs.swap_total_amount), "cc"] })] })] }), (0, jsx_runtime_1.jsx)(material_1.Divider, { sx: {
100
100
  width: "100%",
101
101
  color: theme.palette.text.accent,
102
102
  mt: theme.mixins.customMargin.m12,
@@ -110,7 +110,7 @@ var DetailSwapResult = function (_a) {
110
110
  fontSize: theme.typography.fontSize14,
111
111
  fontWeight: theme.typography.fontWeight700,
112
112
  ml: theme.mixins.customMargin.m8,
113
- }, children: ["1 ", (_d = resultData === null || resultData === void 0 ? void 0 : resultData.currency_data) === null || _d === void 0 ? void 0 : _d.full_name, " ~ ", getInfoDetailOutputs === null || getInfoDetailOutputs === void 0 ? void 0 : getInfoDetailOutputs.swap_amount, " ", getInfoDetailOutputs === null || getInfoDetailOutputs === void 0 ? void 0 : getInfoDetailOutputs.full_name] }) }), (0, jsx_runtime_1.jsx)(LineValue_1.default, { field: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
113
+ }, children: ["1 ", (_c = resultData === null || resultData === void 0 ? void 0 : resultData.currency_data) === null || _c === void 0 ? void 0 : _c.full_name, " ~ ", getInfoDetailOutputs === null || getInfoDetailOutputs === void 0 ? void 0 : getInfoDetailOutputs.swap_amount, " ", getInfoDetailOutputs === null || getInfoDetailOutputs === void 0 ? void 0 : getInfoDetailOutputs.full_name] }) }), (0, jsx_runtime_1.jsx)(LineValue_1.default, { field: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
114
114
  fontSize: theme.typography.fontSize12,
115
115
  color: theme.palette.text.blackContrast,
116
116
  }, children: "Date time" }), value: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
@@ -66,10 +66,15 @@ var AppDialog_1 = __importDefault(require("../AppDialog"));
66
66
  var type_1 = require("../../../services/axios/validate-wallet-address-service/type");
67
67
  var navigation_1 = require("next/navigation");
68
68
  var ThemeProvider_1 = require("../../../providers/ThemeProvider");
69
+ var providers_1 = require("../../../providers");
70
+ var TekWalletView_1 = require("../../views/TekWalletView");
69
71
  exports.ScanQRToSend = (0, react_1.forwardRef)(function (props, ref) {
70
72
  var children = props.children, transferInternalPath = props.transferInternalPath, transferExternalPath = props.transferExternalPath, gotoTransferInternalOverride = props.gotoTransferInternalOverride, gotoTransferExternalOverride = props.gotoTransferExternalOverride, sx = props.sx, className = props.className;
71
- var internalPath = transferInternalPath || "/transfer-internal";
72
- var externalPath = transferExternalPath || "/transfer-external";
73
+ var options = (0, providers_1.useWalletConfig)().options;
74
+ var internalPath = transferInternalPath ||
75
+ "".concat((options === null || options === void 0 ? void 0 : options.basePath) || "", "/tek-wallet/").concat(TekWalletView_1.TekWalletViewRoutes.SEND_INTERNAL);
76
+ var externalPath = transferExternalPath ||
77
+ "".concat((options === null || options === void 0 ? void 0 : options.basePath) || "", "/tek-wallet/").concat(TekWalletView_1.TekWalletViewRoutes.SEND_EXTERNAL);
73
78
  var drawerRef = (0, react_1.useRef)(null);
74
79
  var theme = (0, ThemeProvider_1.useTheme)();
75
80
  var router = (0, navigation_1.useRouter)();
@@ -60,7 +60,7 @@ var Button_1 = __importDefault(require("../Button"));
60
60
  var ThemeProvider_1 = require("../../../providers/ThemeProvider");
61
61
  var ChildPageLayout_1 = __importDefault(require("../../layouts/ChildPageLayout"));
62
62
  var FromCard_1 = __importDefault(require("../../views/SwapView/components/FromCard"));
63
- var CardTo_1 = __importDefault(require("../../views/SwapView/components/CardTo"));
63
+ var ToCard_1 = __importDefault(require("../../views/SwapView/components/ToCard"));
64
64
  var DetailSwap_1 = __importDefault(require("../DetailSwap"));
65
65
  var ModalSelectToken_1 = __importDefault(require("../ModalSelectToken"));
66
66
  var useCustomRouter_1 = __importDefault(require("../../../hooks/useCustomRouter"));
@@ -265,7 +265,7 @@ exports.SwapFunction = (0, react_1.forwardRef)(function (props, ref) {
265
265
  borderStyle: "dashed",
266
266
  borderColor: "#A3A3A3",
267
267
  opacity: 0.3,
268
- } })] }), (0, jsx_runtime_1.jsx)(CardTo_1.default, { selectedToToken: selectedOutputToken !== null && selectedOutputToken !== void 0 ? selectedOutputToken : undefined, selectedFromToken: selectedToken !== null && selectedToken !== void 0 ? selectedToken : undefined, fromAmount: number !== null && number !== void 0 ? number : undefined }), (0, jsx_runtime_1.jsx)(DetailSwap_1.default, { selectedToken: selectedToken !== null && selectedToken !== void 0 ? selectedToken : undefined, selectOutputToken: selectedOutputToken !== null && selectedOutputToken !== void 0 ? selectedOutputToken : undefined }), (0, jsx_runtime_1.jsx)(ModalSelectToken_1.default, { setSwapToken: handleSelectToken, token: selectedToken !== null && selectedToken !== void 0 ? selectedToken : undefined, outputToken: selectedOutputToken !== null && selectedOutputToken !== void 0 ? selectedOutputToken : undefined, setOutputToken: handleSelectOutputToken })] }, SwapStep.SELECT_SWAP) }, selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.id) }) }) }));
268
+ } })] }), (0, jsx_runtime_1.jsx)(ToCard_1.default, { selectedToToken: selectedOutputToken !== null && selectedOutputToken !== void 0 ? selectedOutputToken : undefined, selectedFromToken: selectedToken !== null && selectedToken !== void 0 ? selectedToken : undefined, fromAmount: number !== null && number !== void 0 ? number : undefined }), (0, jsx_runtime_1.jsx)(DetailSwap_1.default, { selectedToken: selectedToken !== null && selectedToken !== void 0 ? selectedToken : undefined, selectOutputToken: selectedOutputToken !== null && selectedOutputToken !== void 0 ? selectedOutputToken : undefined }), (0, jsx_runtime_1.jsx)(ModalSelectToken_1.default, { setSwapToken: handleSelectToken, token: selectedToken !== null && selectedToken !== void 0 ? selectedToken : undefined, outputToken: selectedOutputToken !== null && selectedOutputToken !== void 0 ? selectedOutputToken : undefined, setOutputToken: handleSelectOutputToken })] }, SwapStep.SELECT_SWAP) }, selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.id) }) }) }));
269
269
  });
270
270
  exports.SwapFunction.displayName = "SwapFunction";
271
271
  exports.default = exports.SwapFunction;
@@ -82,6 +82,7 @@ var xhub_keyboard_1 = require("xhub-keyboard");
82
82
  var useCustomRouter_1 = __importDefault(require("../../../hooks/useCustomRouter"));
83
83
  var BasicAmountGroup_1 = __importDefault(require("../../ui/BasicAmountGroup"));
84
84
  var AssetViewHeader_1 = __importDefault(require("../../ui/AssetViewHeader"));
85
+ var ScanQRToSend_1 = __importDefault(require("../../ui/ScanQRToSend"));
85
86
  var AssetView = function (props) {
86
87
  var sx = props.sx, rest = __rest(props, ["sx"]);
87
88
  var _a = (0, useWalletData_1.default)(), isInitPasscode = _a.isInitPasscode, masterWallet = _a.masterWallet;
@@ -127,7 +128,7 @@ var AssetView = function (props) {
127
128
  fontWeight: theme.typography.fontWeight400,
128
129
  color: theme.palette.text.black,
129
130
  cursor: "pointer",
130
- }, children: "View all" }), (0, jsx_runtime_1.jsx)(Icon_1.default, { iconKey: "IC_ARROW_RIGHT", width: 18, height: 18 })] })] }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
131
+ }, children: "View all" }), (0, jsx_runtime_1.jsx)(Icon_1.default, { iconKey: "IC_ARROW_RIGHT", width: 18, height: 18 })] })] }), (0, jsx_runtime_1.jsx)(ScanQRToSend_1.default, { children: "Scan QR Code" }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
131
132
  position: "relative",
132
133
  left: "-".concat(theme.mixins.customPadding.p16),
133
134
  width: "calc(100% + ".concat(theme.mixins.customPadding.p16, " * 2)"),
@@ -121,20 +121,21 @@ function Form(props) {
121
121
  var searchParams = (0, navigation_1.useSearchParams)();
122
122
  var address = searchParams.get("address") || "";
123
123
  var selectedToken = props.selectedToken, onContinue = props.onContinue, sx = props.sx;
124
- var _a = (0, react_1.useState)(address), recipientAddress = _a[0], setRecipientAddress = _a[1];
124
+ var _a = (0, react_1.useState)(""), recipientAddress = _a[0], setRecipientAddress = _a[1];
125
125
  var _b = (0, react_1.useState)(), recipientAddressError = _b[0], setRecipientAddressError = _b[1];
126
126
  var _c = (0, react_1.useState)(""), amount = _c[0], setAmount = _c[1];
127
127
  var _d = (0, react_1.useState)(), amountErrorMessage = _d[0], setAmountErrorMessage = _d[1];
128
128
  var _e = (0, react_1.useState)(), amountError = _e[0], setAmountError = _e[1];
129
129
  var _f = (0, react_1.useState)(undefined), comment = _f[0], setComment = _f[1];
130
- var _g = (0, react_1.useState)(false), isValidatingAddress = _g[0], setIsValidatingAddress = _g[1];
130
+ var _g = (0, react_1.useState)(), memoError = _g[0], setMemoError = _g[1];
131
+ var _h = (0, react_1.useState)(false), isValidatingAddress = _h[0], setIsValidatingAddress = _h[1];
131
132
  var scannerAddressQrCodeRef = (0, react_1.useRef)(null);
132
- var _h = (0, react_1.useState)(false), isEstimatingFee = _h[0], setIsLoadingEstimateFee = _h[1];
133
- var _j = (0, react_1.useState)(), estimateFee = _j[0], setEstimateFee = _j[1];
134
- var _k = (0, react_1.useState)(false), isEnoughBalanceToPayFee = _k[0], setIsEnoughBalanceToPayFee = _k[1];
135
- var _l = (0, react_1.useState)(false), isKeyboardOpen = _l[0], setIsKeyboardOpen = _l[1];
136
- var _m = (0, react_1.useState)(), selectedNetwork = _m[0], setSelectedNetwork = _m[1];
137
- var _o = (0, react_1.useState)([]), networks = _o[0], setNetworks = _o[1];
133
+ var _j = (0, react_1.useState)(false), isEstimatingFee = _j[0], setIsLoadingEstimateFee = _j[1];
134
+ var _k = (0, react_1.useState)(), estimateFee = _k[0], setEstimateFee = _k[1];
135
+ var _l = (0, react_1.useState)(false), isEnoughBalanceToPayFee = _l[0], setIsEnoughBalanceToPayFee = _l[1];
136
+ var _m = (0, react_1.useState)(false), isKeyboardOpen = _m[0], setIsKeyboardOpen = _m[1];
137
+ var _o = (0, react_1.useState)(), selectedNetwork = _o[0], setSelectedNetwork = _o[1];
138
+ var _p = (0, react_1.useState)([]), networks = _p[0], setNetworks = _p[1];
138
139
  var selectNetworkDrawerRef = (0, react_1.useRef)(null);
139
140
  var minValue = (0, react_1.useMemo)(function () { return +((selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.min_value) || 0); }, [selectedNetwork]);
140
141
  var maxValue = (0, react_1.useMemo)(function () { return +((selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.max_value) || Infinity); }, [selectedNetwork]);
@@ -333,9 +334,21 @@ function Form(props) {
333
334
  target: { value: amount || "" },
334
335
  });
335
336
  };
336
- var handleChangeComment = function (e) {
337
+ var handleChangeComment = (0, react_1.useCallback)(function (e) {
337
338
  setComment(e.target.value);
338
- };
339
+ var networkPattern = selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.memo_regex;
340
+ if (!networkPattern) {
341
+ setMemoError(undefined);
342
+ return;
343
+ }
344
+ var pattern = new RegExp(networkPattern);
345
+ if (!pattern.test(e.target.value)) {
346
+ setMemoError("Invalid memo");
347
+ }
348
+ else {
349
+ setMemoError(undefined);
350
+ }
351
+ }, [selectedNetwork]);
339
352
  var handleContinue = function () {
340
353
  var _a;
341
354
  if (!selectedNetwork)
@@ -372,6 +385,13 @@ function Form(props) {
372
385
  setSelectedNetwork(network);
373
386
  closeSelectNetwork();
374
387
  };
388
+ (0, react_1.useEffect)(function () {
389
+ if (address) {
390
+ handleChangeRecipientAddress({
391
+ target: { value: address },
392
+ });
393
+ }
394
+ }, [address]);
375
395
  (0, react_1.useEffect)(function () {
376
396
  validateAmount((amount === null || amount === void 0 ? void 0 : amount.toString()) || "");
377
397
  }, [amount, validateAmount]);
@@ -439,15 +459,16 @@ function Form(props) {
439
459
  fontSize: theme.typography.fontSize14,
440
460
  color: theme.palette.text.black,
441
461
  fontWeight: theme.typography.fontWeight700,
442
- }, children: "Comment" }), (0, jsx_runtime_1.jsx)(Input_1.default, { inputRest: {
443
- placeholder: "Enter comment if needed",
444
- value: comment,
445
- onChange: handleChangeComment,
446
- } }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.validationDescription), children: "Enter comment if your receiving platform requires one to avoid losing your funds." })] }), (0, jsx_runtime_1.jsx)(Fees_1.default, { isFeePaidByAmount: true, feesData: estimateFee, amount: +amount, tokenSlug: (selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.slug) || "", feesStyle: Fees_1.FeesStyle.WITH_BACKGROUND, setIsEnoughBalanceToPayFee: setIsEnoughBalanceToPayFee }), (0, jsx_runtime_1.jsx)(QrCodeReader_1.default, { ref: scannerAddressQrCodeRef, onResult: handleScanAddressQrCode }), (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { loading: isValidatingAddress || isEstimatingFee, onClick: handleContinue, status: !recipientAddress ||
462
+ }, children: "Memo" }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsx)(Input_1.default, { inputRest: {
463
+ placeholder: "Enter memo if needed",
464
+ value: comment,
465
+ onChange: handleChangeComment,
466
+ } }), !!memoError && (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.validationError), children: memoError })] }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.validationDescription), children: "Enter memo if your receiving platform requires one to avoid losing your funds." })] }), (0, jsx_runtime_1.jsx)(Fees_1.default, { isFeePaidByAmount: true, feesData: estimateFee, amount: +amount, tokenSlug: (selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.slug) || "", feesStyle: Fees_1.FeesStyle.WITH_BACKGROUND, setIsEnoughBalanceToPayFee: setIsEnoughBalanceToPayFee }), (0, jsx_runtime_1.jsx)(QrCodeReader_1.default, { ref: scannerAddressQrCodeRef, onResult: handleScanAddressQrCode }), (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { loading: isValidatingAddress || isEstimatingFee, onClick: handleContinue, status: !recipientAddress ||
447
467
  !selectedNetwork ||
448
468
  !amount ||
449
469
  !!recipientAddressError ||
450
470
  !!amountError ||
471
+ !!memoError ||
451
472
  !isEnoughBalanceToPayFee
452
473
  ? Button_1.BUTTON_STATUS.DISABLED
453
474
  : Button_1.BUTTON_STATUS.ENABLED, sx: { width: "100%", marginTop: "auto" }, children: "Continue" })] }) }) }));
@@ -126,7 +126,7 @@ var SendExternalView = (0, react_1.forwardRef)(function (props, ref) {
126
126
  height: "100%",
127
127
  }, swiperStyle: {
128
128
  height: "100%",
129
- }, children: [(0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: { height: "100%", overflow: "hidden" }, children: (0, jsx_runtime_1.jsx)(ChildPageLayout_1.default, { children: (0, jsx_runtime_1.jsx)(DefaultPageLayout_1.default, { children: (0, jsx_runtime_1.jsx)(SelectToken_1.default, { tokens: withdrawTokens, selectedToken: selectedToken, onChangeToken: handleSelectToken }) }) }) }, SendExternalStep.SELECT_TOKEN), (0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: { minHeight: "100%" }, children: (0, jsx_runtime_1.jsx)(react_1.Suspense, { children: (0, jsx_runtime_1.jsx)(Form_1.default, { sx: __assign({}, theme.mixins.pagePadding), selectedToken: selectedToken, onContinue: gotoConfirmStep }, clearFormKey) }) }, SendExternalStep.ADDRESS_FORM), (0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: { minHeight: "100%" }, children: (0, jsx_runtime_1.jsx)(DefaultPageLayout_1.default, { sx: {
129
+ }, children: [(0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: { height: "100%", overflow: "hidden" }, children: (0, jsx_runtime_1.jsx)(ChildPageLayout_1.default, { children: (0, jsx_runtime_1.jsx)(DefaultPageLayout_1.default, { children: (0, jsx_runtime_1.jsx)(SelectToken_1.default, { tokens: withdrawTokens, selectedToken: selectedToken, onChangeToken: handleSelectToken }) }) }) }, SendExternalStep.SELECT_TOKEN), "price", (0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: { minHeight: "100%" }, children: (0, jsx_runtime_1.jsx)(react_1.Suspense, { children: !!selectedToken && ((0, jsx_runtime_1.jsx)(Form_1.default, { sx: __assign({}, theme.mixins.pagePadding), selectedToken: selectedToken, onContinue: gotoConfirmStep }, clearFormKey)) }) }, SendExternalStep.ADDRESS_FORM), (0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: { minHeight: "100%" }, children: (0, jsx_runtime_1.jsx)(DefaultPageLayout_1.default, { sx: {
130
130
  height: "100%",
131
131
  }, children: payload && ((0, jsx_runtime_1.jsx)(Summary_1.default, { estimateFee: estimateFee, payload: __assign(__assign({}, payload), { await_completion: true }), selectedToken: selectedToken, confirmProps: {
132
132
  onSuccess: handleSendSuccess,
@@ -143,7 +143,7 @@ exports.SendInternalView = (0, react_1.forwardRef)(function (props, ref) {
143
143
  paddingRight: "0px",
144
144
  paddingTop: "0px",
145
145
  paddingBottom: "0px",
146
- }, children: (0, jsx_runtime_1.jsx)(Form_1.default, { sx: __assign({}, theme.mixins.pagePadding), selectedToken: selectedToken, onContinue: gotoConfirmStep }, clearFormKey) }) }, TransferStep.FORM), (0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: { minHeight: "100%" }, children: (0, jsx_runtime_1.jsx)(DefaultPageLayout_1.default, { sx: {
146
+ }, children: selectedToken && ((0, jsx_runtime_1.jsx)(Form_1.default, { sx: __assign({}, theme.mixins.pagePadding), selectedToken: selectedToken, onContinue: gotoConfirmStep }, clearFormKey)) }) }, TransferStep.FORM), (0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: { minHeight: "100%" }, children: (0, jsx_runtime_1.jsx)(DefaultPageLayout_1.default, { sx: {
147
147
  height: "100%",
148
148
  }, children: payload && ((0, jsx_runtime_1.jsx)(Summary_1.default, { estimateFee: estimateFee, payload: __assign(__assign({}, payload), { await_completion: true }), selectedToken: selectedToken, confirmProps: {
149
149
  onSuccess: handleSendSuccess,
@@ -0,0 +1,2 @@
1
+ declare const FromCardSkeleton: () => import("react/jsx-runtime").JSX.Element;
2
+ export default FromCardSkeleton;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var jsx_runtime_1 = require("react/jsx-runtime");
4
+ var material_1 = require("@mui/material");
5
+ var providers_1 = require("../../../../../providers");
6
+ var FromCardSkeleton = function () {
7
+ var theme = (0, providers_1.useTheme)();
8
+ return ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: {
9
+ border: "1px solid",
10
+ borderColor: "".concat(theme.palette.border.black24),
11
+ borderRadius: theme.mixins.customRadius.r16,
12
+ padding: theme.mixins.customPadding.p16,
13
+ backdropFilter: "blur(12px)",
14
+ opacity: 0.7,
15
+ }, children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: {
16
+ display: "flex",
17
+ justifyContent: "space-between",
18
+ lineHeight: "100%",
19
+ }, children: [(0, jsx_runtime_1.jsx)(material_1.Skeleton, { sx: { width: "50%", height: 36, display: "block", transform: "none" } }), (0, jsx_runtime_1.jsx)(material_1.Skeleton, { sx: { width: "30%", height: 36, display: "block", transform: "none" } })] }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
20
+ display: "flex",
21
+ justifyContent: "space-between",
22
+ alignItems: "center",
23
+ mt: theme.mixins.customMargin.m12,
24
+ mb: theme.mixins.customMargin.m12,
25
+ }, children: (0, jsx_runtime_1.jsx)(material_1.Skeleton, { sx: { width: "30%", height: 36, display: "block", transform: "none" } }) }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: { mt: theme.mixins.customMargin.m16 }, children: (0, jsx_runtime_1.jsx)(material_1.Skeleton, { sx: { width: "100%", height: 36, transform: "none" } }) })] }));
26
+ };
27
+ exports.default = FromCardSkeleton;
@@ -9,6 +9,7 @@ interface Props {
9
9
  setFromInfoIsReady?: (isReady: boolean) => void;
10
10
  keyboardId?: string;
11
11
  amountWasChanged?: boolean;
12
+ fromTokens?: SupportedToken[];
12
13
  }
13
- declare const CardForm: ({ selectedToken, onChange, amount, onChangeToken, setFromInfoIsReady, keyboardId, amountWasChanged, }: Props) => import("react/jsx-runtime").JSX.Element;
14
- export default CardForm;
14
+ declare const FromCard: ({ selectedToken, onChange, amount, onChangeToken, setFromInfoIsReady, keyboardId, amountWasChanged, fromTokens, }: Props) => import("react/jsx-runtime").JSX.Element;
15
+ export default FromCard;
@@ -54,10 +54,10 @@ var ChildPageLayout_1 = __importDefault(require("../../../../layouts/ChildPageLa
54
54
  var PageHeader_1 = __importDefault(require("../../../../ui/PageHeader"));
55
55
  var useValidateAmount_1 = __importDefault(require("../../../../../hooks/useValidateAmount"));
56
56
  var xhub_keyboard_1 = require("xhub-keyboard");
57
- var CardForm = function (_a) {
57
+ var FromCard = function (_a) {
58
58
  var _b, _c, _d;
59
- var selectedToken = _a.selectedToken, onChange = _a.onChange, amount = _a.amount, onChangeToken = _a.onChangeToken, setFromInfoIsReady = _a.setFromInfoIsReady, keyboardId = _a.keyboardId, _e = _a.amountWasChanged, amountWasChanged = _e === void 0 ? true : _e;
60
- var _f = (0, useWallet_1.default)(), updateSwapTokens = _f.updateSwapTokens, fromTokens = _f.fromTokens, isInitPasscode = _f.isInitPasscode;
59
+ var selectedToken = _a.selectedToken, onChange = _a.onChange, amount = _a.amount, onChangeToken = _a.onChangeToken, setFromInfoIsReady = _a.setFromInfoIsReady, keyboardId = _a.keyboardId, _e = _a.amountWasChanged, amountWasChanged = _e === void 0 ? true : _e, fromTokens = _a.fromTokens;
60
+ var _f = (0, useWallet_1.default)(), updateSwapTokens = _f.updateSwapTokens, isInitPasscode = _f.isInitPasscode;
61
61
  var theme = (0, providers_1.useTheme)();
62
62
  var selectTokenRef = (0, react_1.useRef)(null);
63
63
  var _g = (0, useValidateAmount_1.default)({
@@ -129,37 +129,34 @@ var CardForm = function (_a) {
129
129
  }, children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.balance, unit: selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name }) })] })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: {
130
130
  display: "flex",
131
131
  justifyContent: "space-between",
132
+ alignItems: "center",
132
133
  mt: theme.mixins.customMargin.m20,
133
134
  mb: theme.mixins.customMargin.m16,
134
- }, children: [(0, jsx_runtime_1.jsx)(DrawerComponent_1.default, { ref: selectTokenRef, direction: DrawerComponent_1.DRAWER_DIRECTION.RIGHT, trigger: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
135
+ }, children: [(0, jsx_runtime_1.jsx)(DrawerComponent_1.default, { ref: selectTokenRef, direction: DrawerComponent_1.DRAWER_DIRECTION.RIGHT, trigger: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: {
135
136
  display: "flex",
136
137
  alignItems: "center",
137
138
  gap: theme.mixins.gaps.g4,
138
139
  cursor: "pointer",
139
- width: "fit-content",
140
- }, children: !!selectedToken && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Icon_1.default, { src: selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.link, width: 20, height: 20, sx: { borderRadius: "9999px" } }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
141
- color: theme.palette.text.blackContrast,
142
- fontWeight: theme.typography.fontWeight600,
143
- }, children: (selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name) || (selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.full_name) }), (0, jsx_runtime_1.jsx)(material_1.SvgIcon, { sx: { width: 10, height: 10 }, children: SvgPath_1.IC_ARROW_BLACK_DROP })] })) }), children: (0, jsx_runtime_1.jsx)(ChildPageLayout_1.default, { header: (0, jsx_runtime_1.jsx)(PageHeader_1.default, { title: "Select Token", overrideBack: closeSelectToken }), children: (0, jsx_runtime_1.jsx)(DefaultPageLayout_1.default, { sx: {
140
+ }, children: [(0, jsx_runtime_1.jsx)(Icon_1.default, { src: selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.link, width: 20, height: 20, sx: { borderRadius: "9999px" } }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
141
+ flex: 1,
142
+ color: theme.palette.text.blackContrast,
143
+ fontWeight: theme.typography.fontWeight600,
144
+ }, children: (selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name) || (selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.full_name) }), (0, jsx_runtime_1.jsx)(material_1.SvgIcon, { sx: { width: 10, height: 10, display: "block" }, children: SvgPath_1.IC_ARROW_BLACK_DROP })] }), children: (0, jsx_runtime_1.jsx)(ChildPageLayout_1.default, { header: (0, jsx_runtime_1.jsx)(PageHeader_1.default, { title: "Select Token", overrideBack: closeSelectToken }), children: (0, jsx_runtime_1.jsx)(DefaultPageLayout_1.default, { sx: {
144
145
  width: "100dvw",
145
146
  height: "100dvh",
146
- }, children: (0, jsx_runtime_1.jsx)(SelectToken_1.default, { tokens: fromTokens, selectedToken: selectedToken, onChangeToken: handleSelectToken }) }) }) }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
147
- width: "100%",
148
- display: "flex",
149
- justifyContent: "flex-end",
150
- alignItems: "flex-end",
151
- flex: 1,
152
- }, children: (0, jsx_runtime_1.jsx)(xhub_keyboard_1.Label, { htmlFor: keyboardId !== null && keyboardId !== void 0 ? keyboardId : "", children: (0, jsx_runtime_1.jsx)(xhub_keyboard_1.Input, { autoFocus: true, elementsAcceptIds: ["form-amount-keyboard-id"], value: (_d = amount === null || amount === void 0 ? void 0 : amount.toString()) !== null && _d !== void 0 ? _d : "", placeholder: placeholder, displayType: xhub_keyboard_1.DisplayType.Double, styles: {
153
- container: {
154
- padding: "0",
155
- border: "none",
156
- },
157
- input: {
158
- display: "flex",
159
- justifyContent: "flex-end",
160
- paddingRight: "2px",
161
- },
162
- } }) }) })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: {
147
+ }, children: (0, jsx_runtime_1.jsx)(SelectToken_1.default, { tokens: fromTokens, selectedToken: selectedToken, onChangeToken: handleSelectToken }) }) }) }), (0, jsx_runtime_1.jsx)(xhub_keyboard_1.Label, { htmlFor: keyboardId !== null && keyboardId !== void 0 ? keyboardId : "", children: (0, jsx_runtime_1.jsx)(xhub_keyboard_1.Input, { autoFocus: true, elementsAcceptIds: ["form-amount-keyboard-id"], value: (_d = amount === null || amount === void 0 ? void 0 : amount.toString()) !== null && _d !== void 0 ? _d : "", placeholder: placeholder, displayType: xhub_keyboard_1.DisplayType.Double, styles: {
148
+ container: {
149
+ padding: "0",
150
+ border: "none",
151
+ minWidth: "0px !important",
152
+ },
153
+ input: {
154
+ display: "flex",
155
+ justifyContent: "flex-end",
156
+ paddingRight: "2px",
157
+ minWidth: "0px !important",
158
+ },
159
+ } }) })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: {
163
160
  display: "flex",
164
161
  alignItems: "center",
165
162
  justifyContent: "space-between",
@@ -178,4 +175,4 @@ var CardForm = function (_a) {
178
175
  lineHeight: theme.typography.leading100,
179
176
  }, children: "Max" }) })] })] }));
180
177
  };
181
- exports.default = CardForm;
178
+ exports.default = FromCard;
@@ -7,5 +7,5 @@ interface Props {
7
7
  onClick?: () => void;
8
8
  onChangeToToken?: (token: Output) => void;
9
9
  }
10
- declare const CardTo: ({ selectedToToken, selectedFromToken, fromAmount, onChangeToToken }: Props) => import("react/jsx-runtime").JSX.Element;
11
- export default CardTo;
10
+ declare const ToCard: ({ selectedToToken, selectedFromToken, fromAmount, onChangeToToken }: Props) => import("react/jsx-runtime").JSX.Element;
11
+ export default ToCard;
@@ -49,7 +49,7 @@ var ChildPageLayout_1 = __importDefault(require("../../../../layouts/ChildPageLa
49
49
  var DefaultPageLayout_1 = __importDefault(require("../../../../layouts/DefaultPageLayout"));
50
50
  var PageHeader_1 = __importDefault(require("../../../../ui/PageHeader"));
51
51
  var SelectToken_1 = __importDefault(require("../SelectToken"));
52
- var CardTo = function (_a) {
52
+ var ToCard = function (_a) {
53
53
  var selectedToToken = _a.selectedToToken, selectedFromToken = _a.selectedFromToken, fromAmount = _a.fromAmount, onChangeToToken = _a.onChangeToToken;
54
54
  var selectTokenRef = (0, react_1.useRef)(null);
55
55
  var receiveAmountEst = (0, react_1.useMemo)(function () {
@@ -108,4 +108,4 @@ var CardTo = function (_a) {
108
108
  fontSize: theme.typography.fontSize16,
109
109
  }, children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: receiveAmountEst, unit: selectedToToken === null || selectedToToken === void 0 ? void 0 : selectedToToken.name }) })] })] }));
110
110
  };
111
- exports.default = CardTo;
111
+ exports.default = ToCard;
@@ -61,13 +61,16 @@ var PageHeader_1 = __importDefault(require("../../ui/PageHeader"));
61
61
  var SvgPath_1 = require("../../ui/SvgPath");
62
62
  var Button_1 = __importStar(require("../../ui/Button"));
63
63
  var FromCard_1 = __importDefault(require("./components/FromCard"));
64
- var CardTo_1 = __importDefault(require("./components/CardTo"));
64
+ var ToCard_1 = __importDefault(require("./components/ToCard"));
65
65
  var xhub_keyboard_1 = require("xhub-keyboard");
66
66
  var Text_1 = __importDefault(require("../../ui/Text"));
67
67
  var Formatter_1 = __importDefault(require("../../ui/Formatter"));
68
68
  var convertTokensRate_1 = __importDefault(require("./functions/convertTokensRate"));
69
69
  var Summary_1 = __importDefault(require("./components/Summary"));
70
70
  var useCustomRouter_1 = __importDefault(require("../../../hooks/useCustomRouter"));
71
+ var FromCardSkeleton_1 = __importDefault(require("./components/FromCard/FromCardSkeleton"));
72
+ var useWallet_1 = __importDefault(require("../../../hooks/useWallet"));
73
+ var SwapFunction_1 = __importDefault(require("../../ui/SwapFunction"));
71
74
  var SwapStep;
72
75
  (function (SwapStep) {
73
76
  SwapStep[SwapStep["FORM"] = 0] = "FORM";
@@ -94,6 +97,7 @@ var SwapView = function () {
94
97
  var value = e.target.value;
95
98
  setFormAmount(value);
96
99
  }, []);
100
+ var fromTokens = (0, useWallet_1.default)().fromTokens;
97
101
  var clearValues = (0, react_1.useCallback)(function () {
98
102
  setFromTokenSelected(null);
99
103
  setToTokenSelected(null);
@@ -158,37 +162,39 @@ var SwapView = function () {
158
162
  container: {
159
163
  height: "100%",
160
164
  },
161
- }, id: keyboardId, onChange: handleKeyboardChangeAmount, keyboardType: xhub_keyboard_1.KeyboardType.Double, value: fromAmount === null || fromAmount === void 0 ? void 0 : fromAmount.toString(), keyboardId: "form-amount-keyboard-id", onOpen: handleKeyboardOpen, onClose: handleKeyboardClose, children: (0, jsx_runtime_1.jsx)(ChildPageLayout_1.default, { header: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(PageHeader_1.default, { title: SWAP_STEP_NAME[currentStep], overrideBack: handleBack }) }), children: (0, jsx_runtime_1.jsxs)(SwiperControlled_1.default, { ref: swiperRef, swiperProps: {
162
- autoHeight: false,
163
- spaceBetween: 32,
164
- speed: isChangeSlidePromptly ? 0 : 500,
165
- }, disableSwipe: true, initialActiveTab: currentStep, sx: {
166
- height: "100%",
167
- }, swiperStyle: {
168
- height: "100%",
169
- }, children: [(0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: __assign(__assign({ height: "100%", minHeight: "100%" }, theme.mixins.pagePadding), { paddingBottom: isKeyboardOpen
170
- ? theme.mixins.customPadding.p8
171
- : theme.mixins.customPadding.p24 }), children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: {
172
- display: "flex",
173
- flexDirection: "column",
174
- gap: theme.mixins.gaps.g12,
175
- height: "100%",
176
- }, children: [(0, jsx_runtime_1.jsx)(FromCard_1.default, { onChange: onChange, onChangeToken: handleSelectToken, selectedToken: fromTokenSelected !== null && fromTokenSelected !== void 0 ? fromTokenSelected : undefined, amount: fromAmount !== null && fromAmount !== void 0 ? fromAmount : undefined, setFromInfoIsReady: setFromInfoIsReady, keyboardId: keyboardId, amountWasChanged: isUserTypedAmount }), (0, jsx_runtime_1.jsxs)(material_1.Stack, { direction: "row", alignItems: "center", gap: 1, children: [(0, jsx_runtime_1.jsx)(material_1.SvgIcon, { sx: { width: 18, height: 18 }, children: SvgPath_1.IC_SWAP }), (0, jsx_runtime_1.jsx)(material_1.Divider, { sx: {
177
- flex: 1,
178
- borderStyle: "dashed",
179
- borderColor: "#A3A3A3",
180
- opacity: 0.3,
181
- } })] }), (0, jsx_runtime_1.jsx)(CardTo_1.default, { selectedToToken: toTokenSelected !== null && toTokenSelected !== void 0 ? toTokenSelected : undefined, selectedFromToken: fromTokenSelected !== null && fromTokenSelected !== void 0 ? fromTokenSelected : undefined, fromAmount: +(fromAmount !== null && fromAmount !== void 0 ? fromAmount : 0), onChangeToToken: handleSelectOutputToken }), !!toTokenRate && ((0, jsx_runtime_1.jsxs)(Text_1.default, { sx: {
182
- fontSize: theme.typography.fontSize12,
183
- fontWeight: theme.typography.fontWeight500,
184
- color: theme.palette.text.blackContrast,
185
- alignSelf: "center",
186
- }, children: ["1 ", fromTokenSelected === null || fromTokenSelected === void 0 ? void 0 : fromTokenSelected.name, " ~", " ", (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: toTokenRate, unit: toTokenSelected === null || toTokenSelected === void 0 ? void 0 : toTokenSelected.name })] })), (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { sx: {
187
- marginTop: "auto",
188
- }, status: !fromInfoIsReady ? Button_1.BUTTON_STATUS.DISABLED : Button_1.BUTTON_STATUS.ENABLED, fullWidth: true, onClick: handlePreviewSwap, children: "Preview swap" })] }) }, SwapStep.FORM), (0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: __assign({ height: "100%", minHeight: "100%" }, theme.mixins.pagePadding), children: (0, jsx_runtime_1.jsx)(Summary_1.default, { isActiveStep: currentStep === SwapStep.CONFIRM, fromToken: fromTokenSelected !== null && fromTokenSelected !== void 0 ? fromTokenSelected : undefined, toToken: toTokenSelected !== null && toTokenSelected !== void 0 ? toTokenSelected : undefined, fromAmount: +(fromAmount !== null && fromAmount !== void 0 ? fromAmount : 0), receiveAmountEstimate: fromAmount ? +(fromAmount !== null && fromAmount !== void 0 ? fromAmount : 0) * toTokenRate : 0, confirmProps: {
189
- onDone: handleNewTransaction,
190
- onSuccess: handleOnSuccessSwap,
191
- } }) }, SwapStep.CONFIRM)] }) }) }));
165
+ }, id: keyboardId, onChange: handleKeyboardChangeAmount, keyboardType: xhub_keyboard_1.KeyboardType.Double, value: fromAmount === null || fromAmount === void 0 ? void 0 : fromAmount.toString(), keyboardId: "form-amount-keyboard-id", onOpen: handleKeyboardOpen, onClose: handleKeyboardClose, children: (0, jsx_runtime_1.jsxs)(ChildPageLayout_1.default, { header: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(PageHeader_1.default, { title: SWAP_STEP_NAME[currentStep], overrideBack: handleBack }) }), children: [(0, jsx_runtime_1.jsxs)(SwiperControlled_1.default, { ref: swiperRef, swiperProps: {
166
+ autoHeight: false,
167
+ spaceBetween: 32,
168
+ speed: isChangeSlidePromptly ? 0 : 500,
169
+ }, disableSwipe: true, initialActiveTab: currentStep, sx: {
170
+ height: "100%",
171
+ }, swiperStyle: {
172
+ height: "100%",
173
+ }, children: [(0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: __assign(__assign({ height: "100%", minHeight: "100%" }, theme.mixins.pagePadding), { paddingBottom: isKeyboardOpen
174
+ ? theme.mixins.customPadding.p8
175
+ : theme.mixins.customPadding.p24 }), children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: {
176
+ display: "flex",
177
+ flexDirection: "column",
178
+ gap: theme.mixins.gaps.g12,
179
+ height: "100%",
180
+ }, children: [!fromTokens && (0, jsx_runtime_1.jsx)(FromCardSkeleton_1.default, {}), !!fromTokens && ((0, jsx_runtime_1.jsx)(FromCard_1.default, { onChange: onChange, onChangeToken: handleSelectToken, selectedToken: fromTokenSelected !== null && fromTokenSelected !== void 0 ? fromTokenSelected : undefined, amount: fromAmount !== null && fromAmount !== void 0 ? fromAmount : undefined, setFromInfoIsReady: setFromInfoIsReady, keyboardId: keyboardId, amountWasChanged: isUserTypedAmount, fromTokens: fromTokens })), (0, jsx_runtime_1.jsxs)(material_1.Stack, { direction: "row", alignItems: "center", gap: 1, children: [(0, jsx_runtime_1.jsx)(material_1.SvgIcon, { sx: { width: 18, height: 18 }, children: SvgPath_1.IC_SWAP }), (0, jsx_runtime_1.jsx)(material_1.Divider, { sx: {
181
+ flex: 1,
182
+ borderStyle: "dashed",
183
+ borderColor: "#A3A3A3",
184
+ opacity: 0.3,
185
+ } })] }), !fromTokenSelected && (0, jsx_runtime_1.jsx)(FromCardSkeleton_1.default, {}), !!fromTokenSelected && ((0, jsx_runtime_1.jsx)(ToCard_1.default, { selectedToToken: toTokenSelected !== null && toTokenSelected !== void 0 ? toTokenSelected : undefined, selectedFromToken: fromTokenSelected !== null && fromTokenSelected !== void 0 ? fromTokenSelected : undefined, fromAmount: +(fromAmount !== null && fromAmount !== void 0 ? fromAmount : 0), onChangeToToken: handleSelectOutputToken })), !!toTokenRate && ((0, jsx_runtime_1.jsxs)(Text_1.default, { sx: {
186
+ fontSize: theme.typography.fontSize12,
187
+ fontWeight: theme.typography.fontWeight500,
188
+ color: theme.palette.text.blackContrast,
189
+ alignSelf: "center",
190
+ }, children: ["1 ", fromTokenSelected === null || fromTokenSelected === void 0 ? void 0 : fromTokenSelected.name, " ~", " ", (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: toTokenRate, unit: toTokenSelected === null || toTokenSelected === void 0 ? void 0 : toTokenSelected.name })] })), (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { sx: {
191
+ marginTop: "auto",
192
+ }, status: !fromInfoIsReady ? Button_1.BUTTON_STATUS.DISABLED : Button_1.BUTTON_STATUS.ENABLED, fullWidth: true, onClick: handlePreviewSwap, children: "Preview swap" })] }) }, SwapStep.FORM), (0, jsx_runtime_1.jsx)(react_2.SwiperSlide, { style: __assign({ height: "100%", minHeight: "100%" }, theme.mixins.pagePadding), children: (0, jsx_runtime_1.jsx)(Summary_1.default, { isActiveStep: currentStep === SwapStep.CONFIRM, fromToken: fromTokenSelected !== null && fromTokenSelected !== void 0 ? fromTokenSelected : undefined, toToken: toTokenSelected !== null && toTokenSelected !== void 0 ? toTokenSelected : undefined, fromAmount: +(fromAmount !== null && fromAmount !== void 0 ? fromAmount : 0), receiveAmountEstimate: fromAmount ? +(fromAmount !== null && fromAmount !== void 0 ? fromAmount : 0) * toTokenRate : 0, confirmProps: {
193
+ onDone: handleNewTransaction,
194
+ onSuccess: handleOnSuccessSwap,
195
+ } }) }, SwapStep.CONFIRM)] }), (0, jsx_runtime_1.jsx)("div", { style: {
196
+ display: "none",
197
+ }, children: (0, jsx_runtime_1.jsx)(SwapFunction_1.default, {}) })] }) }));
192
198
  };
193
199
  exports.SwapView = SwapView;
194
200
  exports.default = exports.SwapView;
@@ -17,6 +17,7 @@ var AssetView_1 = __importDefault(require("../AssetView"));
17
17
  var DetailActivityView_1 = __importDefault(require("../DetailActivityView"));
18
18
  var ActivityView_1 = __importDefault(require("../ActivityView"));
19
19
  var SettingView_1 = __importDefault(require("../SettingView"));
20
+ var DelayMounted_1 = __importDefault(require("../../ui/DelayMounted"));
20
21
  var TekWalletViewRoutes;
21
22
  (function (TekWalletViewRoutes) {
22
23
  TekWalletViewRoutes["SEND_INTERNAL"] = "/send/internal";
@@ -40,7 +41,7 @@ function TekWalletView() {
40
41
  return (0, jsx_runtime_1.jsx)(SendExternalView_1.default, {});
41
42
  }
42
43
  if (path.startsWith(TekWalletViewRoutes.SWAP)) {
43
- return (0, jsx_runtime_1.jsx)(SwapView_1.default, {});
44
+ return ((0, jsx_runtime_1.jsx)(DelayMounted_1.default, { delay: 1, children: (0, jsx_runtime_1.jsx)(SwapView_1.default, {}) }));
44
45
  }
45
46
  if (path === TekWalletViewRoutes.ASSET) {
46
47
  return (0, jsx_runtime_1.jsx)(AssetView_1.default, {});
@@ -58,12 +58,12 @@ var useEventHandler = function () {
58
58
  default:
59
59
  notificationType = "info";
60
60
  }
61
- var notificationMessage = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: { textTransform: "capitalize" }, children: type === null || type === void 0 ? void 0 : type.name }), " ", (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: amount, unit: " ".concat(currency) }), " is ", status] }));
61
+ var notificationMessage = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: { textTransform: "capitalize" }, children: type === null || type === void 0 ? void 0 : type.name }), " ", (0, jsx_runtime_1.jsx)(Formatter_1.default, { disableTooltip: true, value: amount, unit: " ".concat(currency) }), " is ", status] }));
62
62
  switch (type.slug) {
63
63
  case type_1.TransactionSlug.SWAP:
64
64
  var toCurrency = (_b = messageEvent.to_currency_data) === null || _b === void 0 ? void 0 : _b.name;
65
65
  var toAmount = (_c = messageEvent.to_currency_data) === null || _c === void 0 ? void 0 : _c.swap_total_amount;
66
- notificationMessage = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: { textTransform: "capitalize" }, children: type === null || type === void 0 ? void 0 : type.name }), " ", (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: amount, unit: " ".concat(currency) }), " to", " ", (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: toAmount, unit: " ".concat(toCurrency) }), " is ", status] }));
66
+ notificationMessage = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: { textTransform: "capitalize" }, children: type === null || type === void 0 ? void 0 : type.name }), " ", (0, jsx_runtime_1.jsx)(Formatter_1.default, { disableTooltip: true, value: amount, unit: " ".concat(currency) }), " to", " ", (0, jsx_runtime_1.jsx)(Formatter_1.default, { disableTooltip: true, value: toAmount, unit: " ".concat(toCurrency) }), " is ", status] }));
67
67
  break;
68
68
  default:
69
69
  break;
@@ -23,6 +23,7 @@ var useRealtime_1 = __importDefault(require("../../hooks/useRealtime"));
23
23
  var TekWalletProvider_1 = require("../TekWalletProvider");
24
24
  var useCustomRouter_1 = __importDefault(require("../../hooks/useCustomRouter"));
25
25
  var type_1 = require("../../services/axios/get-activities-service/type");
26
+ var components_1 = require("../../components");
26
27
  function EventHandlerProvider(props) {
27
28
  var _a = (0, useEventHandler_1.useEventHandler)(), transactionHandler = _a.transactionHandler, walletInfoHandler = _a.walletInfoHandler;
28
29
  var _b = (0, useRealtime_1.default)(), pushNotification = _b.pushNotification, transaction = _b.transaction, walletHandlerInfo = _b.walletHandlerInfo;
@@ -41,11 +42,10 @@ function EventHandlerProvider(props) {
41
42
  return;
42
43
  }
43
44
  var onClickNotification = function () {
44
- if (transaction.status !== type_1.TransactionStatus.Success)
45
+ if (transaction.transaction_status !== type_1.TransactionStatus.Success)
45
46
  return;
46
- router.push("".concat(options === null || options === void 0 ? void 0 : options.basePath, "/tek-wallet/activities/").concat(transaction.id));
47
+ router.push("".concat((options === null || options === void 0 ? void 0 : options.basePath) || "", "/tek-wallet/").concat(components_1.TekWalletViewRoutes.ACTIVITY, "/").concat(transaction.id));
47
48
  };
48
- console.warn("🚀 ~ EventHandlerProvider ~ theMessage:", transaction, theMessage);
49
49
  pushNotification(__assign(__assign({}, theMessage), { onClick: onClickNotification }));
50
50
  }
51
51
  }, [transaction]);
@@ -129,7 +129,11 @@ function RealtimeProvider(_a) {
129
129
  horizontal: (_e = (_d = notification === null || notification === void 0 ? void 0 : notification.anchorOrigin) === null || _d === void 0 ? void 0 : _d.horizontal) !== null && _e !== void 0 ? _e : "right",
130
130
  }, onClose: function () {
131
131
  closeNotification(notification.id);
132
- }, slots: { transition: GrowTransition }, autoHideDuration: (_f = notification.duration) !== null && _f !== void 0 ? _f : 5000, children: (0, jsx_runtime_1.jsxs)(material_1.Alert, { onClick: notification.onClick, icon: false, severity: notification.type, sx: {
132
+ }, slots: { transition: GrowTransition }, autoHideDuration: (_f = notification.duration) !== null && _f !== void 0 ? _f : 5000, children: (0, jsx_runtime_1.jsxs)(material_1.Alert, { onClick: function () {
133
+ var _a;
134
+ (_a = notification.onClick) === null || _a === void 0 ? void 0 : _a.call(notification);
135
+ closeNotification(notification.id);
136
+ }, icon: false, severity: notification.type, sx: {
133
137
  width: "100%",
134
138
  maxWidth: "calc(100vw - 2rem)",
135
139
  borderRadius: theme.mixins.customRadius.r12,
@@ -49,4 +49,5 @@ export interface Output {
49
49
  network_data: NetworkData[];
50
50
  balance: string;
51
51
  swap_amount: number;
52
+ swap_total_amount: number;
52
53
  }
@@ -23,6 +23,7 @@ export interface NetworkData {
23
23
  address: string;
24
24
  min_value: number;
25
25
  max_value: number;
26
+ memo_regex: string;
26
27
  }
27
28
  export interface Currency {
28
29
  id: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tek-wallet",
3
- "version": "0.0.764",
3
+ "version": "0.0.765",
4
4
  "description": "A custom React provider with TypeScript support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",