tek-wallet 0.0.214 → 0.0.215

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.
@@ -10,5 +10,6 @@ export interface ButtonProps extends MuiButtonProps {
10
10
  declare const Button: React.FC<ButtonProps> & {
11
11
  Primary: React.FC<ButtonProps>;
12
12
  Secondary: React.FC<ButtonProps>;
13
+ Text: React.FC<ButtonProps>;
13
14
  };
14
15
  export default Button;
@@ -49,4 +49,10 @@ Button.Secondary = function (props) {
49
49
  return ((0, jsx_runtime_1.jsx)(Button, __assign({}, rest, { variant: "outlined", color: "secondary", sx: __assign({ borderRadius: theme.mixins.theBorderRadius.full }, sx) })));
50
50
  };
51
51
  Button.Secondary.displayName = "Button.Secondary";
52
+ Button.Text = function (props) {
53
+ var sx = props.sx, rest = __rest(props, ["sx"]);
54
+ var theme = (0, material_1.useTheme)();
55
+ return ((0, jsx_runtime_1.jsx)(Button, __assign({}, rest, { variant: "text", color: "secondary", sx: __assign({ width: "fit-content", height: "fit-content", px: theme.mixins.customPadding.p16, py: theme.mixins.customPadding.p8 }, sx) })));
56
+ };
57
+ Button.Text.displayName = "Button.Text";
52
58
  exports.default = Button;
@@ -1,8 +1,7 @@
1
- import { ReactEventHandler } from "react";
2
- import { GeneralProps } from "../../../types/ui";
1
+ import { GeneralProps, UnknownFunction } from "../../../types/ui";
3
2
  interface DepositFunctionProps extends GeneralProps {
4
- onClose?: ReactEventHandler;
5
- onOpen?: ReactEventHandler;
3
+ onClose?: UnknownFunction;
4
+ onOpen?: UnknownFunction;
6
5
  }
7
6
  type DepositFunctionRef = {
8
7
  open: () => void;
@@ -11,6 +11,39 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  return __assign.apply(this, arguments);
13
13
  };
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
27
+ }) : function(o, v) {
28
+ o["default"] = v;
29
+ });
30
+ var __importStar = (this && this.__importStar) || (function () {
31
+ var ownKeys = function(o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ })();
14
47
  var __importDefault = (this && this.__importDefault) || function (mod) {
15
48
  return (mod && mod.__esModule) ? mod : { "default": mod };
16
49
  };
@@ -28,7 +61,7 @@ var QRCode_1 = __importDefault(require("../QRCode"));
28
61
  var Text_1 = __importDefault(require("../Text"));
29
62
  var material_1 = require("@mui/material");
30
63
  var CopyTextComponent_1 = __importDefault(require("../CopyTextComponent"));
31
- var Button_1 = __importDefault(require("../Button"));
64
+ var Button_1 = __importStar(require("../Button"));
32
65
  var Icon_1 = __importDefault(require("../Icon"));
33
66
  var getIcon_1 = __importDefault(require("../../../utils/getIcon"));
34
67
  var Share_1 = __importDefault(require("../Share"));
@@ -52,13 +85,17 @@ var DEPOSIT_STEP_NAME = (_a = {},
52
85
  _a);
53
86
  var DepositFunction = (0, react_1.forwardRef)(function (props, ref) {
54
87
  var drawerRef = (0, react_1.useRef)(null);
88
+ var amountDrawerRef = (0, react_1.useRef)(null);
55
89
  var swiperRef = (0, react_1.useRef)(null);
56
90
  var theme = (0, material_1.useTheme)();
57
91
  var _a = (0, react_1.useState)(DepositStep.SELECT_TOKEN), currentStep = _a[0], setCurrentStep = _a[1];
58
92
  var _b = (0, react_1.useState)(), selectedToken = _b[0], setSelectedToken = _b[1];
59
93
  var _c = (0, react_1.useState)(), selectedNetwork = _c[0], setSelectedNetwork = _c[1];
60
94
  var _d = (0, useWalletData_1.default)(), isAuthenticated = _d.isAuthenticated, blockchainWallets = _d.blockchainWallets;
61
- var _e = (0, useDepositData_1.default)(), depositTokens = _e.depositTokens, updateDepositToken = _e.updateDepositToken;
95
+ var _e = (0, react_1.useState)(0), inputAmount = _e[0], setInputAmount = _e[1];
96
+ var _f = (0, react_1.useState)(0), amount = _f[0], setAmount = _f[1];
97
+ var _g = (0, react_1.useState)(""), amountError = _g[0], setAmountError = _g[1];
98
+ var _h = (0, useDepositData_1.default)(), depositTokens = _h.depositTokens, updateDepositToken = _h.updateDepositToken;
62
99
  var networks = (0, react_1.useMemo)(function () {
63
100
  console.warn("🚀 ~ networks ~ selectedToken:", selectedToken);
64
101
  if (!selectedToken) {
@@ -79,11 +116,17 @@ var DepositFunction = (0, react_1.forwardRef)(function (props, ref) {
79
116
  return (_a = blockchainWallets.find(function (item) { return item.networkSlug === (selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.slug); })) === null || _a === void 0 ? void 0 : _a.blockchainAddress;
80
117
  }, [blockchainWallets, selectedNetwork]);
81
118
  var qrCodeValue = (0, react_1.useMemo)(function () {
119
+ var _a;
82
120
  if (!addressByNetwork || !selectedToken) {
83
121
  return "";
84
122
  }
85
- return "ton://transfer/".concat(addressByNetwork, "?&jetton=").concat(selectedToken.address);
86
- }, [addressByNetwork, selectedToken]);
123
+ return "ton://transfer/".concat(addressByNetwork, "?&jetton=").concat(selectedToken.address, "&amount=").concat(amount * Math.pow(10, ((_a = selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.decimal) !== null && _a !== void 0 ? _a : 0)));
124
+ }, [addressByNetwork, selectedToken, amount]);
125
+ var resetValues = function () {
126
+ setInputAmount(0);
127
+ setAmount(0);
128
+ setAmountError("");
129
+ };
87
130
  var open = function () {
88
131
  var _a;
89
132
  if (!isAuthenticated)
@@ -95,6 +138,7 @@ var DepositFunction = (0, react_1.forwardRef)(function (props, ref) {
95
138
  if (!isAuthenticated)
96
139
  throw new Error("Please connect your wallet");
97
140
  (_a = drawerRef.current) === null || _a === void 0 ? void 0 : _a.close();
141
+ resetValues();
98
142
  };
99
143
  (0, react_1.useImperativeHandle)(ref, function () { return ({
100
144
  open: open,
@@ -122,12 +166,43 @@ var DepositFunction = (0, react_1.forwardRef)(function (props, ref) {
122
166
  setSelectedNetwork(network);
123
167
  nextStep();
124
168
  };
169
+ var validateAmount = function (amount) {
170
+ var _a, _b;
171
+ if (amount < ((_a = selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.min_value) !== null && _a !== void 0 ? _a : 0)) {
172
+ setAmountError("Min ".concat(selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.min_value, " ").concat(selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name));
173
+ return false;
174
+ }
175
+ if (amount > ((_b = selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.max_value) !== null && _b !== void 0 ? _b : 0)) {
176
+ setAmountError("Max ".concat(selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.max_value, " ").concat(selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name));
177
+ return false;
178
+ }
179
+ setAmountError("");
180
+ return true;
181
+ };
182
+ var handleChangeAmount = function (e) {
183
+ var amountNumber = Number(e.target.value);
184
+ if (isNaN(amountNumber)) {
185
+ return;
186
+ }
187
+ setInputAmount(amountNumber);
188
+ validateAmount(amountNumber);
189
+ };
190
+ var handleContinue = function () {
191
+ var _a;
192
+ setAmount(inputAmount);
193
+ (_a = amountDrawerRef.current) === null || _a === void 0 ? void 0 : _a.close();
194
+ };
195
+ var handleOnClose = function () {
196
+ var _a;
197
+ resetValues();
198
+ (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);
199
+ };
125
200
  (0, react_1.useEffect)(function () {
126
201
  if (isAuthenticated && !depositTokens) {
127
202
  updateDepositToken();
128
203
  }
129
204
  }, [isAuthenticated, depositTokens]);
130
- return ((0, jsx_runtime_1.jsx)(RequireConnect_1.default, { children: (0, jsx_runtime_1.jsx)(DrawerComponent_1.default, { ref: drawerRef, trigger: props.children, onOpen: props.onOpen, onClose: props.onClose, children: (0, jsx_runtime_1.jsx)(ModalLayout_1.default, { overrideHeader: (0, jsx_runtime_1.jsx)(BackHeader_1.default, { sx: {
205
+ return ((0, jsx_runtime_1.jsx)(RequireConnect_1.default, { children: (0, jsx_runtime_1.jsx)(DrawerComponent_1.default, { ref: drawerRef, trigger: props.children, onOpen: props.onOpen, onClose: handleOnClose, children: (0, jsx_runtime_1.jsx)(ModalLayout_1.default, { overrideHeader: (0, jsx_runtime_1.jsx)(BackHeader_1.default, { sx: {
131
206
  width: "100%",
132
207
  display: "flex",
133
208
  alignItems: "center",
@@ -160,7 +235,12 @@ var DepositFunction = (0, react_1.forwardRef)(function (props, ref) {
160
235
  backdropFilter: "blur(10px)",
161
236
  }, children: (0, jsx_runtime_1.jsx)(QRCode_1.default, { value: qrCodeValue, title: "Deposit ".concat(selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name), logo: (0, getIcon_1.default)("ton"), bgColor: "transparent" }) }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, color: "text.white" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: "Network" }), (0, jsx_runtime_1.jsxs)(material_1.Box, { component: "button", sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g2, cursor: "pointer", transition: "transform 0.3s ease-in-out", "&:active": {
162
237
  transform: "translateX(0.5rem)",
163
- } }), onClick: handleBack, children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.name }), (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("right_arrow"), width: 10 })] })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, color: "text.white" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: "Address" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { wordBreak: "break-all" }), children: (0, jsx_runtime_1.jsx)(CopyTextComponent_1.default, { value: addressByNetwork || "", children: addressByNetwork }) })] }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, backgroundColor: theme.palette.background.white16, borderRadius: theme.mixins.theBorderRadius.r12, padding: theme.mixins.customPadding.p8 }), children: (0, jsx_runtime_1.jsxs)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: ["Deposit", " ", (0, jsx_runtime_1.jsxs)("strong", { style: { color: theme.palette.text.white }, children: ["min ", selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.min_value, " ", selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name] }), " ", "and", " ", (0, jsx_runtime_1.jsx)("strong", { style: { color: theme.palette.text.white }, children: "select the correct network" }), ", or you will lose your assets."] }) })] }), (0, jsx_runtime_1.jsx)(Button_1.default, { children: "Set amount" }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g12, justifyContent: "center" }), children: [(0, jsx_runtime_1.jsx)(CopyTextComponent_1.default, { value: qrCodeValue, children: (0, jsx_runtime_1.jsxs)(Button_1.default.Secondary, { className: "gap-1.5 flex items-center", children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
238
+ } }), onClick: handleBack, children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.value), children: selectedNetwork === null || selectedNetwork === void 0 ? void 0 : selectedNetwork.name }), (0, jsx_runtime_1.jsx)(Icon_1.default, { src: (0, getIcon_1.default)("right_arrow"), width: 10 })] })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, color: "text.white" }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: "Address" }), (0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign(__assign({}, theme.mixins.value), { wordBreak: "break-all" }), children: (0, jsx_runtime_1.jsx)(CopyTextComponent_1.default, { value: addressByNetwork || "", children: addressByNetwork }) })] }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g4, backgroundColor: theme.palette.background.white16, borderRadius: theme.mixins.theBorderRadius.r12, padding: theme.mixins.customPadding.p8 }), children: (0, jsx_runtime_1.jsxs)(Text_1.default, { sx: __assign({}, theme.mixins.valueDescription), children: ["Deposit", " ", (0, jsx_runtime_1.jsxs)("strong", { style: { color: theme.palette.text.white }, children: ["min ", selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.min_value, " ", selectedToken === null || selectedToken === void 0 ? void 0 : selectedToken.name] }), " ", "and", " ", (0, jsx_runtime_1.jsx)("strong", { style: { color: theme.palette.text.white }, children: "select the correct network" }), ", or you will lose your assets."] }) })] }), (0, jsx_runtime_1.jsx)(DrawerComponent_1.default, { ref: amountDrawerRef, trigger: (0, jsx_runtime_1.jsx)(Button_1.default.Text, { sx: {
239
+ fontSize: "typography.fontSize12",
240
+ textTransform: "none",
241
+ }, children: "+ Set amount" }), children: (0, jsx_runtime_1.jsx)(ModalLayout_1.default, { children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.column), { gap: theme.mixins.gaps.g12 }), children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.fieldTitle), children: "Set amount" }), (0, jsx_runtime_1.jsx)(material_1.Input, { value: inputAmount, onChange: handleChangeAmount }), amountError && ((0, jsx_runtime_1.jsx)(Text_1.default, { sx: __assign({}, theme.mixins.validationError), children: amountError })), (0, jsx_runtime_1.jsx)(Button_1.default.Primary, { sx: { mt: theme.mixins.customMargin.m8 }, onClick: handleContinue, status: !!amountError
242
+ ? Button_1.BUTTON_STATUS.DISABLED
243
+ : Button_1.BUTTON_STATUS.ENABLED, children: "Continue" })] }) }) }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: __assign(__assign({}, theme.mixins.row), { gap: theme.mixins.gaps.g12, justifyContent: "center" }), children: [(0, jsx_runtime_1.jsx)(CopyTextComponent_1.default, { value: qrCodeValue, children: (0, jsx_runtime_1.jsxs)(Button_1.default.Secondary, { className: "gap-1.5 flex items-center", children: [(0, jsx_runtime_1.jsx)(Text_1.default, { sx: {
164
244
  fontSize: theme.typography.fontSize12,
165
245
  fontWeight: theme.typography.fontWeight400,
166
246
  leading: "typography.leading150",
@@ -198,6 +198,7 @@ export interface DepositCurrency {
198
198
  balance: string;
199
199
  min_value: number;
200
200
  max_value: number;
201
+ decimal: number;
201
202
  }
202
203
  interface Networkdata {
203
204
  id: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tek-wallet",
3
- "version": "0.0.214",
3
+ "version": "0.0.215",
4
4
  "description": "A custom React provider with TypeScript support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",