tek-wallet 0.0.388 → 0.0.390

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,32 @@ 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 swiperKey = (0, react_1.useId)();
148
- console.warn("🚀 ~ swiperKey:", swiperKey);
147
+ var _a;
149
148
  var drawerRef = (0, react_1.useRef)(null);
150
149
  var swiperRef = (0, react_1.useRef)(null);
151
150
  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];
151
+ var _b = (0, react_1.useState)(WithdrawStep.SELECT_METHOD), currentStep = _b[0], setCurrentStep = _b[1];
152
+ var _c = (0, react_1.useState)(), selectedToken = _c[0], setSelectedToken = _c[1];
153
+ var _d = (0, react_1.useState)(), selectedNetwork = _d[0], setSelectedNetwork = _d[1];
155
154
  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];
155
+ var _e = (0, useWithdrawData_1.default)(), withdrawTokens = _e.withdrawTokens, updateWithdrawToken = _e.updateWithdrawToken, updateSendInternalToken = _e.updateSendInternalToken, sendInternalTokens = _e.sendInternalTokens;
156
+ var _f = (0, react_1.useState)(), infoDialogContent = _f[0], setInfoDialogContent = _f[1];
157
+ var _g = (0, react_1.useState)(""), amount = _g[0], setAmount = _g[1];
158
+ var _h = (0, react_1.useState)(undefined), memo = _h[0], setMemo = _h[1];
159
+ var _j = (0, react_1.useState)(undefined), recipientAddress = _j[0], setRecipientAddress = _j[1];
160
+ var _k = (0, react_1.useState)(), amountErrorMessage = _k[0], setAmountErrorMessage = _k[1];
161
+ var _l = (0, react_1.useState)(true), hiddenError = _l[0], setHiddenError = _l[1];
162
+ var _m = (0, react_1.useState)(), amountError = _m[0], setAmountError = _m[1];
164
163
  var scannerAllQrCodeRef = (0, react_1.useRef)(null);
165
164
  var scannerAddressQrCodeRef = (0, react_1.useRef)(null);
166
165
  var backDropRef = (0, react_1.useRef)(null);
167
166
  var suggestUseTransferInternalDialogRef = (0, react_1.useRef)(null);
168
167
  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];
168
+ var _o = (0, react_1.useState)(), selectedMethod = _o[0], setSelectedMethod = _o[1];
169
+ var _p = (0, react_1.useState)(), sendInfoGet = _p[0], setSendInfoGet = _p[1];
170
+ var _q = (0, react_1.useState)(false), isLoadingEstimateFee = _q[0], setIsLoadingEstimateFee = _q[1];
171
+ var _r = (0, react_1.useState)(), estimateFee = _r[0], setEstimateFee = _r[1];
172
+ var _s = (0, react_1.useState)(), recipientAddressError = _s[0], setRecipientAddressError = _s[1];
174
173
  var onlyChangeAddress = (0, react_1.useRef)(false);
175
174
  var withdrawToken = (0, react_1.useMemo)(function () {
176
175
  return selectedMethod === SendMethods.TRANSFER_EXTERNAL
@@ -194,6 +193,10 @@ var WithdrawFunction = (0, react_1.forwardRef)(function (props, ref) {
194
193
  return undefined;
195
194
  return +amount - +(estimateFee === null || estimateFee === void 0 ? void 0 : estimateFee.feeInCurrency);
196
195
  }, [estimateFee, amount]);
196
+ var swiperKey = (0, react_1.useMemo)(function () {
197
+ var _a;
198
+ return "".concat((_a = estimateFee === null || estimateFee === void 0 ? void 0 : estimateFee.feeDetail) === null || _a === void 0 ? void 0 : _a.length, "-").concat(amountError, "-").concat(recipientAddressError);
199
+ }, [estimateFee, amountError, recipientAddressError]);
197
200
  var clearValues = function () {
198
201
  setSelectedToken(undefined);
199
202
  setSelectedNetwork(undefined);
@@ -611,7 +614,7 @@ var WithdrawFunction = (0, react_1.forwardRef)(function (props, ref) {
611
614
  placeholder: "Enter memo",
612
615
  value: memo,
613
616
  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 ||
617
+ } })] })), ((_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
618
  !!recipientAddressError ||
616
619
  !recipientAddress ||
617
620
  !amount ||
@@ -22,8 +22,16 @@ export interface FeeDetail {
22
22
  feeInUSD: number;
23
23
  feeInCurrency: number;
24
24
  feePercent: number;
25
+ currency: Currency;
25
26
  feeFixed: number;
26
27
  }
28
+ export interface Currency {
29
+ id: number;
30
+ slug: string;
31
+ full_name: string;
32
+ icon: string;
33
+ link: string;
34
+ }
27
35
  export interface FeeType {
28
36
  name: string;
29
37
  slug: 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.390",
4
4
  "description": "A custom React provider with TypeScript support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",