tek-wallet 0.0.822 → 0.0.823

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 (38) hide show
  1. package/dist/components/TekWallet/components/ui/AssetsBoard/index.js +1 -0
  2. package/dist/components/TekWallet/components/ui/Input/ClearInput.d.ts +5 -0
  3. package/dist/components/TekWallet/components/ui/{WithdrawFunction/components/tutorial.js → Input/ClearInput.js} +5 -9
  4. package/dist/components/TekWallet/components/ui/Input/PasteInput.d.ts +5 -0
  5. package/dist/components/TekWallet/components/ui/{WithdrawFunction/components/transferHistory.js → Input/PasteInput.js} +5 -9
  6. package/dist/components/TekWallet/components/ui/Input/QrScan.d.ts +5 -0
  7. package/dist/components/TekWallet/components/ui/Input/QrScan.js +31 -0
  8. package/dist/components/TekWallet/components/ui/Input/index.d.ts +12 -10
  9. package/dist/components/TekWallet/components/ui/Input/index.js +120 -19
  10. package/dist/components/TekWallet/components/ui/Input/index_bk.d.ts +10 -0
  11. package/dist/components/TekWallet/components/ui/Input/index_bk.js +46 -0
  12. package/dist/components/TekWallet/components/ui/QrCodeReader/index.d.ts +2 -1
  13. package/dist/components/TekWallet/components/ui/QrCodeReader/index.js +10 -3
  14. package/dist/components/TekWallet/components/views/SendExternalView/components/Form.js +54 -77
  15. package/dist/components/TekWallet/components/views/SendInternalView/components/Form.js +24 -68
  16. package/dist/components/TekWallet/components/views/SendNftView/components/Form.js +19 -65
  17. package/dist/components/TekWallet/index.d.ts +1 -0
  18. package/dist/components/TekWallet/index.js +1 -0
  19. package/dist/components/TekWallet/providers/TanstackReactQuery/index.js +4 -1
  20. package/package.json +1 -1
  21. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/selectToken.d.ts +0 -13
  22. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/selectToken.js +0 -48
  23. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/sendForm.d.ts +0 -29
  24. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/sendForm.js +0 -235
  25. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/sortByBalance.d.ts +0 -7
  26. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/sortByBalance.js +0 -45
  27. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/sortByToken.d.ts +0 -7
  28. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/sortByToken.js +0 -45
  29. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/summary/infoSummary.d.ts +0 -14
  30. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/summary/infoSummary.js +0 -111
  31. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/transferHistory.d.ts +0 -5
  32. package/dist/components/TekWallet/components/ui/WithdrawFunction/components/tutorial.d.ts +0 -5
  33. package/dist/components/TekWallet/components/ui/WithdrawFunction/index.d.ts +0 -38
  34. package/dist/components/TekWallet/components/ui/WithdrawFunction/index.js +0 -570
  35. package/dist/components/TekWallet/components/views/SendInternalView/components/AmountForm.d.ts +0 -11
  36. package/dist/components/TekWallet/components/views/SendInternalView/components/AmountForm.js +0 -382
  37. package/dist/components/TekWallet/utils/sort.utils.d.ts +0 -3
  38. package/dist/components/TekWallet/utils/sort.utils.js +0 -24
@@ -26,6 +26,7 @@ var AssetsBoard = function () {
26
26
  return ((0, jsx_runtime_1.jsx)(material_1.Box, { children: (0, jsx_runtime_1.jsx)(SwiperControlled_1.default, { swiperProps: {
27
27
  slidesPerView: 1,
28
28
  spaceBetween: 40,
29
+ autoHeight: true,
29
30
  }, tabParamName: "assets-tab", tabs: ASSETS_TABS === null || ASSETS_TABS === void 0 ? void 0 : ASSETS_TABS.map(function (type, index) {
30
31
  return ((0, jsx_runtime_1.jsx)(material_1.Tab, { label: type.name, value: index, "data-index": index, sx: {
31
32
  padding: "".concat(theme.styleMixins.customPadding.p8, " ").concat(theme.styleMixins.customPadding.p16),
@@ -0,0 +1,5 @@
1
+ import { SvgIconProps } from "@mui/material";
2
+ export interface ClearInputProps extends SvgIconProps {
3
+ }
4
+ declare function ClearInput(props: ClearInputProps): import("react/jsx-runtime").JSX.Element;
5
+ export default ClearInput;
@@ -24,12 +24,8 @@ var __rest = (this && this.__rest) || function (s, e) {
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  var jsx_runtime_1 = require("react/jsx-runtime");
26
26
  var material_1 = require("@mui/material");
27
- var SvgPath_1 = require("../../SvgPath");
28
- var Tutorial = function (props) {
29
- var rest = __rest(props, []);
30
- return ((0, jsx_runtime_1.jsx)(material_1.SvgIcon, __assign({ inheritViewBox: true, sx: {
31
- width: 20,
32
- height: 20,
33
- } }, rest, { children: SvgPath_1.IC_TUTORIAL })));
34
- };
35
- exports.default = Tutorial;
27
+ function ClearInput(props) {
28
+ var sx = props.sx, rest = __rest(props, ["sx"]);
29
+ return ((0, jsx_runtime_1.jsx)(material_1.SvgIcon, __assign({ sx: __assign({ width: 24, height: 24 }, sx) }, rest, { children: (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", height: "48px", viewBox: "0 -960 960 960", width: "48px", fill: "currentColor", children: (0, jsx_runtime_1.jsx)("path", { d: "M333.08-311.08 480-458l146.92 146.92 22-22L502-480l146.92-146.92-22-22L480-502 333.08-648.92l-22 22L458-480 311.08-333.08l22 22ZM480.13-120q-74.44 0-139.79-28.34t-114.48-77.42q-49.13-49.08-77.49-114.37Q120-405.42 120-479.87q0-74.67 28.34-140.41 28.34-65.73 77.42-114.36 49.08-48.63 114.37-76.99Q405.42-840 479.87-840q74.67 0 140.41 28.34 65.73 28.34 114.36 76.92 48.63 48.58 76.99 114.26Q840-554.81 840-480.13q0 74.44-28.34 139.79t-76.92 114.48q-48.58 49.13-114.26 77.49Q554.81-120 480.13-120Z" }) }) })));
30
+ }
31
+ exports.default = ClearInput;
@@ -0,0 +1,5 @@
1
+ import { SvgIconProps } from "@mui/material";
2
+ export interface PasteInputProps extends SvgIconProps {
3
+ }
4
+ declare function PasteInput(props: PasteInputProps): import("react/jsx-runtime").JSX.Element;
5
+ export default PasteInput;
@@ -24,12 +24,8 @@ var __rest = (this && this.__rest) || function (s, e) {
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  var jsx_runtime_1 = require("react/jsx-runtime");
26
26
  var material_1 = require("@mui/material");
27
- var SvgPath_1 = require("../../SvgPath");
28
- var TransferHistory = function (props) {
29
- var rest = __rest(props, []);
30
- return ((0, jsx_runtime_1.jsx)(material_1.SvgIcon, __assign({ inheritViewBox: true, sx: {
31
- width: 20,
32
- height: 20,
33
- } }, rest, { children: SvgPath_1.IC_HISTORY })));
34
- };
35
- exports.default = TransferHistory;
27
+ function PasteInput(props) {
28
+ var sx = props.sx, rest = __rest(props, ["sx"]);
29
+ return ((0, jsx_runtime_1.jsx)(material_1.SvgIcon, __assign({ sx: __assign({ width: 24, height: 24 }, sx) }, rest, { children: (0, jsx_runtime_1.jsx)("svg", { width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: (0, jsx_runtime_1.jsx)("path", { d: "M14.625 10.6875V8.71875C14.625 8.04742 14.3583 7.40359 13.8836 6.92889C13.4089 6.45418 12.7651 6.1875 12.0938 6.1875H10.9688C10.745 6.1875 10.5304 6.09861 10.3721 5.94037C10.2139 5.78214 10.125 5.56753 10.125 5.34375V4.21875C10.125 3.54742 9.85832 2.90359 9.38361 2.42889C8.90891 1.95418 8.26508 1.6875 7.59375 1.6875H6.1875M6.1875 11.25H11.8125M6.1875 13.5H9M7.875 1.6875H4.21875C3.753 1.6875 3.375 2.0655 3.375 2.53125V15.4688C3.375 15.9345 3.753 16.3125 4.21875 16.3125H13.7812C14.247 16.3125 14.625 15.9345 14.625 15.4688V8.4375C14.625 6.64729 13.9138 4.9304 12.648 3.66453C11.3821 2.39866 9.66521 1.6875 7.875 1.6875Z", stroke: "currentColor", strokeWidth: "1.25", strokeLinecap: "round", strokeLinejoin: "round" }) }) })));
30
+ }
31
+ exports.default = PasteInput;
@@ -0,0 +1,5 @@
1
+ import { SvgIconProps } from "@mui/material";
2
+ export interface QrScanProps extends SvgIconProps {
3
+ }
4
+ declare function QrScan(props: QrScanProps): import("react/jsx-runtime").JSX.Element;
5
+ export default QrScan;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ var jsx_runtime_1 = require("react/jsx-runtime");
26
+ var material_1 = require("@mui/material");
27
+ function QrScan(props) {
28
+ var sx = props.sx, rest = __rest(props, ["sx"]);
29
+ return ((0, jsx_runtime_1.jsx)(material_1.SvgIcon, __assign({ sx: __assign({ width: 24, height: 24 }, sx) }, rest, { children: (0, jsx_runtime_1.jsx)("svg", { width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: (0, jsx_runtime_1.jsx)("path", { d: "M5.625 2.8125H4.5C4.05245 2.8125 3.62323 2.99029 3.30676 3.30676C2.99029 3.62323 2.8125 4.05245 2.8125 4.5V5.625M12.375 2.8125H13.5C13.9476 2.8125 14.3768 2.99029 14.6932 3.30676C15.0097 3.62323 15.1875 4.05245 15.1875 4.5V5.625M15.1875 12.375V13.5C15.1875 13.9476 15.0097 14.3768 14.6932 14.6932C14.3768 15.0097 13.9476 15.1875 13.5 15.1875H12.375M5.625 15.1875H4.5C4.05245 15.1875 3.62323 15.0097 3.30676 14.6932C2.99029 14.3768 2.8125 13.9476 2.8125 13.5V12.375M11.25 9C11.25 9.59674 11.0129 10.169 10.591 10.591C10.169 11.0129 9.59674 11.25 9 11.25C8.40326 11.25 7.83097 11.0129 7.40901 10.591C6.98705 10.169 6.75 9.59674 6.75 9C6.75 8.40326 6.98705 7.83097 7.40901 7.40901C7.83097 6.98705 8.40326 6.75 9 6.75C9.59674 6.75 10.169 6.98705 10.591 7.40901C11.0129 7.83097 11.25 8.40326 11.25 9Z", stroke: "currentColor", strokeWidth: "1.25", strokeLinecap: "round", strokeLinejoin: "round" }) }) })));
30
+ }
31
+ exports.default = QrScan;
@@ -1,10 +1,12 @@
1
- import { TextFieldProps, BoxProps, SxProps } from "@mui/material";
2
- interface InputProps extends BoxProps {
3
- inputRest?: TextFieldProps;
4
- leftPart?: React.ReactNode;
5
- rightPart?: React.ReactNode;
6
- inputSx?: SxProps;
7
- }
8
- export type InputRef = HTMLInputElement;
9
- declare const Input: import("react").ForwardRefExoticComponent<Omit<InputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
10
- export default Input;
1
+ import { TextFieldProps as MuiTextFieldProps } from "@mui/material";
2
+ export type TextFieldProps = MuiTextFieldProps & {
3
+ className?: string;
4
+ canClear?: boolean;
5
+ canPaste?: boolean;
6
+ canCopy?: boolean;
7
+ canScan?: boolean;
8
+ onPaste?: () => void;
9
+ sanitizeScanText?: (text: string) => string;
10
+ };
11
+ declare function TextField(props: TextFieldProps): import("react/jsx-runtime").JSX.Element;
12
+ export default TextField;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
  var __assign = (this && this.__assign) || function () {
3
4
  __assign = Object.assign || function(t) {
4
5
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -10,6 +11,42 @@ var __assign = (this && this.__assign) || function () {
10
11
  };
11
12
  return __assign.apply(this, arguments);
12
13
  };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ var __generator = (this && this.__generator) || function (thisArg, body) {
24
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
25
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
26
+ function verb(n) { return function (v) { return step([n, v]); }; }
27
+ function step(op) {
28
+ if (f) throw new TypeError("Generator is already executing.");
29
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
30
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
31
+ if (y = 0, t) op = [op[0] & 2, t.value];
32
+ switch (op[0]) {
33
+ case 0: case 1: t = op; break;
34
+ case 4: _.label++; return { value: op[1], done: false };
35
+ case 5: _.label++; y = op[1]; op = [0]; continue;
36
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
37
+ default:
38
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
39
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
40
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
41
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
42
+ if (t[2]) _.ops.pop();
43
+ _.trys.pop(); continue;
44
+ }
45
+ op = body.call(thisArg, _);
46
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
47
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
48
+ }
49
+ };
13
50
  var __rest = (this && this.__rest) || function (s, e) {
14
51
  var t = {};
15
52
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -21,26 +58,90 @@ var __rest = (this && this.__rest) || function (s, e) {
21
58
  }
22
59
  return t;
23
60
  };
61
+ var __importDefault = (this && this.__importDefault) || function (mod) {
62
+ return (mod && mod.__esModule) ? mod : { "default": mod };
63
+ };
24
64
  Object.defineProperty(exports, "__esModule", { value: true });
25
65
  var jsx_runtime_1 = require("react/jsx-runtime");
26
66
  var material_1 = require("@mui/material");
67
+ var ClearInput_1 = __importDefault(require("./ClearInput"));
27
68
  var react_1 = require("react");
28
- var mui_1 = require("../../../theme/mui");
29
- var Input = (0, react_1.forwardRef)(function (props, inputRef) {
30
- var inputRest = props.inputRest, leftPart = props.leftPart, rightPart = props.rightPart, sx = props.sx, inputSx = props.inputSx, rest = __rest(props, ["inputRest", "leftPart", "rightPart", "sx", "inputSx"]);
31
- var theme = (0, mui_1.useTheme)();
32
- return ((0, jsx_runtime_1.jsxs)(material_1.Box, __assign({ ref: inputRef, sx: __assign(__assign(__assign({}, theme.styleMixins.row), { gap: theme.styleMixins.gaps.g12, borderRadius: 1, paddingX: theme.styleMixins.customPadding.p16, border: "1px solid ".concat(theme.palette.divider), backgroundColor: theme.palette.background.default, color: theme.palette.text.primary, backdropFilter: "blur(10px)" }), sx) }, rest, { children: [leftPart, (0, jsx_runtime_1.jsx)(material_1.TextField, __assign({ autoComplete: "off", hiddenLabel: true, sx: __assign({ backgroundColor: "transparent", border: "none", outline: "none", flex: 1, height: "fit-content", "& .MuiInputBase-input": {
33
- border: "none",
34
- outline: "none",
35
- color: theme.palette.text.primary,
36
- fontSize: theme.typography.fontSize13,
37
- lineHeight: theme.typography.leading140,
38
- fontWeight: theme.typography.fontWeight400,
39
- padding: "".concat(theme.styleMixins.customPadding.p12, " ").concat(0, "px"),
40
- // height: "fit-content",
41
- }, "& fieldset": { border: "none" }, "& .MuiInputBase-input::placeholder": {
42
- fontSize: theme.typography.fontSize13,
43
- } }, inputSx) }, inputRest)), rightPart] })));
44
- });
45
- Input.displayName = "Input";
46
- exports.default = Input;
69
+ var PasteInput_1 = __importDefault(require("./PasteInput"));
70
+ var QrScan_1 = __importDefault(require("./QrScan"));
71
+ // import ScanQR from "@/components/Molecules/ScanQR";
72
+ var lodash_1 = __importDefault(require("lodash"));
73
+ var cn_1 = require("../../../utils/cn");
74
+ var QrCodeReader_1 = __importDefault(require("../QrCodeReader"));
75
+ function TextField(props) {
76
+ var _this = this;
77
+ var className = props.className, value = props.value, canClear = props.canClear, canPaste = props.canPaste, canScan = props.canScan, onChange = props.onChange, slotProps = props.slotProps, sx = props.sx, sanitizeScanText = props.sanitizeScanText, rest = __rest(props, ["className", "value", "canClear", "canPaste", "canScan", "onChange", "slotProps", "sx", "sanitizeScanText"]);
78
+ var textFieldRef = (0, react_1.useRef)(null);
79
+ var input = (slotProps || {}).input;
80
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
+ var readOnly = (input || {}).readOnly;
82
+ var theme = (0, material_1.useTheme)();
83
+ var emitChange = (0, react_1.useCallback)(function (result) {
84
+ var _a, _b;
85
+ var input = (_a = textFieldRef.current) === null || _a === void 0 ? void 0 : _a.querySelector("input");
86
+ if (input) {
87
+ var nativeInputValueSetter = (_b = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value")) === null || _b === void 0 ? void 0 : _b.set;
88
+ nativeInputValueSetter === null || nativeInputValueSetter === void 0 ? void 0 : nativeInputValueSetter.call(input, result);
89
+ var event_1 = new Event("input", { bubbles: true });
90
+ input.dispatchEvent(event_1);
91
+ }
92
+ }, []);
93
+ var handlePaste = (0, react_1.useCallback)(function () { return __awaiter(_this, void 0, void 0, function () {
94
+ var input, clipboardData, nativeInputValueSetter, event_2;
95
+ var _a, _b;
96
+ return __generator(this, function (_c) {
97
+ switch (_c.label) {
98
+ case 0:
99
+ input = (_a = textFieldRef.current) === null || _a === void 0 ? void 0 : _a.querySelector("input");
100
+ if (!input) return [3 /*break*/, 2];
101
+ return [4 /*yield*/, navigator.clipboard.readText()];
102
+ case 1:
103
+ clipboardData = _c.sent();
104
+ nativeInputValueSetter = (_b = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value")) === null || _b === void 0 ? void 0 : _b.set;
105
+ nativeInputValueSetter === null || nativeInputValueSetter === void 0 ? void 0 : nativeInputValueSetter.call(input, clipboardData);
106
+ event_2 = new Event("input", { bubbles: true });
107
+ input.dispatchEvent(event_2);
108
+ _c.label = 2;
109
+ case 2: return [2 /*return*/];
110
+ }
111
+ });
112
+ }); }, []);
113
+ var handleScanResult = (0, react_1.useCallback)(function (result) {
114
+ if (sanitizeScanText) {
115
+ result = sanitizeScanText(result);
116
+ }
117
+ emitChange(result);
118
+ }, [sanitizeScanText, emitChange]);
119
+ var slotPropsMerge = (0, react_1.useMemo)(function () {
120
+ return lodash_1.default.merge({
121
+ input: {
122
+ endAdornment: ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: "flex", alignItems: "center", gap: 0, color: "primary.main" }, children: [canClear && !!value && !readOnly && ((0, jsx_runtime_1.jsx)(ClearInput_1.default, { onClick: function () { return emitChange(""); }, sx: { width: 24, height: 24 } })), canScan && !value && !readOnly && ((0, jsx_runtime_1.jsx)(QrCodeReader_1.default, { onScan: handleScanResult, children: (0, jsx_runtime_1.jsx)(QrScan_1.default, { sx: { width: 24, height: 24 } }) })), canPaste && !value && !readOnly && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [canScan && ((0, jsx_runtime_1.jsx)(material_1.Divider, { orientation: "vertical", flexItem: true, sx: { mx: 1.5, my: 0.5 } })), (0, jsx_runtime_1.jsx)(PasteInput_1.default, { onClick: handlePaste, sx: { width: 24, height: 24 } })] }))] })),
123
+ sx: {
124
+ caretColor: theme.palette.primary.main,
125
+ "&::selection": {
126
+ backgroundColor: (0, material_1.alpha)(theme.palette.primary.main, 0.3),
127
+ },
128
+ },
129
+ },
130
+ }, slotProps);
131
+ }, [
132
+ canClear,
133
+ value,
134
+ readOnly,
135
+ canScan,
136
+ emitChange,
137
+ canPaste,
138
+ handlePaste,
139
+ theme.palette.primary.main,
140
+ slotProps,
141
+ handleScanResult,
142
+ ]);
143
+ return ((0, jsx_runtime_1.jsx)(material_1.TextField, __assign({ ref: textFieldRef, className: (0, cn_1.cn)(className), value: value || "", onChange: onChange }, rest, { slotProps: slotPropsMerge, sx: __assign({ "& .MuiInputBase-input": {
144
+ pr: 2,
145
+ }, height: "fit-content" }, sx) })));
146
+ }
147
+ exports.default = TextField;
@@ -0,0 +1,10 @@
1
+ import { TextFieldProps, BoxProps, SxProps } from "@mui/material";
2
+ interface InputProps extends BoxProps {
3
+ inputRest?: TextFieldProps;
4
+ leftPart?: React.ReactNode;
5
+ rightPart?: React.ReactNode;
6
+ inputSx?: SxProps;
7
+ }
8
+ export type InputRef = HTMLInputElement;
9
+ declare const Input: import("react").ForwardRefExoticComponent<Omit<InputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
10
+ export default Input;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ var jsx_runtime_1 = require("react/jsx-runtime");
26
+ var material_1 = require("@mui/material");
27
+ var react_1 = require("react");
28
+ var mui_1 = require("../../../theme/mui");
29
+ var Input = (0, react_1.forwardRef)(function (props, inputRef) {
30
+ var inputRest = props.inputRest, leftPart = props.leftPart, rightPart = props.rightPart, sx = props.sx, inputSx = props.inputSx, rest = __rest(props, ["inputRest", "leftPart", "rightPart", "sx", "inputSx"]);
31
+ var theme = (0, mui_1.useTheme)();
32
+ return ((0, jsx_runtime_1.jsxs)(material_1.Box, __assign({ ref: inputRef, sx: __assign(__assign(__assign({}, theme.styleMixins.row), { gap: theme.styleMixins.gaps.g12, borderRadius: 1, paddingX: theme.styleMixins.customPadding.p16, border: "1px solid ".concat(theme.palette.divider), backgroundColor: theme.palette.background.default, color: theme.palette.text.primary, backdropFilter: "blur(10px)" }), sx) }, rest, { children: [leftPart, (0, jsx_runtime_1.jsx)(material_1.TextField, __assign({ autoComplete: "off", hiddenLabel: true, sx: __assign({ backgroundColor: "transparent", border: "none", outline: "none", flex: 1, height: "fit-content", "& .MuiInputBase-input": {
33
+ border: "none",
34
+ outline: "none",
35
+ color: theme.palette.text.primary,
36
+ fontSize: theme.typography.fontSize13,
37
+ lineHeight: theme.typography.leading140,
38
+ fontWeight: theme.typography.fontWeight400,
39
+ padding: "".concat(theme.styleMixins.customPadding.p12, " ").concat(0, "px"),
40
+ // height: "fit-content",
41
+ }, "& fieldset": { border: "none" }, "& .MuiInputBase-input::placeholder": {
42
+ fontSize: theme.typography.fontSize13,
43
+ } }, inputSx) }, inputRest)), rightPart] })));
44
+ });
45
+ Input.displayName = "Input";
46
+ exports.default = Input;
@@ -1,7 +1,8 @@
1
1
  import { BoxProps } from "@mui/material";
2
2
  import { IDetectedBarcode } from "@yudiel/react-qr-scanner";
3
3
  interface QrCodeReaderProps extends BoxProps {
4
- onResult: (result: IDetectedBarcode[]) => void;
4
+ onResult?: (result: IDetectedBarcode[]) => void;
5
+ onScan?: (result: string) => void;
5
6
  }
6
7
  export interface QrCodeReaderRef {
7
8
  open: () => void;
@@ -55,7 +55,7 @@ var STYLES = {
55
55
  nodeSize: "10%",
56
56
  };
57
57
  var QrCodeReader = (0, react_1.forwardRef)(function (props, ref) {
58
- var sx = props.sx, className = props.className, children = props.children, onResult = props.onResult;
58
+ var sx = props.sx, className = props.className, children = props.children, onResult = props.onResult, onScan = props.onScan;
59
59
  var qrReaderContainer = (0, react_1.useRef)(null);
60
60
  var drawerRef = (0, react_1.useRef)(null);
61
61
  var _a = (0, react_1.useState)(false), isOpen = _a[0], setIsOpen = _a[1];
@@ -124,6 +124,13 @@ var QrCodeReader = (0, react_1.forwardRef)(function (props, ref) {
124
124
  styleTag.remove();
125
125
  };
126
126
  }, []);
127
+ var handleScan = (0, react_1.useCallback)(function (result) {
128
+ var _a;
129
+ onResult === null || onResult === void 0 ? void 0 : onResult(result);
130
+ var text = (_a = result === null || result === void 0 ? void 0 : result[0]) === null || _a === void 0 ? void 0 : _a.rawValue;
131
+ onScan === null || onScan === void 0 ? void 0 : onScan(text);
132
+ close();
133
+ }, [onResult, onScan]);
127
134
  var _d = (0, providers_1.useWalletSetup)(), topOffset = _d.topOffset, overrideQRScanMethod = _d.overrideQRScanMethod;
128
135
  if (!!overrideQRScanMethod) {
129
136
  var handleOverrideQRScanMethod = function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -149,7 +156,7 @@ var QrCodeReader = (0, react_1.forwardRef)(function (props, ref) {
149
156
  },
150
157
  cornerPoints: [],
151
158
  };
152
- onResult([fakeIDetectedBarcode]);
159
+ handleScan([fakeIDetectedBarcode]);
153
160
  return [3 /*break*/, 3];
154
161
  case 2:
155
162
  error_1 = _a.sent();
@@ -254,7 +261,7 @@ var QrCodeReader = (0, react_1.forwardRef)(function (props, ref) {
254
261
  height: "100%",
255
262
  objectFit: "cover",
256
263
  },
257
- }, onScan: onResult })] })] })) }) }) }));
264
+ }, onScan: handleScan })] })] })) }) }) }));
258
265
  });
259
266
  QrCodeReader.displayName = "QrCodeReader";
260
267
  exports.default = QrCodeReader;
@@ -98,7 +98,6 @@ var lodash_1 = require("lodash");
98
98
  var Button_1 = __importStar(require("../../../ui/Button"));
99
99
  var expose_1 = require("../../../../services/axios/expose");
100
100
  var __1 = require("..");
101
- var QrCodeReader_1 = __importDefault(require("../../../ui/QrCodeReader"));
102
101
  var Icon_1 = __importDefault(require("../../../ui/Icon"));
103
102
  var get_est_fee_service_1 = __importDefault(require("../../../../services/axios/get-est-fee-service"));
104
103
  var type_1 = require("../../../../services/axios/get-activities-service/type");
@@ -131,7 +130,6 @@ function Form(props) {
131
130
  var _f = (0, react_1.useState)(undefined), comment = _f[0], setComment = _f[1];
132
131
  var _g = (0, react_1.useState)(), memoError = _g[0], setMemoError = _g[1];
133
132
  var _h = (0, react_1.useState)(false), isValidatingAddress = _h[0], setIsValidatingAddress = _h[1];
134
- var scannerAddressQrCodeRef = (0, react_1.useRef)(null);
135
133
  var _j = (0, react_1.useState)(false), isEstimatingFee = _j[0], setIsLoadingEstimateFee = _j[1];
136
134
  var _k = (0, react_1.useState)(), estimateFee = _k[0], setEstimateFee = _k[1];
137
135
  var _l = (0, react_1.useState)(false), isEnoughBalanceToPayFee = _l[0], setIsEnoughBalanceToPayFee = _l[1];
@@ -273,52 +271,33 @@ function Form(props) {
273
271
  setSelectedNetwork(undefined);
274
272
  setNetworks([]);
275
273
  };
276
- var handlePaste = function () { return __awaiter(_this, void 0, void 0, function () {
277
- var text, address;
278
- return __generator(this, function (_a) {
279
- switch (_a.label) {
280
- case 0: return [4 /*yield*/, navigator.clipboard.readText()];
281
- case 1:
282
- text = _a.sent();
283
- address = text.trim();
284
- if (!address) {
285
- return [2 /*return*/];
286
- }
287
- handleChangeRecipientAddress({
288
- target: { value: address },
289
- });
290
- return [2 /*return*/];
291
- }
292
- });
293
- }); };
294
- var handleClearRecipientAddress = function () {
295
- handleChangeRecipientAddress({
296
- target: { value: "" },
297
- });
274
+ // const handlePaste = async () => {
275
+ // const text = await navigator.clipboard.readText();
276
+ // const address = text.trim();
277
+ // if (!address) {
278
+ // return;
279
+ // }
280
+ // handleChangeRecipientAddress({
281
+ // target: { value: address },
282
+ // } as React.ChangeEvent<HTMLInputElement>);
283
+ // };
284
+ // const handleClearRecipientAddress = () => {
285
+ // handleChangeRecipientAddress({
286
+ // target: { value: "" },
287
+ // } as React.ChangeEvent<HTMLInputElement>);
288
+ // };
289
+ var sanitizeScanText = function (text) {
290
+ var address = "";
291
+ var isReceiveInternal = text === null || text === void 0 ? void 0 : text.includes("isTekWalletReceiveInternal");
292
+ if (isReceiveInternal) {
293
+ var data = JSON.parse(text);
294
+ address = data === null || data === void 0 ? void 0 : data.address;
295
+ }
296
+ else {
297
+ address = text;
298
+ }
299
+ return address;
298
300
  };
299
- var handleScanAddressQrCode = function (result) { return __awaiter(_this, void 0, void 0, function () {
300
- var text, address, isReceiveInternal, data;
301
- var _a;
302
- return __generator(this, function (_b) {
303
- closeScannerAddressQrCode();
304
- text = (_a = result === null || result === void 0 ? void 0 : result[0]) === null || _a === void 0 ? void 0 : _a.rawValue;
305
- address = "";
306
- isReceiveInternal = text === null || text === void 0 ? void 0 : text.includes("isTekWalletReceiveInternal");
307
- if (isReceiveInternal) {
308
- data = JSON.parse(text);
309
- address = data === null || data === void 0 ? void 0 : data.address;
310
- }
311
- else {
312
- address = text;
313
- }
314
- if (!address)
315
- return [2 /*return*/];
316
- handleChangeRecipientAddress({
317
- target: { value: address },
318
- });
319
- return [2 /*return*/];
320
- });
321
- }); };
322
301
  var handleChangeAmount = function (e) {
323
302
  var amount = e.target.value;
324
303
  setAmount(amount);
@@ -363,14 +342,9 @@ function Form(props) {
363
342
  extraTransactions: null,
364
343
  }, estimateFee);
365
344
  };
366
- var openScannerAddressQrCode = function () {
367
- var _a;
368
- (_a = scannerAddressQrCodeRef.current) === null || _a === void 0 ? void 0 : _a.open();
369
- };
370
- var closeScannerAddressQrCode = function () {
371
- var _a;
372
- (_a = scannerAddressQrCodeRef.current) === null || _a === void 0 ? void 0 : _a.close();
373
- };
345
+ // const openScannerAddressQrCode = () => {
346
+ // scannerAddressQrCodeRef.current?.open();
347
+ // };
374
348
  var handleKeyboardOpen = function () {
375
349
  setIsKeyboardOpen(true);
376
350
  };
@@ -417,28 +391,29 @@ function Form(props) {
417
391
  fontSize: theme.typography.fontSize14,
418
392
  color: theme.palette.text.primary,
419
393
  fontWeight: theme.typography.fontWeight700,
420
- }, children: "Wallet address" }), (0, jsx_runtime_1.jsx)(Input_1.default, { sx: {
421
- paddingX: theme.styleMixins.customPadding.p16,
422
- }, inputRest: {
423
- placeholder: "Enter recipient address",
424
- value: recipientAddress,
425
- onChange: handleChangeRecipientAddress,
426
- id: "recipient-address-input-id",
427
- }, rightPart: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.styleMixins.row), { gap: theme.styleMixins.gaps.g8 }), children: !!recipientAddress ? ((0, jsx_runtime_1.jsx)("label", { htmlFor: "recipient-address-input-id", children: (0, jsx_runtime_1.jsx)(material_1.Box, { onClick: handleClearRecipientAddress, sx: __assign(__assign({}, theme.styleMixins.row), { gap: theme.styleMixins.gaps.g8, cursor: "pointer" }), children: (0, jsx_runtime_1.jsx)(material_1.SvgIcon, { sx: { width: 12, height: 12 }, children: SvgPath_1.IC_CLOSE }) }) })) : ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.styleMixins.row), { gap: theme.styleMixins.gaps.g8, color: "primary.main" }), children: [(0, jsx_runtime_1.jsx)(material_1.Box, { onClick: openScannerAddressQrCode, children: (0, jsx_runtime_1.jsx)(Icon_1.default, { iconKey: "IC_SCAN", sx: { width: 20, height: 20 } }) }), (0, jsx_runtime_1.jsx)(material_1.Divider, { orientation: "vertical", variant: "fullWidth", flexItem: true }), (0, jsx_runtime_1.jsx)(material_1.Box, { onClick: handlePaste, children: (0, jsx_runtime_1.jsx)(Icon_1.default, { iconKey: "IC_DOCUMENTS", sx: { width: 20, height: 20 } }) })] })) }) }), !!recipientAddressError && ((0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.styleMixins.validationError), children: recipientAddressError }))] }), allowSelectNetwork && ((0, jsx_runtime_1.jsxs)(react_2.motion.div, { initial: { opacity: 0, height: 0 }, animate: { opacity: 1, height: "auto" }, transition: { duration: 0.3 }, style: __assign(__assign({}, theme.styleMixins.column), { gap: theme.styleMixins.gaps.g8, willChange: "height, opacity" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
394
+ }, children: "Wallet address" }), (0, jsx_runtime_1.jsx)(Input_1.default, { canClear: true, canPaste: true, canScan: true, value: recipientAddress, sanitizeScanText: sanitizeScanText, slotProps: {
395
+ input: {
396
+ placeholder: "Enter recipient address",
397
+ onChange: handleChangeRecipientAddress,
398
+ id: "recipient-address-input-id",
399
+ },
400
+ } }), !!recipientAddressError && ((0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.styleMixins.validationError), children: recipientAddressError }))] }), allowSelectNetwork && ((0, jsx_runtime_1.jsxs)(react_2.motion.div, { initial: { opacity: 0, height: 0 }, animate: { opacity: 1, height: "auto" }, transition: { duration: 0.3 }, style: __assign(__assign({}, theme.styleMixins.column), { gap: theme.styleMixins.gaps.g8, willChange: "height, opacity" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
428
401
  fontSize: theme.typography.fontSize14,
429
402
  color: theme.palette.text.primary,
430
403
  fontWeight: theme.typography.fontWeight700,
431
404
  }, children: "Network" }), (0, jsx_runtime_1.jsx)(DrawerComponent_1.default, { ref: selectNetworkDrawerRef, trigger: (0, jsx_runtime_1.jsx)(Input_1.default, { sx: {
432
- paddingLeft: theme.styleMixins.customPadding.p12,
433
- paddingRight: theme.styleMixins.customPadding.p16,
434
- }, inputRest: {
435
- placeholder: "Select a network",
436
- value: (selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.name) || "",
437
- onChange: handleChangeRecipientAddress,
438
- inputProps: {
439
- readOnly: true,
405
+ width: "100%",
406
+ }, value: (selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.name) || "", slotProps: {
407
+ input: {
408
+ placeholder: "Select a network",
409
+ onChange: handleChangeRecipientAddress,
410
+ inputProps: {
411
+ readOnly: true,
412
+ },
413
+ startAdornment: ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.styleMixins.row), { gap: theme.styleMixins.gaps.g8 }), children: (0, jsx_runtime_1.jsx)(Icon_1.default, { iconKey: "IC_NETWORK", src: (selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.link) || undefined, sx: { width: 24, height: 24, mr: 2 } }) })),
414
+ endAdornment: ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: { display: "block" }, children: (0, jsx_runtime_1.jsx)(material_1.SvgIcon, { sx: { width: 10, height: 18, display: "block" }, children: SvgPath_1.ARROW_DOWN }) })),
440
415
  },
441
- }, leftPart: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.styleMixins.row), { gap: theme.styleMixins.gaps.g8 }), children: (0, jsx_runtime_1.jsx)(Icon_1.default, { iconKey: "IC_NETWORK", src: (selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.link) || undefined, sx: { width: 24, height: 24 } }) }), rightPart: (0, jsx_runtime_1.jsx)(material_1.Box, { sx: { display: "block" }, children: (0, jsx_runtime_1.jsx)(material_1.SvgIcon, { sx: { width: 10, height: 18, display: "block" }, children: SvgPath_1.ARROW_DOWN }) }) }), children: (0, jsx_runtime_1.jsx)(ModalLayout_1.default, { title: "Select network", onClose: closeSelectNetwork, children: (0, jsx_runtime_1.jsx)(SelectNetwork_1.default, { networks: networks, selectedNetwork: selectedNetwork, selectedToken: selectedToken, onChangeNetwork: handleChangeNetwork }) }) })] })), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.styleMixins.column), { gap: theme.styleMixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.styleMixins.row), { gap: theme.styleMixins.gaps.g8, alignItems: "center", justifyContent: "space-between" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
416
+ } }), children: (0, jsx_runtime_1.jsx)(ModalLayout_1.default, { title: "Select network", onClose: closeSelectNetwork, children: (0, jsx_runtime_1.jsx)(SelectNetwork_1.default, { networks: networks, selectedNetwork: selectedNetwork, selectedToken: selectedToken, onChangeNetwork: handleChangeNetwork }) }) })] })), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.styleMixins.column), { gap: theme.styleMixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.styleMixins.row), { gap: theme.styleMixins.gaps.g8, alignItems: "center", justifyContent: "space-between" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
442
417
  fontSize: theme.typography.fontSize14,
443
418
  color: theme.palette.text.primary,
444
419
  fontWeight: theme.typography.fontWeight700,
@@ -462,11 +437,13 @@ function Form(props) {
462
437
  fontSize: theme.typography.fontSize14,
463
438
  color: theme.palette.text.primary,
464
439
  fontWeight: theme.typography.fontWeight700,
465
- }, children: "Memo" }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.styleMixins.column), { gap: theme.styleMixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsx)(Input_1.default, { inputRest: {
466
- placeholder: "Enter memo if needed",
467
- value: comment,
468
- onChange: handleChangeComment,
469
- } }), !!memoError && ((0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.styleMixins.validationError), children: memoError }))] }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.styleMixins.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 ||
440
+ }, children: "Memo" }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.styleMixins.column), { gap: theme.styleMixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsx)(Input_1.default, { slotProps: {
441
+ input: {
442
+ placeholder: "Enter memo if needed",
443
+ value: comment,
444
+ onChange: handleChangeComment,
445
+ },
446
+ }, canClear: true, canPaste: true }), !!memoError && ((0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.styleMixins.validationError), children: memoError }))] }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.styleMixins.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)(Button_1.default.Primary, { loading: isValidatingAddress || isEstimatingFee, onClick: handleContinue, status: !recipientAddress ||
470
447
  !selectedNetwork ||
471
448
  !amount ||
472
449
  !!recipientAddressError ||