tek-wallet 0.0.388 → 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,11 +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 useWalletData_1 = __importDefault(require("../../../hooks/useWalletData"));
37
+ var react_1 = require("react");
38
+ var ReceiveFunction_1 = __importDefault(require("../ReceiveFunction"));
36
39
  function Fees(props) {
37
40
  var _a, _b;
38
41
  var sx = props.sx, rest = __rest(props, ["sx"]);
39
42
  var theme = (0, material_1.useTheme)();
40
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]);
41
70
  return ((0, jsx_runtime_1.jsxs)(material_1.Accordion, __assign({ defaultExpanded: true }, rest, { sx: __assign({ "&.MuiAccordion-root": {
42
71
  backgroundColor: "transparent",
43
72
  margin: 0,
@@ -56,20 +85,22 @@ function Fees(props) {
56
85
  }, "& .MuiAccordionDetails-root": {
57
86
  paddingLeft: theme.mixins.customPadding.p12,
58
87
  paddingRight: theme.mixins.customPadding.p12,
59
- } }, 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) {
60
- var _a;
61
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_2.Fragment, { children: [index !== 0 && ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
62
- borderRight: "1px dashed ".concat(theme.palette.border.white24),
63
- flex: 1,
64
- } })), (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));
65
- }) }), (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) {
66
- var _a, _b;
67
- 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));
68
- }) })] }) })] })));
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"] }))] }) })] })));
69
100
  }
70
101
  exports.default = Fees;
71
102
  var FeeDetail = function (_a) {
72
103
  var feeName = _a.feeName, feeInCurrency = _a.feeInCurrency, feeInUSD = _a.feeInUSD, currencyName = _a.currencyName;
73
104
  var theme = (0, material_1.useTheme)();
74
- 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: " ".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: "~ $" }) })] })] }));
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: "~ $" }) })] })] }));
75
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
@@ -611,7 +612,7 @@ var WithdrawFunction = (0, react_1.forwardRef)(function (props, ref) {
611
612
  placeholder: "Enter memo",
612
613
  value: memo,
613
614
  onChange: handleChangeMemo,
614
- } })] })), (0, jsx_runtime_1.jsx)(Fees_1.default, { feesData: JSON.stringify(estimateFee) }), (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)(material_1.Box, { onClick: handleReSelectNetwork, sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g6, ml: "auto", cursor: "pointer" }), children: (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), 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 ||
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 ||
615
616
  !!recipientAddressError ||
616
617
  !recipientAddress ||
617
618
  !amount ||
@@ -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.388",
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",