UNPKG

eros-sdk-react

Version:

eros sdk

145 lines (144 loc) 4.47 kB
// src/utils/index.tsx import moment from "moment"; import { jsx, jsxs } from "react/jsx-runtime"; var getVersion = () => { return "0.0.2"; }; function encodeBase64(input) { return btoa(unescape(encodeURIComponent(input))); } function decodeBase64(input) { return decodeURIComponent(escape(atob(input))); } var isValidEmail = (email) => { return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email); }; var isValidUsername = (username) => { return /^[a-zA-Z0-9_-]+$/.test(username); }; var deepMerge = (target, source) => { for (const key in source) { if (source[key] instanceof Object && key in target) { target[key] = deepMerge(target[key], source[key]); } else { target[key] = source[key]; } } return target; }; function truncateAddress(address, startLen = 4, endLen = 4) { if (address.length <= startLen + endLen) { return address; } const start = address.slice(0, startLen); const end = address.slice(-endLen); return `${start}...${end}`; } function firstUpperCase(str) { return str.toString()[0].toUpperCase() + str.toString().slice(1); } function getAppClientId() { return "react-sdk-" + getVersion(); } function convertScientificToDecimal(num) { let str = num.toFixed(12); str = str.replace(/0+$/, ""); str = str.replace(/\.$/, ""); return str; } var NumberFormatter = ({ value, prefix = "", suffix = "", separator = true, fixNum = 2, tFixNum = 4, intClassName = "", decimalClassName = "", prefixClassName = "", className = "" }) => { const numberValue = typeof value === "number" ? convertScientificToDecimal(value) : value ? value : "0"; const [intPart, decimalPart] = numberValue.toString().split("."); const intFormat = separator ? intPart.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : intPart; if (Math.abs(parseFloat(numberValue)) >= 1) { return /* @__PURE__ */ jsxs("span", { className, children: [ prefix && /* @__PURE__ */ jsx("span", { className: prefixClassName, children: prefix }), /* @__PURE__ */ jsx("span", { className: intClassName, children: intFormat }), decimalPart ? /* @__PURE__ */ jsxs("span", { className: decimalClassName, children: [ ".", decimalPart.substring(0, fixNum) ] }) : "", suffix ] }); } if (decimalPart) { let zeroCount = 0; for (let i = 0; i < decimalPart.length; i++) { if (decimalPart[i] === "0") { zeroCount++; } else { break; } } if (zeroCount < tFixNum) { return /* @__PURE__ */ jsxs("span", { className, children: [ prefix && /* @__PURE__ */ jsx("span", { className: prefixClassName, children: prefix }), /* @__PURE__ */ jsx("span", { className: intClassName, children: intFormat }), /* @__PURE__ */ jsxs("span", { className: decimalClassName, children: [ ".", decimalPart.substring(0, tFixNum) ] }), suffix ] }); } return /* @__PURE__ */ jsxs("span", { className, children: [ prefix && /* @__PURE__ */ jsx("span", { className: prefixClassName, children: prefix }), /* @__PURE__ */ jsx("span", { className: intClassName, children: intFormat }), /* @__PURE__ */ jsxs("span", { className: decimalClassName, children: [ ".0", /* @__PURE__ */ jsx("sub", { children: zeroCount }), decimalPart?.substring(zeroCount, zeroCount + tFixNum - 2) ] }), suffix ] }); } return /* @__PURE__ */ jsxs("span", { className, children: [ prefix && /* @__PURE__ */ jsx("span", { className: prefixClassName, children: prefix }), /* @__PURE__ */ jsx("span", { className: intClassName, children: intPart }), suffix ] }); }; function formatAddress(address, pre = 4, after = 5) { return `${address.substring(0, pre)}...${address.substring(address.length - after, address.length)}`; } var formatDate = (value, formatString = "YYYY-MM-DD HH:mm:ss") => { if (value) { return moment.unix(value).format(formatString); } return "--"; }; var isInTgApp = () => { return !!window.TelegramWebviewProxy; }; function bytesToBase64(bytes) { const binString = String.fromCodePoint(...bytes); return btoa(binString); } export { getVersion, encodeBase64, decodeBase64, isValidEmail, isValidUsername, deepMerge, truncateAddress, firstUpperCase, getAppClientId, NumberFormatter, formatAddress, formatDate, isInTgApp, bytesToBase64 }; //# sourceMappingURL=chunk-IZOOVZAD.mjs.map