tek-wallet 0.0.387 → 0.0.389

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.
@@ -1,6 +1,8 @@
1
1
  import { AccordionProps } from "@mui/material";
2
2
  export interface FeesProps extends Omit<AccordionProps, "children"> {
3
3
  feesData: string;
4
+ onEnoughBalanceToPayFee?: () => void;
5
+ onNotEnoughBalanceToPayFee?: () => void;
4
6
  }
5
7
  declare function Fees(props: FeesProps): import("react/jsx-runtime").JSX.Element;
6
8
  export default Fees;
@@ -33,16 +33,40 @@ var Text_1 = __importDefault(require("../Text"));
33
33
  var Formatter_1 = __importDefault(require("../Formatter"));
34
34
  var jsx_runtime_2 = require("react/jsx-runtime");
35
35
  var parsePropsData_1 = __importDefault(require("../../../utils/parsePropsData"));
36
- var FeeDetail = function (_a) {
37
- var feeName = _a.feeName, feeInCurrency = _a.feeInCurrency, feeInUSD = _a.feeInUSD, currencyName = _a.currencyName;
38
- var theme = (0, material_1.useTheme)();
39
- return ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g4 }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.fieldTitle), { whiteSpace: "nowrap" }), children: feeName }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { flex: 1, width: "fit-content", alignItems: "flex-end" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: feeInCurrency, unit: currencyName }) }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: feeInUSD, start: "~ $" }) })] })] }));
40
- };
36
+ var useWalletData_1 = __importDefault(require("../../../hooks/useWalletData"));
37
+ var react_1 = require("react");
38
+ var ReceiveFunction_1 = __importDefault(require("../ReceiveFunction"));
41
39
  function Fees(props) {
42
40
  var _a, _b;
43
41
  var sx = props.sx, rest = __rest(props, ["sx"]);
44
42
  var theme = (0, material_1.useTheme)();
45
43
  var feesData = (0, parsePropsData_1.default)(props === null || props === void 0 ? void 0 : props.feesData);
44
+ var tokens = (0, useWalletData_1.default)().tokens;
45
+ var isEnoughBalanceToPayFee = (0, react_1.useMemo)(function () {
46
+ // const tokensFee: FeeDetail[] = [];
47
+ // feesData?.feeDetail?.forEach((fee) => {
48
+ // const index = tokensFee?.findIndex(
49
+ // (token) => token.currencySlug === fee?.currencySlug
50
+ // );
51
+ // if (index === -1) {
52
+ // tokensFee.push(fee);
53
+ // } else {
54
+ // if (+tokensFee[index]?.feeFixed < fee?.feeInCurrency) {
55
+ // tokensFee[index] = { ...fee, isEnoughBalance: false };
56
+ // }
57
+ // }
58
+ // });
59
+ // for (let i = 0; i < length; i++) {
60
+ // const fee = feesData?.feeDetail[i] as FeeDetail;
61
+ // const token = tokens?.find(
62
+ // (token) => token.currency_slug === fee?.currencySlug
63
+ // );
64
+ // if (!token || +token?.current_value < (fee?.feeInCurrency ?? 0)) {
65
+ // tokensFee.push({ ...fee, isEnoughBalance: false });
66
+ // }
67
+ // }
68
+ return true;
69
+ }, [tokens]);
46
70
  return ((0, jsx_runtime_1.jsxs)(material_1.Accordion, __assign({ defaultExpanded: true }, rest, { sx: __assign({ "&.MuiAccordion-root": {
47
71
  backgroundColor: "transparent",
48
72
  margin: 0,
@@ -61,15 +85,22 @@ function Fees(props) {
61
85
  }, "& .MuiAccordionDetails-root": {
62
86
  paddingLeft: theme.mixins.customPadding.p12,
63
87
  paddingRight: theme.mixins.customPadding.p12,
64
- } }, sx), children: [(0, jsx_runtime_1.jsx)(material_1.AccordionSummary, { expandIcon: (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("arrow_down"), width: 20 }), children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { width: "100%" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.fieldTitle), children: "Total fees" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { ml: "auto" }), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: 1000 }) })] }) }), (0, jsx_runtime_1.jsx)(material_1.AccordionDetails, { children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { alignItems: "stretch" }), children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { width: "fit-content", gap: theme.mixins.gaps.g8, alignItems: "center" }), children: (_a = feesData === null || feesData === void 0 ? void 0 : feesData.feeDetail) === null || _a === void 0 ? void 0 : _a.map(function (item, index) {
65
- var _a;
66
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_2.Fragment, { children: [index !== 0 && ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
67
- borderRight: "1px dashed ".concat(theme.palette.border.white24),
68
- flex: 1,
69
- } })), (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("timeline_dot"), width: 16 })] }, (_a = item.feeType) === null || _a === void 0 ? void 0 : _a.name));
70
- }) }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { flex: 1, gap: theme.mixins.gaps.g8 }), children: (_b = feesData === null || feesData === void 0 ? void 0 : feesData.feeDetail) === null || _b === void 0 ? void 0 : _b.map(function (item) {
71
- var _a, _b;
72
- return ((0, jsx_runtime_1.jsx)(FeeDetail, { feeName: (_a = item.feeType) === null || _a === void 0 ? void 0 : _a.name, feeInCurrency: item.feeInCurrency, feeInUSD: item.feeInUSD, currencyName: "USDT" }, (_b = item.feeType) === null || _b === void 0 ? void 0 : _b.name));
73
- }) })] }) })] })));
88
+ } }, sx), children: [(0, jsx_runtime_1.jsx)(material_1.AccordionSummary, { expandIcon: (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("arrow_down"), width: 20 }), children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { width: "100%" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.fieldTitle), children: "Total fees" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { ml: "auto" }), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: 1000 }) })] }) }), (0, jsx_runtime_1.jsx)(material_1.AccordionDetails, { children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g8 }), children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { alignItems: "stretch" }), children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { width: "fit-content", gap: theme.mixins.gaps.g8, alignItems: "center" }), children: (_a = feesData === null || feesData === void 0 ? void 0 : feesData.feeDetail) === null || _a === void 0 ? void 0 : _a.map(function (item, index) {
89
+ var _a;
90
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_2.Fragment, { children: [index !== 0 && ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
91
+ borderRight: "1px dashed ".concat(theme.palette.border.white24),
92
+ flex: 1,
93
+ } })), (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("timeline_dot"), width: 16 })] }, (_a = item.feeType) === null || _a === void 0 ? void 0 : _a.name));
94
+ }) }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { flex: 1, gap: theme.mixins.gaps.g8 }), children: (_b = feesData === null || feesData === void 0 ? void 0 : feesData.feeDetail) === null || _b === void 0 ? void 0 : _b.map(function (item) {
95
+ var _a, _b;
96
+ return ((0, jsx_runtime_1.jsx)(FeeDetail, { feeName: (_a = item.feeType) === null || _a === void 0 ? void 0 : _a.name, feeInCurrency: item.feeInCurrency, feeInUSD: item.feeInUSD, currencyName: "USDT" }, (_b = item.feeType) === null || _b === void 0 ? void 0 : _b.name));
97
+ }) })] }), isEnoughBalanceToPayFee && ((0, jsx_runtime_1.jsxs)(Text_1.default, { sx: __assign({}, theme.mixins.validationError), children: ["You don't have enough balance to pay the fee, please ", " ", (0, jsx_runtime_1.jsxs)(ReceiveFunction_1.default, { children: [" ", (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
98
+ textDecoration: "underline",
99
+ }, children: "Topup more" })] }), " ", "to continue"] }))] }) })] })));
74
100
  }
75
101
  exports.default = Fees;
102
+ var FeeDetail = function (_a) {
103
+ var feeName = _a.feeName, feeInCurrency = _a.feeInCurrency, feeInUSD = _a.feeInUSD, currencyName = _a.currencyName;
104
+ var theme = (0, material_1.useTheme)();
105
+ return ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g4 }), children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4 }), children: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.fieldTitle), { whiteSpace: "nowrap" }), children: feeName }) }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { flex: 1, width: "fit-content", alignItems: "flex-end" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: feeInCurrency, unit: " ".concat(currencyName) }) }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: feeInUSD, start: "~ $" }) })] })] }));
106
+ };
@@ -144,33 +144,34 @@ var AmountError;
144
144
  AmountError["MIN_LIMIT"] = "The minimum amount is";
145
145
  })(AmountError || (exports.AmountError = AmountError = {}));
146
146
  var WithdrawFunction = (0, react_1.forwardRef)(function (props, ref) {
147
+ var _a;
147
148
  var swiperKey = (0, react_1.useId)();
148
149
  console.warn("🚀 ~ swiperKey:", swiperKey);
149
150
  var drawerRef = (0, react_1.useRef)(null);
150
151
  var swiperRef = (0, react_1.useRef)(null);
151
152
  var theme = (0, material_1.useTheme)();
152
- var _a = (0, react_1.useState)(WithdrawStep.SELECT_METHOD), currentStep = _a[0], setCurrentStep = _a[1];
153
- var _b = (0, react_1.useState)(), selectedToken = _b[0], setSelectedToken = _b[1];
154
- var _c = (0, react_1.useState)(), selectedNetwork = _c[0], setSelectedNetwork = _c[1];
153
+ var _b = (0, react_1.useState)(WithdrawStep.SELECT_METHOD), currentStep = _b[0], setCurrentStep = _b[1];
154
+ var _c = (0, react_1.useState)(), selectedToken = _c[0], setSelectedToken = _c[1];
155
+ var _d = (0, react_1.useState)(), selectedNetwork = _d[0], setSelectedNetwork = _d[1];
155
156
  var isAuthenticated = (0, useWalletData_1.default)().isAuthenticated;
156
- var _d = (0, useWithdrawData_1.default)(), withdrawTokens = _d.withdrawTokens, updateWithdrawToken = _d.updateWithdrawToken, updateSendInternalToken = _d.updateSendInternalToken, sendInternalTokens = _d.sendInternalTokens;
157
- var _e = (0, react_1.useState)(), infoDialogContent = _e[0], setInfoDialogContent = _e[1];
158
- var _f = (0, react_1.useState)(""), amount = _f[0], setAmount = _f[1];
159
- var _g = (0, react_1.useState)(undefined), memo = _g[0], setMemo = _g[1];
160
- var _h = (0, react_1.useState)(undefined), recipientAddress = _h[0], setRecipientAddress = _h[1];
161
- var _j = (0, react_1.useState)(), amountErrorMessage = _j[0], setAmountErrorMessage = _j[1];
162
- var _k = (0, react_1.useState)(true), hiddenError = _k[0], setHiddenError = _k[1];
163
- var _l = (0, react_1.useState)(), amountError = _l[0], setAmountError = _l[1];
157
+ var _e = (0, useWithdrawData_1.default)(), withdrawTokens = _e.withdrawTokens, updateWithdrawToken = _e.updateWithdrawToken, updateSendInternalToken = _e.updateSendInternalToken, sendInternalTokens = _e.sendInternalTokens;
158
+ var _f = (0, react_1.useState)(), infoDialogContent = _f[0], setInfoDialogContent = _f[1];
159
+ var _g = (0, react_1.useState)(""), amount = _g[0], setAmount = _g[1];
160
+ var _h = (0, react_1.useState)(undefined), memo = _h[0], setMemo = _h[1];
161
+ var _j = (0, react_1.useState)(undefined), recipientAddress = _j[0], setRecipientAddress = _j[1];
162
+ var _k = (0, react_1.useState)(), amountErrorMessage = _k[0], setAmountErrorMessage = _k[1];
163
+ var _l = (0, react_1.useState)(true), hiddenError = _l[0], setHiddenError = _l[1];
164
+ var _m = (0, react_1.useState)(), amountError = _m[0], setAmountError = _m[1];
164
165
  var scannerAllQrCodeRef = (0, react_1.useRef)(null);
165
166
  var scannerAddressQrCodeRef = (0, react_1.useRef)(null);
166
167
  var backDropRef = (0, react_1.useRef)(null);
167
168
  var suggestUseTransferInternalDialogRef = (0, react_1.useRef)(null);
168
169
  var suggestUseTransferExternalDialogRef = (0, react_1.useRef)(null);
169
- var _m = (0, react_1.useState)(), selectedMethod = _m[0], setSelectedMethod = _m[1];
170
- var _o = (0, react_1.useState)(), sendInfoGet = _o[0], setSendInfoGet = _o[1];
171
- var _p = (0, react_1.useState)(false), isLoadingEstimateFee = _p[0], setIsLoadingEstimateFee = _p[1];
172
- var _q = (0, react_1.useState)(), estimateFee = _q[0], setEstimateFee = _q[1];
173
- var _r = (0, react_1.useState)(), recipientAddressError = _r[0], setRecipientAddressError = _r[1];
170
+ var _o = (0, react_1.useState)(), selectedMethod = _o[0], setSelectedMethod = _o[1];
171
+ var _p = (0, react_1.useState)(), sendInfoGet = _p[0], setSendInfoGet = _p[1];
172
+ var _q = (0, react_1.useState)(false), isLoadingEstimateFee = _q[0], setIsLoadingEstimateFee = _q[1];
173
+ var _r = (0, react_1.useState)(), estimateFee = _r[0], setEstimateFee = _r[1];
174
+ var _s = (0, react_1.useState)(), recipientAddressError = _s[0], setRecipientAddressError = _s[1];
174
175
  var onlyChangeAddress = (0, react_1.useRef)(false);
175
176
  var withdrawToken = (0, react_1.useMemo)(function () {
176
177
  return selectedMethod === SendMethods.TRANSFER_EXTERNAL
@@ -189,6 +190,11 @@ var WithdrawFunction = (0, react_1.forwardRef)(function (props, ref) {
189
190
  }
190
191
  return newNetWorks;
191
192
  }, [selectedToken, selectedNetwork]);
193
+ var estimateReceive = (0, react_1.useMemo)(function () {
194
+ if (!estimateFee || !amount)
195
+ return undefined;
196
+ return +amount - +(estimateFee === null || estimateFee === void 0 ? void 0 : estimateFee.feeInCurrency);
197
+ }, [estimateFee, amount]);
192
198
  var clearValues = function () {
193
199
  setSelectedToken(undefined);
194
200
  setSelectedNetwork(undefined);
@@ -606,11 +612,11 @@ var WithdrawFunction = (0, react_1.forwardRef)(function (props, ref) {
606
612
  placeholder: "Enter memo",
607
613
  value: memo,
608
614
  onChange: handleChangeMemo,
609
- } })] })), (0, jsx_runtime_1.jsx)(Fees_1.default, { feesData: JSON.stringify(estimateFee) }), (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { sx: { width: "100%" }, onClick: handleSend, status: !!amountError ||
615
+ } })] })), ((_a = estimateFee === null || estimateFee === void 0 ? void 0 : estimateFee.feeDetail) === null || _a === void 0 ? void 0 : _a.length) && !!amount && ((0, jsx_runtime_1.jsx)(Fees_1.default, { feesData: JSON.stringify(estimateFee) })), estimateReceive !== undefined && ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign({}, theme.mixins.row), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.fieldTitle), children: "Estimate receive" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { ml: "auto" }), children: (0, jsx_runtime_1.jsx)(Formatter_1.default, { value: estimateReceive }) })] })), (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { sx: { width: "100%" }, onClick: handleSend, status: !!amountError ||
616
+ !!recipientAddressError ||
610
617
  !recipientAddress ||
611
618
  !amount ||
612
619
  !selectedToken ||
613
- !!recipientAddressError ||
614
620
  isLoadingEstimateFee
615
621
  ? Button_1.BUTTON_STATUS.DISABLED
616
622
  : Button_1.BUTTON_STATUS.ENABLED, children: "Continue" })] }) }, WithdrawStep.FORM)] }, swiperKey), (0, jsx_runtime_1.jsx)(QrCodeReader_1.default, { ref: scannerAllQrCodeRef, onResult: handleScanAllQrCode }), (0, jsx_runtime_1.jsx)(QrCodeReader_1.default, { ref: scannerAddressQrCodeRef, onResult: handleScanAddressQrCode }), (0, jsx_runtime_1.jsx)(AppBackDrop_1.default, { ref: backDropRef }), (0, jsx_runtime_1.jsx)(AppDialog_1.default, { overrideOpen: !!infoDialogContent, children: (0, jsx_runtime_1.jsx)(DialogContentLayout_1.default, { content: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
@@ -23,6 +23,8 @@ export interface FeeDetail {
23
23
  feeInCurrency: number;
24
24
  feePercent: number;
25
25
  feeFixed: number;
26
+ currencySlug: string;
27
+ isEnoughBalance?: boolean;
26
28
  }
27
29
  export interface FeeType {
28
30
  name: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tek-wallet",
3
- "version": "0.0.387",
3
+ "version": "0.0.389",
4
4
  "description": "A custom React provider with TypeScript support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",