@matchain/matchid-sdk-react 0.1.47 → 0.1.48-alpha.1
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.
- package/dist/assets/icon/index.d.mts +4 -2
- package/dist/assets/icon/index.d.ts +4 -2
- package/dist/assets/icon/index.js +27 -0
- package/dist/assets/icon/index.js.map +1 -1
- package/dist/assets/icon/index.mjs +3 -1
- package/dist/chunk-A477SJHT.mjs +4549 -0
- package/dist/chunk-A477SJHT.mjs.map +1 -0
- package/dist/{chunk-DPXMCLYK.mjs → chunk-A5D3NKTK.mjs} +29 -3
- package/dist/chunk-A5D3NKTK.mjs.map +1 -0
- package/dist/{chunk-A3XSTHEE.mjs → chunk-AFZSANRV.mjs} +8 -4
- package/dist/chunk-AFZSANRV.mjs.map +1 -0
- package/dist/chunk-HBOS3RBL.mjs +19 -0
- package/dist/chunk-HBOS3RBL.mjs.map +1 -0
- package/dist/{chunk-TOUC33US.mjs → chunk-LNSJ3ZXG.mjs} +294 -4680
- package/dist/chunk-LNSJ3ZXG.mjs.map +1 -0
- package/dist/{chunk-SQIJR7RA.mjs → chunk-UA6XHZHX.mjs} +2 -14
- package/dist/chunk-UA6XHZHX.mjs.map +1 -0
- package/dist/components/index.d.mts +3 -3
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.js +450 -841
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +12 -12
- package/dist/hooks/api/index.d.mts +2 -2
- package/dist/hooks/api/index.d.ts +2 -2
- package/dist/hooks/api/index.js +410 -256
- package/dist/hooks/api/index.js.map +1 -1
- package/dist/hooks/api/index.mjs +11 -5
- package/dist/hooks/index.d.mts +2 -2
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +659 -495
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +14 -4
- package/dist/index-BIgM4fy0.d.mts +122 -0
- package/dist/{index-DR2JTaoi.d.mts → index-BVatQlwF.d.mts} +10 -2
- package/dist/index-Bb7IkjUW.d.mts +26 -0
- package/dist/index-BwD1ij0H.d.ts +122 -0
- package/dist/index-C2-M-aBb.d.ts +57 -0
- package/dist/{index-DVlCrOjr.d.ts → index-CGs_yTFg.d.ts} +5 -33
- package/dist/index-CKiK4KHj.d.ts +26 -0
- package/dist/{index-D2pNP7Bz.d.mts → index-DO5x10pN.d.mts} +46 -26
- package/dist/index-DamklTOJ.d.mts +57 -0
- package/dist/{index-B0VpxAI2.d.mts → index-M7ZB3yR5.d.mts} +5 -33
- package/dist/{index-CFWR1boZ.d.ts → index-Pssz41An.d.ts} +46 -26
- package/dist/{index-CTSg5TRS.d.ts → index-RfA22r-Z.d.ts} +10 -2
- package/dist/index.css +241 -3
- package/dist/index.d.mts +8 -6
- package/dist/index.d.ts +8 -6
- package/dist/index.js +2808 -2672
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -5
- package/dist/types/index.d.mts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.mjs +2 -1
- package/dist/{types-CRumDe2M.d.mts → types-DQq17lf4.d.mts} +116 -1
- package/dist/{types-CRumDe2M.d.ts → types-DQq17lf4.d.ts} +116 -1
- package/dist/ui/index.d.mts +6 -0
- package/dist/ui/index.d.ts +6 -0
- package/dist/ui/index.js +724 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/index.mjs +33 -0
- package/dist/ui/index.mjs.map +1 -0
- package/example/src/App.tsx +7 -0
- package/example/src/config/chains/matchMain.ts +2 -3
- package/example/src/pages/UI/components/AlphaAvatar.tsx +11 -0
- package/example/src/pages/UI/components/Radio.tsx +15 -0
- package/example/src/pages/UI/components/Switch.tsx +13 -0
- package/example/src/pages/UI/index.tsx +11 -0
- package/example/src/pages/User/components/BindListModal.tsx +1 -1
- package/example/src/pages/User/components/PohListModal.tsx +1 -1
- package/example/src/pages/User/index.tsx +1 -13
- package/example/src/pages/Wallet/components/AssetListModal.tsx +15 -0
- package/example/src/pages/Wallet/components/ChainListModal.tsx +11 -0
- package/example/src/pages/Wallet/components/ImportTokenListModal.tsx +15 -0
- package/example/src/pages/Wallet/components/MatchWallet.tsx +20 -0
- package/example/src/pages/Wallet/components/WalletChainListModal.tsx +11 -0
- package/example/src/pages/{Wallet.tsx → Wallet/index.tsx} +33 -2
- package/package.json +6 -1
- package/dist/chunk-A3XSTHEE.mjs.map +0 -1
- package/dist/chunk-DPXMCLYK.mjs.map +0 -1
- package/dist/chunk-SQIJR7RA.mjs.map +0 -1
- package/dist/chunk-TOUC33US.mjs.map +0 -1
- package/dist/index-CWYElOA2.d.mts +0 -65
- package/dist/index-CoTirILQ.d.ts +0 -65
- /package/example/src/{pages/User/components → components}/QueryDisplay.tsx +0 -0
package/dist/components/index.js
CHANGED
|
@@ -42,7 +42,6 @@ __export(components_exports, {
|
|
|
42
42
|
Modal: () => Modal,
|
|
43
43
|
ModalWithHeader: () => ModalWithHeader,
|
|
44
44
|
Overlay: () => Overlay,
|
|
45
|
-
PasswordModal: () => PasswordModal,
|
|
46
45
|
Popover: () => Popover,
|
|
47
46
|
SOLModal: () => SOLModal,
|
|
48
47
|
TONModal: () => TONModal,
|
|
@@ -53,7 +52,7 @@ __export(components_exports, {
|
|
|
53
52
|
module.exports = __toCommonJS(components_exports);
|
|
54
53
|
|
|
55
54
|
// src/components/EmailModal/index.tsx
|
|
56
|
-
var
|
|
55
|
+
var import_react20 = require("react");
|
|
57
56
|
|
|
58
57
|
// src/assets/icon/ArrowLeftIcon.tsx
|
|
59
58
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -355,21 +354,6 @@ function CheckRoundIcon({
|
|
|
355
354
|
|
|
356
355
|
// src/assets/icon/PasswordRoundIcon.tsx
|
|
357
356
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
358
|
-
function PasswordRoundIcon() {
|
|
359
|
-
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("svg", { width: "40", height: "40", viewBox: "0 0 40 40", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
360
|
-
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("rect", { x: "0.5", y: "0.5", width: "39", height: "39", rx: "7.5", fill: "white" }),
|
|
361
|
-
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("rect", { x: "0.5", y: "0.5", width: "39", height: "39", rx: "7.5", stroke: "black" }),
|
|
362
|
-
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
363
|
-
"path",
|
|
364
|
-
{
|
|
365
|
-
fillRule: "evenodd",
|
|
366
|
-
clipRule: "evenodd",
|
|
367
|
-
d: "M19.7673 16.1137C19.962 13.9479 21.7831 12.25 24 12.25C26.3472 12.25 28.25 14.1528 28.25 16.5C28.25 18.8472 26.3472 20.75 24 20.75C23.488 20.75 22.9987 20.6598 22.5461 20.495C21.9175 20.2662 21.1115 20.3279 20.5486 20.8908L19.2626 22.1768C19.2157 22.2237 19.1521 22.25 19.0858 22.25H18C17.3096 22.25 16.75 22.8096 16.75 23.5V24.25H15.5C14.8096 24.25 14.25 24.8096 14.25 25.5V26.5C14.25 26.6381 14.1381 26.75 14 26.75H12C11.8619 26.75 11.75 26.6381 11.75 26.5V23.9538C11.75 23.8817 11.7811 23.8131 11.8354 23.7656L19.1524 17.3632C19.5404 17.0238 19.7275 16.556 19.7673 16.1137ZM24 10.75C20.9997 10.75 18.5369 13.0473 18.2733 15.9794C18.2614 16.1115 18.2107 16.1941 18.1646 16.2344L10.8476 22.6368C10.4678 22.9691 10.25 23.4491 10.25 23.9538V26.5C10.25 27.4665 11.0335 28.25 12 28.25H14C14.9665 28.25 15.75 27.4665 15.75 26.5V25.75H17C17.6904 25.75 18.25 25.1904 18.25 24.5V23.75H19.0858C19.5499 23.75 19.995 23.5656 20.3232 23.2374L21.6092 21.9514C21.6738 21.8868 21.8277 21.8298 22.033 21.9045C22.6476 22.1283 23.3104 22.25 24 22.25C27.1756 22.25 29.75 19.6756 29.75 16.5C29.75 13.3244 27.1756 10.75 24 10.75ZM25 16.5C25.5523 16.5 26 16.0523 26 15.5C26 14.9477 25.5523 14.5 25 14.5C24.4477 14.5 24 14.9477 24 15.5C24 16.0523 24.4477 16.5 25 16.5Z",
|
|
368
|
-
fill: "black"
|
|
369
|
-
}
|
|
370
|
-
)
|
|
371
|
-
] });
|
|
372
|
-
}
|
|
373
357
|
|
|
374
358
|
// src/assets/icon/CloseEyeIcon.tsx
|
|
375
359
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
@@ -1109,6 +1093,9 @@ function TonLightIcon2({ size = 40, ...props }) {
|
|
|
1109
1093
|
);
|
|
1110
1094
|
}
|
|
1111
1095
|
|
|
1096
|
+
// src/assets/icon/ErrorRoundIcon.tsx
|
|
1097
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
1098
|
+
|
|
1112
1099
|
// src/hooks/useLayout.tsx
|
|
1113
1100
|
var import_react = require("react");
|
|
1114
1101
|
function useDownMd() {
|
|
@@ -1125,9 +1112,9 @@ function useDownMd() {
|
|
|
1125
1112
|
return isBelowMd;
|
|
1126
1113
|
}
|
|
1127
1114
|
|
|
1128
|
-
// src/
|
|
1115
|
+
// src/ui/Overlay/index.tsx
|
|
1129
1116
|
var import_react2 = require("react");
|
|
1130
|
-
var
|
|
1117
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
1131
1118
|
function Overlay({
|
|
1132
1119
|
isOpen = false,
|
|
1133
1120
|
children,
|
|
@@ -1143,7 +1130,7 @@ function Overlay({
|
|
|
1143
1130
|
document.body.style.overflow = "";
|
|
1144
1131
|
};
|
|
1145
1132
|
}, [isOpen]);
|
|
1146
|
-
return isOpen ? /* @__PURE__ */ (0,
|
|
1133
|
+
return isOpen ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
1147
1134
|
"div",
|
|
1148
1135
|
{
|
|
1149
1136
|
className: "matchid-overlay",
|
|
@@ -1152,11 +1139,11 @@ function Overlay({
|
|
|
1152
1139
|
},
|
|
1153
1140
|
children
|
|
1154
1141
|
}
|
|
1155
|
-
) : /* @__PURE__ */ (0,
|
|
1142
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, {});
|
|
1156
1143
|
}
|
|
1157
1144
|
|
|
1158
|
-
// src/
|
|
1159
|
-
var
|
|
1145
|
+
// src/ui/Modal/index.tsx
|
|
1146
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
1160
1147
|
function Modal({
|
|
1161
1148
|
children,
|
|
1162
1149
|
isOpen,
|
|
@@ -1164,10 +1151,10 @@ function Modal({
|
|
|
1164
1151
|
zIndex = 100,
|
|
1165
1152
|
className = ""
|
|
1166
1153
|
}) {
|
|
1167
|
-
return /* @__PURE__ */ (0,
|
|
1154
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Overlay, { isOpen, zIndex, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: `matchid-modal ${className}`, style: {
|
|
1168
1155
|
width
|
|
1169
1156
|
}, children: [
|
|
1170
|
-
/* @__PURE__ */ (0,
|
|
1157
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "matchid-modal-mobile-header" }),
|
|
1171
1158
|
children
|
|
1172
1159
|
] }) });
|
|
1173
1160
|
}
|
|
@@ -1181,13 +1168,13 @@ function ModalWithHeader({
|
|
|
1181
1168
|
...props
|
|
1182
1169
|
}) {
|
|
1183
1170
|
const isDownMd = useDownMd();
|
|
1184
|
-
return /* @__PURE__ */ (0,
|
|
1185
|
-
/* @__PURE__ */ (0,
|
|
1186
|
-
/* @__PURE__ */ (0,
|
|
1187
|
-
onBack && /* @__PURE__ */ (0,
|
|
1188
|
-
/* @__PURE__ */ (0,
|
|
1171
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Modal, { ...props, children: [
|
|
1172
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: `matchid-modal-header ${showBorder ? "matchid-modal-header-border" : ""}`, children: [
|
|
1173
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "matchid-modal-header-content", children: [
|
|
1174
|
+
onBack && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(ArrowLeftIcon, { height: isDownMd ? 20 : 25, width: isDownMd ? 20 : 24, className: "matchid-modal-header-back", onClick: onBack }),
|
|
1175
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "matchid-modal-header-title", children: title })
|
|
1189
1176
|
] }),
|
|
1190
|
-
onClose && /* @__PURE__ */ (0,
|
|
1177
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30, className: "matchid-modal-header-close", onClick: onClose })
|
|
1191
1178
|
] }),
|
|
1192
1179
|
children
|
|
1193
1180
|
] });
|
|
@@ -1221,8 +1208,8 @@ function getAppClientId() {
|
|
|
1221
1208
|
return "react-sdk-" + getVersion();
|
|
1222
1209
|
}
|
|
1223
1210
|
|
|
1224
|
-
// src/
|
|
1225
|
-
var
|
|
1211
|
+
// src/ui/Button/index.tsx
|
|
1212
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
1226
1213
|
function Button({
|
|
1227
1214
|
size = "df",
|
|
1228
1215
|
disabled = false,
|
|
@@ -1241,7 +1228,7 @@ function Button({
|
|
|
1241
1228
|
onClick && onClick();
|
|
1242
1229
|
}
|
|
1243
1230
|
};
|
|
1244
|
-
return /* @__PURE__ */ (0,
|
|
1231
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
1245
1232
|
"button",
|
|
1246
1233
|
{
|
|
1247
1234
|
type,
|
|
@@ -1251,14 +1238,14 @@ function Button({
|
|
|
1251
1238
|
...style
|
|
1252
1239
|
},
|
|
1253
1240
|
onClick: onAction,
|
|
1254
|
-
children: loading ? /* @__PURE__ */ (0,
|
|
1241
|
+
children: loading ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(LoadingIcon_default, { className: "matchid-btn-loading-icon", color: "var(--matchid-btn-loading-color)" }) : children
|
|
1255
1242
|
}
|
|
1256
1243
|
);
|
|
1257
1244
|
}
|
|
1258
1245
|
|
|
1259
|
-
// src/
|
|
1246
|
+
// src/ui/Input/index.tsx
|
|
1260
1247
|
var import_react3 = require("react");
|
|
1261
|
-
var
|
|
1248
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
1262
1249
|
function Input({
|
|
1263
1250
|
onChange,
|
|
1264
1251
|
type,
|
|
@@ -1268,17 +1255,17 @@ function Input({
|
|
|
1268
1255
|
}) {
|
|
1269
1256
|
const [inputType, setInputType] = (0, import_react3.useState)(type);
|
|
1270
1257
|
const isDownMd = useDownMd();
|
|
1271
|
-
return /* @__PURE__ */ (0,
|
|
1258
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
|
|
1272
1259
|
"div",
|
|
1273
1260
|
{
|
|
1274
1261
|
className: `matchid-input-box ${props.value && props.value.length > 0 ? "matchid-input-has-content" : ""} ${className}`,
|
|
1275
1262
|
children: [
|
|
1276
|
-
/* @__PURE__ */ (0,
|
|
1277
|
-
props.value && props.value.length > 0 && /* @__PURE__ */ (0,
|
|
1263
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("input", { type: inputType, onChange, ...props, className: "matchid-input-field" }),
|
|
1264
|
+
props.value && props.value.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "matchid-input-delete-icon", onClick: (e) => {
|
|
1278
1265
|
if (onChange) {
|
|
1279
1266
|
onChange({ target: { value: "" } });
|
|
1280
1267
|
}
|
|
1281
|
-
}, children: /* @__PURE__ */ (0,
|
|
1268
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
1282
1269
|
DeleteRoundIcon,
|
|
1283
1270
|
{
|
|
1284
1271
|
height: isDownMd ? 16 : 21,
|
|
@@ -1286,17 +1273,17 @@ function Input({
|
|
|
1286
1273
|
color: "var(--matchid-input-delete-icon-color)"
|
|
1287
1274
|
}
|
|
1288
1275
|
) }),
|
|
1289
|
-
type === "password" && /* @__PURE__ */ (0,
|
|
1276
|
+
type === "password" && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "matchid-input-eye-icon", onClick: () => {
|
|
1290
1277
|
setInputType(inputType === "password" ? "text" : "password");
|
|
1291
|
-
}, children: inputType === "password" ? /* @__PURE__ */ (0,
|
|
1278
|
+
}, children: inputType === "password" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CloseEyeIcon, { size: isDownMd ? 16 : 20 }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(OpenEyeIcon, { size: isDownMd ? 16 : 20 }) }),
|
|
1292
1279
|
after
|
|
1293
1280
|
]
|
|
1294
1281
|
}
|
|
1295
1282
|
);
|
|
1296
1283
|
}
|
|
1297
1284
|
|
|
1298
|
-
// src/
|
|
1299
|
-
var
|
|
1285
|
+
// src/ui/Field/index.tsx
|
|
1286
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
1300
1287
|
function Field({
|
|
1301
1288
|
label,
|
|
1302
1289
|
children,
|
|
@@ -1304,19 +1291,19 @@ function Field({
|
|
|
1304
1291
|
required,
|
|
1305
1292
|
className = ""
|
|
1306
1293
|
}) {
|
|
1307
|
-
return /* @__PURE__ */ (0,
|
|
1308
|
-
/* @__PURE__ */ (0,
|
|
1309
|
-
required && /* @__PURE__ */ (0,
|
|
1294
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: `matchid-field-box ${className}`, children: [
|
|
1295
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "matchid-field-label", children: [
|
|
1296
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "matchid-field-required", children: "*" }),
|
|
1310
1297
|
label
|
|
1311
1298
|
] }),
|
|
1312
1299
|
children,
|
|
1313
|
-
error && /* @__PURE__ */ (0,
|
|
1300
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "matchid-field-error", children: error })
|
|
1314
1301
|
] });
|
|
1315
1302
|
}
|
|
1316
1303
|
|
|
1317
1304
|
// src/components/EmailModal/StepEmail.tsx
|
|
1318
1305
|
var import_react_intl = require("react-intl");
|
|
1319
|
-
var
|
|
1306
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
1320
1307
|
function StepEmail(props) {
|
|
1321
1308
|
const intl = (0, import_react_intl.useIntl)();
|
|
1322
1309
|
const [emailVal, setEmailVal] = (0, import_react4.useState)("");
|
|
@@ -1331,10 +1318,10 @@ function StepEmail(props) {
|
|
|
1331
1318
|
const onContinue = async () => {
|
|
1332
1319
|
props.onContinue(emailVal);
|
|
1333
1320
|
};
|
|
1334
|
-
return /* @__PURE__ */ (0,
|
|
1335
|
-
/* @__PURE__ */ (0,
|
|
1321
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "matchid-email-email-box", children: [
|
|
1322
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Field, { label: intl.formatMessage({
|
|
1336
1323
|
id: "emailAddress"
|
|
1337
|
-
}), children: /* @__PURE__ */ (0,
|
|
1324
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
1338
1325
|
Input,
|
|
1339
1326
|
{
|
|
1340
1327
|
placeholder: intl.formatMessage({
|
|
@@ -1344,57 +1331,15 @@ function StepEmail(props) {
|
|
|
1344
1331
|
value: emailVal
|
|
1345
1332
|
}
|
|
1346
1333
|
) }),
|
|
1347
|
-
/* @__PURE__ */ (0,
|
|
1334
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Button, { disabled: !canContinue, style: {
|
|
1348
1335
|
marginTop: "64px"
|
|
1349
|
-
}, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0,
|
|
1336
|
+
}, onClick: onContinue, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_intl.FormattedMessage, { id: "continue" }) })
|
|
1350
1337
|
] });
|
|
1351
1338
|
}
|
|
1352
1339
|
|
|
1353
1340
|
// src/store/useLocalStore.ts
|
|
1354
1341
|
var import_zustand = require("zustand");
|
|
1355
1342
|
var import_middleware = require("zustand/middleware");
|
|
1356
|
-
var persistedState = (0, import_middleware.persist)(
|
|
1357
|
-
(set) => ({
|
|
1358
|
-
appid: "",
|
|
1359
|
-
token: "",
|
|
1360
|
-
did: "",
|
|
1361
|
-
mid: "",
|
|
1362
|
-
overview: null,
|
|
1363
|
-
theme: "light",
|
|
1364
|
-
setOverview: (overview) => set({
|
|
1365
|
-
overview,
|
|
1366
|
-
address: overview.address,
|
|
1367
|
-
did: overview.did,
|
|
1368
|
-
mid: overview.mid
|
|
1369
|
-
}),
|
|
1370
|
-
endpoints: {
|
|
1371
|
-
back: "https://api.matchid.ai/",
|
|
1372
|
-
auth: "https://auth.matchid.ai/"
|
|
1373
|
-
},
|
|
1374
|
-
setDid: (did) => set({ did }),
|
|
1375
|
-
setToken: (token) => set({ token }),
|
|
1376
|
-
setAppid: (appid) => set({ appid }),
|
|
1377
|
-
setMid: (mid) => set({ mid }),
|
|
1378
|
-
logout: () => set({ token: "", did: "", mid: "", address: "", overview: null }),
|
|
1379
|
-
setTheme: (theme) => set({ theme }),
|
|
1380
|
-
setEndpoints: (endpoints) => set({ endpoints }),
|
|
1381
|
-
address: "",
|
|
1382
|
-
setAddress: (address) => set({ address }),
|
|
1383
|
-
locale: "en",
|
|
1384
|
-
setLocale: (locale) => set({ locale }),
|
|
1385
|
-
wallet: {
|
|
1386
|
-
type: "UserPasscode"
|
|
1387
|
-
},
|
|
1388
|
-
setWallet: (wallet) => set({ wallet })
|
|
1389
|
-
}),
|
|
1390
|
-
{ name: "match-local" }
|
|
1391
|
-
);
|
|
1392
|
-
var useLocalStore = (0, import_zustand.create)((0, import_middleware.devtools)(persistedState));
|
|
1393
|
-
var localStore = useLocalStore;
|
|
1394
|
-
var useLocalStore_default = useLocalStore;
|
|
1395
|
-
|
|
1396
|
-
// src/hooks/useUserInfo.tsx
|
|
1397
|
-
var import_react16 = require("react");
|
|
1398
1343
|
|
|
1399
1344
|
// src/api/request.ts
|
|
1400
1345
|
var import_axios = __toESM(require("axios"));
|
|
@@ -1654,14 +1599,63 @@ var getAppConfigApi = () => {
|
|
|
1654
1599
|
});
|
|
1655
1600
|
};
|
|
1656
1601
|
|
|
1657
|
-
// src/
|
|
1658
|
-
var
|
|
1602
|
+
// src/store/useLocalStore.ts
|
|
1603
|
+
var persistedState = (0, import_middleware.persist)(
|
|
1604
|
+
(set) => ({
|
|
1605
|
+
appid: "",
|
|
1606
|
+
token: "",
|
|
1607
|
+
did: "",
|
|
1608
|
+
mid: "",
|
|
1609
|
+
overview: null,
|
|
1610
|
+
theme: "light",
|
|
1611
|
+
setOverview: (overview) => set({
|
|
1612
|
+
overview,
|
|
1613
|
+
address: overview.address,
|
|
1614
|
+
did: overview.did,
|
|
1615
|
+
mid: overview.mid
|
|
1616
|
+
}),
|
|
1617
|
+
refreshOverview: async () => {
|
|
1618
|
+
const res = await getOverviewInfoApi();
|
|
1619
|
+
if (res.data) {
|
|
1620
|
+
set({ overview: res.data });
|
|
1621
|
+
set({ address: res.data.address });
|
|
1622
|
+
set({ did: res.data.did });
|
|
1623
|
+
set({ mid: res.data.mid });
|
|
1624
|
+
}
|
|
1625
|
+
},
|
|
1626
|
+
endpoints: {
|
|
1627
|
+
back: "https://api.matchid.ai/",
|
|
1628
|
+
auth: "https://auth.matchid.ai/"
|
|
1629
|
+
},
|
|
1630
|
+
setDid: (did) => set({ did }),
|
|
1631
|
+
setToken: (token) => set({ token }),
|
|
1632
|
+
setAppid: (appid) => set({ appid }),
|
|
1633
|
+
setMid: (mid) => set({ mid }),
|
|
1634
|
+
logout: () => set({ token: "", did: "", mid: "", address: "", overview: null }),
|
|
1635
|
+
setTheme: (theme) => set({ theme }),
|
|
1636
|
+
setEndpoints: (endpoints) => set({ endpoints }),
|
|
1637
|
+
address: "",
|
|
1638
|
+
setAddress: (address) => set({ address }),
|
|
1639
|
+
locale: "en",
|
|
1640
|
+
setLocale: (locale) => set({ locale }),
|
|
1641
|
+
wallet: {
|
|
1642
|
+
type: "UserPasscode"
|
|
1643
|
+
},
|
|
1644
|
+
setWallet: (wallet) => set({ wallet }),
|
|
1645
|
+
chainId: 698,
|
|
1646
|
+
setChainId: (chainId) => set({ chainId })
|
|
1647
|
+
}),
|
|
1648
|
+
{ name: "match-local" }
|
|
1649
|
+
);
|
|
1650
|
+
var useLocalStore = (0, import_zustand.create)((0, import_middleware.devtools)(persistedState));
|
|
1651
|
+
var localStore = useLocalStore;
|
|
1652
|
+
var useLocalStore_default = useLocalStore;
|
|
1659
1653
|
|
|
1660
|
-
// src/
|
|
1661
|
-
var
|
|
1654
|
+
// src/hooks/useUserInfo.tsx
|
|
1655
|
+
var import_react18 = require("react");
|
|
1662
1656
|
|
|
1663
|
-
// src/
|
|
1664
|
-
var
|
|
1657
|
+
// src/MatchContext.tsx
|
|
1658
|
+
var import_react17 = require("react");
|
|
1665
1659
|
|
|
1666
1660
|
// src/hooks/useMatchEvents.ts
|
|
1667
1661
|
var import_react5 = require("react");
|
|
@@ -1701,18 +1695,8 @@ var import_viem = require("viem");
|
|
|
1701
1695
|
var import_zustand2 = require("zustand");
|
|
1702
1696
|
var useStore = (0, import_zustand2.create)((set) => ({
|
|
1703
1697
|
walletReady: false,
|
|
1704
|
-
setWalletReady: (inited) => set({ walletReady: inited })
|
|
1705
|
-
recoveryModal: {
|
|
1706
|
-
open: false,
|
|
1707
|
-
success: async () => {
|
|
1708
|
-
},
|
|
1709
|
-
close: async () => {
|
|
1710
|
-
}
|
|
1711
|
-
},
|
|
1712
|
-
setRecoveryModal: (params) => set({ recoveryModal: params }),
|
|
1713
|
-
closeRecoveryModal: () => set({ recoveryModal: { open: false } })
|
|
1698
|
+
setWalletReady: (inited) => set({ walletReady: inited })
|
|
1714
1699
|
}));
|
|
1715
|
-
var useStore_default = useStore;
|
|
1716
1700
|
|
|
1717
1701
|
// src/hooks/useWallet.tsx
|
|
1718
1702
|
var import_accounts = require("viem/accounts");
|
|
@@ -1724,39 +1708,39 @@ var import_viem3 = require("viem");
|
|
|
1724
1708
|
var import_zustand3 = require("zustand");
|
|
1725
1709
|
|
|
1726
1710
|
// src/hooks/useConfig.tsx
|
|
1727
|
-
var
|
|
1711
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
1728
1712
|
var DEFAULT_WALLET_METHODS = ["evm", "sol", "btc", "tron", "ton"];
|
|
1729
1713
|
var WALLET_METHODS = ["evm", "sol", "btc", "tron", "ton"];
|
|
1730
1714
|
function useWalletConfig() {
|
|
1731
1715
|
const isDownMd = useDownMd();
|
|
1732
1716
|
const walletMap = {
|
|
1733
1717
|
evm: {
|
|
1734
|
-
icon: /* @__PURE__ */ (0,
|
|
1735
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
1718
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(EVMDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
1719
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(EVMLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
1736
1720
|
name: "EVM",
|
|
1737
1721
|
method: "evm"
|
|
1738
1722
|
},
|
|
1739
1723
|
sol: {
|
|
1740
|
-
icon: /* @__PURE__ */ (0,
|
|
1741
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
1724
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SOLDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
1725
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SOLLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
1742
1726
|
name: "SOL",
|
|
1743
1727
|
method: "sol"
|
|
1744
1728
|
},
|
|
1745
1729
|
btc: {
|
|
1746
|
-
icon: /* @__PURE__ */ (0,
|
|
1747
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
1730
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(BTCDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
1731
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(BTCLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
1748
1732
|
name: "BTC",
|
|
1749
1733
|
method: "btc"
|
|
1750
1734
|
},
|
|
1751
1735
|
tron: {
|
|
1752
|
-
icon: /* @__PURE__ */ (0,
|
|
1753
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
1736
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TRXDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
1737
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TRXLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
1754
1738
|
name: "TRON",
|
|
1755
1739
|
method: "tron"
|
|
1756
1740
|
},
|
|
1757
1741
|
ton: {
|
|
1758
|
-
icon: /* @__PURE__ */ (0,
|
|
1759
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
1742
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TonLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
1743
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TonLightIcon2, { size: isDownMd ? 36 : 40 }),
|
|
1760
1744
|
name: "TON",
|
|
1761
1745
|
method: "ton"
|
|
1762
1746
|
}
|
|
@@ -1818,291 +1802,6 @@ var useWalletModalStore = (0, import_zustand3.create)((set) => ({
|
|
|
1818
1802
|
|
|
1819
1803
|
// src/hooks/useWallet.tsx
|
|
1820
1804
|
var AppClientId = "react-sdk-" + getVersion();
|
|
1821
|
-
function useWallet() {
|
|
1822
|
-
const { appid, token, overview, address, wallet: walletConfig } = useLocalStore_default();
|
|
1823
|
-
const { setRecoveryModal, closeRecoveryModal, walletReady } = useStore_default();
|
|
1824
|
-
const { open: openHashPanel } = useHashPanelStore();
|
|
1825
|
-
const initCore = ({
|
|
1826
|
-
did,
|
|
1827
|
-
address: address2
|
|
1828
|
-
}) => {
|
|
1829
|
-
return window.matchProvider.waitUntilWalletMessage(
|
|
1830
|
-
{
|
|
1831
|
-
method: "initCore",
|
|
1832
|
-
data: {
|
|
1833
|
-
AppId: appid,
|
|
1834
|
-
AppClientId,
|
|
1835
|
-
UserId: did,
|
|
1836
|
-
AccessToken: token,
|
|
1837
|
-
Address: address2
|
|
1838
|
-
}
|
|
1839
|
-
}
|
|
1840
|
-
);
|
|
1841
|
-
};
|
|
1842
|
-
const generateEmbeddedWallets = async (data) => {
|
|
1843
|
-
return await window.matchProvider.waitUntilWalletMessage({
|
|
1844
|
-
method: "generateEmbeddedWallets",
|
|
1845
|
-
data
|
|
1846
|
-
});
|
|
1847
|
-
};
|
|
1848
|
-
const recoveryEmbeddedWallets = async (data) => {
|
|
1849
|
-
return await window.matchProvider.waitUntilWalletMessage({
|
|
1850
|
-
method: "recoveryEmbeddedWallets",
|
|
1851
|
-
data
|
|
1852
|
-
});
|
|
1853
|
-
};
|
|
1854
|
-
const isRecovered = async () => {
|
|
1855
|
-
const res = await window.matchProvider.waitUntilWalletMessage({
|
|
1856
|
-
method: "isRecovered"
|
|
1857
|
-
});
|
|
1858
|
-
return res.isRecovered;
|
|
1859
|
-
};
|
|
1860
|
-
const recoverAfter = async ({
|
|
1861
|
-
chainType,
|
|
1862
|
-
handle
|
|
1863
|
-
}) => {
|
|
1864
|
-
return new Promise(async (resolve, reject) => {
|
|
1865
|
-
const res = await isRecovered();
|
|
1866
|
-
matchlog_default.log("sdk.mpc.isRecovered", res);
|
|
1867
|
-
if (res) {
|
|
1868
|
-
await recoveryEmbeddedWallets({ chainType, recoveryType: "user_passcode_recovery_key" });
|
|
1869
|
-
await handle(resolve, reject);
|
|
1870
|
-
return;
|
|
1871
|
-
}
|
|
1872
|
-
setRecoveryModal({
|
|
1873
|
-
chainType,
|
|
1874
|
-
open: true,
|
|
1875
|
-
success: async () => {
|
|
1876
|
-
closeRecoveryModal();
|
|
1877
|
-
matchlog_default.log("sdk.mpc.recover", "Success");
|
|
1878
|
-
await handle(resolve, reject);
|
|
1879
|
-
},
|
|
1880
|
-
close: async () => {
|
|
1881
|
-
closeRecoveryModal();
|
|
1882
|
-
reject(new Error("recover modal close"));
|
|
1883
|
-
}
|
|
1884
|
-
});
|
|
1885
|
-
await initCore({
|
|
1886
|
-
address: overview?.address || "",
|
|
1887
|
-
did: overview?.did || ""
|
|
1888
|
-
});
|
|
1889
|
-
});
|
|
1890
|
-
};
|
|
1891
|
-
const signMessage2 = async ({
|
|
1892
|
-
message,
|
|
1893
|
-
chainType = "ethereum" /* Ethereum */
|
|
1894
|
-
}) => {
|
|
1895
|
-
const getSign = async (resolve, reject) => {
|
|
1896
|
-
try {
|
|
1897
|
-
const recoverRes = await window.matchProvider.waitUntilWalletMessage({
|
|
1898
|
-
method: "signMessage",
|
|
1899
|
-
data: {
|
|
1900
|
-
message,
|
|
1901
|
-
chainType
|
|
1902
|
-
}
|
|
1903
|
-
});
|
|
1904
|
-
resolve(recoverRes.message);
|
|
1905
|
-
} catch (error) {
|
|
1906
|
-
console.error("qwe-sign-error", error);
|
|
1907
|
-
reject(error);
|
|
1908
|
-
}
|
|
1909
|
-
};
|
|
1910
|
-
return await recoverAfter({
|
|
1911
|
-
handle: getSign,
|
|
1912
|
-
chainType
|
|
1913
|
-
});
|
|
1914
|
-
};
|
|
1915
|
-
const signTransaction = async ({
|
|
1916
|
-
transaction,
|
|
1917
|
-
chainType = "ethereum" /* Ethereum */,
|
|
1918
|
-
chain
|
|
1919
|
-
}) => {
|
|
1920
|
-
console.log("qwe-sign-transaction", transaction);
|
|
1921
|
-
const getSign = async (resolve, reject) => {
|
|
1922
|
-
try {
|
|
1923
|
-
const recoverRes = await window.matchProvider.waitUntilWalletMessage({
|
|
1924
|
-
method: "signTransaction",
|
|
1925
|
-
data: {
|
|
1926
|
-
transaction,
|
|
1927
|
-
chainType,
|
|
1928
|
-
chain
|
|
1929
|
-
}
|
|
1930
|
-
});
|
|
1931
|
-
resolve(recoverRes.message);
|
|
1932
|
-
} catch (error) {
|
|
1933
|
-
console.error("qwe-sign-error", error);
|
|
1934
|
-
reject(error);
|
|
1935
|
-
}
|
|
1936
|
-
};
|
|
1937
|
-
return await recoverAfter({
|
|
1938
|
-
handle: getSign,
|
|
1939
|
-
chainType
|
|
1940
|
-
});
|
|
1941
|
-
};
|
|
1942
|
-
const evmAccount = (0, import_react6.useMemo)(() => {
|
|
1943
|
-
return address ? (0, import_accounts.toAccount)({
|
|
1944
|
-
address,
|
|
1945
|
-
async signMessage({ message }) {
|
|
1946
|
-
return await signMessage2({
|
|
1947
|
-
message,
|
|
1948
|
-
chainType: "ethereum" /* Ethereum */
|
|
1949
|
-
});
|
|
1950
|
-
},
|
|
1951
|
-
async signTransaction(transaction, options) {
|
|
1952
|
-
const { account, chain, ...restTransaction } = transaction;
|
|
1953
|
-
console.log("qwe-sign-transaction", restTransaction, options);
|
|
1954
|
-
return await signTransaction({
|
|
1955
|
-
transaction: {
|
|
1956
|
-
...restTransaction
|
|
1957
|
-
},
|
|
1958
|
-
chainType: "ethereum" /* Ethereum */,
|
|
1959
|
-
chain: {
|
|
1960
|
-
id: chain?.id || restTransaction.chainId,
|
|
1961
|
-
name: chain?.name,
|
|
1962
|
-
nativeCurrency: {
|
|
1963
|
-
name: chain?.nativeCurrency?.name || "ETH",
|
|
1964
|
-
symbol: chain?.nativeCurrency?.symbol || "ETH",
|
|
1965
|
-
decimals: chain?.nativeCurrency?.decimals || 18
|
|
1966
|
-
},
|
|
1967
|
-
rpcUrls: chain?.rpcUrls
|
|
1968
|
-
}
|
|
1969
|
-
});
|
|
1970
|
-
},
|
|
1971
|
-
async signTypedData(typedData) {
|
|
1972
|
-
return "0x";
|
|
1973
|
-
}
|
|
1974
|
-
}) : void 0;
|
|
1975
|
-
}, [address]);
|
|
1976
|
-
(0, import_react6.useEffect)(() => {
|
|
1977
|
-
matchlog_default.log("qwe-evmAccount", evmAccount);
|
|
1978
|
-
}, [evmAccount]);
|
|
1979
|
-
return {
|
|
1980
|
-
walletReady,
|
|
1981
|
-
evmAccount,
|
|
1982
|
-
address,
|
|
1983
|
-
initCore,
|
|
1984
|
-
signMessage: signMessage2,
|
|
1985
|
-
signTransaction,
|
|
1986
|
-
isRecovered,
|
|
1987
|
-
recoverAfter,
|
|
1988
|
-
generateEmbeddedWallets,
|
|
1989
|
-
recoveryEmbeddedWallets,
|
|
1990
|
-
createWalletClient: (parameters) => {
|
|
1991
|
-
if (!evmAccount) {
|
|
1992
|
-
return;
|
|
1993
|
-
}
|
|
1994
|
-
const obj = (0, import_viem2.createWalletClient)({
|
|
1995
|
-
...parameters,
|
|
1996
|
-
account: evmAccount
|
|
1997
|
-
});
|
|
1998
|
-
const sendTransaction = async (transaction) => {
|
|
1999
|
-
const getSign = async (resolve, reject) => {
|
|
2000
|
-
const { chain, ...restTransaction } = transaction;
|
|
2001
|
-
const chainId = chain ? chain.id : await obj.getChainId();
|
|
2002
|
-
const _chain = chain || obj.chain;
|
|
2003
|
-
const transactionId = Date.now().toString() + Math.random().toString().slice(6);
|
|
2004
|
-
window.matchProvider.transactionMessageIntervalMap[transactionId] = {
|
|
2005
|
-
transaction,
|
|
2006
|
-
func: async () => {
|
|
2007
|
-
try {
|
|
2008
|
-
const {
|
|
2009
|
-
chain: chain2,
|
|
2010
|
-
account,
|
|
2011
|
-
...prepareTransactionRequest
|
|
2012
|
-
// @ts-ignore
|
|
2013
|
-
} = await obj.prepareTransactionRequest(window.matchProvider.transactionMessageIntervalMap[transactionId].transaction);
|
|
2014
|
-
window.matchProvider.sendWalletMessage({
|
|
2015
|
-
method: "prepareTransactionRequest",
|
|
2016
|
-
data: {
|
|
2017
|
-
prepareTransactionRequest,
|
|
2018
|
-
transactionId
|
|
2019
|
-
}
|
|
2020
|
-
});
|
|
2021
|
-
} catch (error) {
|
|
2022
|
-
console.error(error);
|
|
2023
|
-
}
|
|
2024
|
-
},
|
|
2025
|
-
interval: setInterval(() => {
|
|
2026
|
-
window.matchProvider.transactionMessageIntervalMap[transactionId].func();
|
|
2027
|
-
}, 1e4)
|
|
2028
|
-
};
|
|
2029
|
-
try {
|
|
2030
|
-
const {
|
|
2031
|
-
chain: chain2,
|
|
2032
|
-
account,
|
|
2033
|
-
...prepareTransactionRequest
|
|
2034
|
-
// @ts-ignore
|
|
2035
|
-
} = await obj.prepareTransactionRequest(transaction);
|
|
2036
|
-
const { serializedTransaction } = await window.matchProvider.waitUntilWalletMessage({
|
|
2037
|
-
method: "sendTransaction",
|
|
2038
|
-
data: {
|
|
2039
|
-
transactionId,
|
|
2040
|
-
transaction: {
|
|
2041
|
-
...restTransaction
|
|
2042
|
-
},
|
|
2043
|
-
chainType: "ethereum" /* Ethereum */,
|
|
2044
|
-
chain: {
|
|
2045
|
-
id: chainId,
|
|
2046
|
-
name: _chain?.name,
|
|
2047
|
-
nativeCurrency: _chain?.nativeCurrency,
|
|
2048
|
-
rpcUrls: _chain?.rpcUrls
|
|
2049
|
-
},
|
|
2050
|
-
prepareTransactionRequest
|
|
2051
|
-
}
|
|
2052
|
-
});
|
|
2053
|
-
openHashPanel();
|
|
2054
|
-
const txHash = await obj.sendRawTransaction({
|
|
2055
|
-
serializedTransaction
|
|
2056
|
-
});
|
|
2057
|
-
openHashPanel({
|
|
2058
|
-
hash: txHash,
|
|
2059
|
-
chain: _chain
|
|
2060
|
-
});
|
|
2061
|
-
clearInterval(window.matchProvider.transactionMessageIntervalMap[transactionId].interval);
|
|
2062
|
-
delete window.matchProvider.transactionMessageIntervalMap[transactionId];
|
|
2063
|
-
resolve(txHash);
|
|
2064
|
-
} catch (error) {
|
|
2065
|
-
console.error("qwe-sign-error", error);
|
|
2066
|
-
clearInterval(window.matchProvider.transactionMessageIntervalMap[transactionId].interval);
|
|
2067
|
-
delete window.matchProvider.transactionMessageIntervalMap[transactionId];
|
|
2068
|
-
reject(error);
|
|
2069
|
-
}
|
|
2070
|
-
};
|
|
2071
|
-
return await recoverAfter({
|
|
2072
|
-
handle: getSign,
|
|
2073
|
-
chainType: "ethereum" /* Ethereum */
|
|
2074
|
-
});
|
|
2075
|
-
};
|
|
2076
|
-
const deployContract = async (parameters2) => {
|
|
2077
|
-
const { abi, args, bytecode, ...request3 } = parameters2;
|
|
2078
|
-
const calldata = (0, import_viem3.encodeDeployData)({ abi, args, bytecode });
|
|
2079
|
-
return await sendTransaction({
|
|
2080
|
-
...request3,
|
|
2081
|
-
data: calldata
|
|
2082
|
-
});
|
|
2083
|
-
};
|
|
2084
|
-
const writeContract = async (parameters2) => {
|
|
2085
|
-
const { abi, address: address2, args, dataSuffix, functionName, ...request3 } = parameters2;
|
|
2086
|
-
const data = (0, import_viem.encodeFunctionData)({
|
|
2087
|
-
abi,
|
|
2088
|
-
args,
|
|
2089
|
-
functionName
|
|
2090
|
-
});
|
|
2091
|
-
return await sendTransaction({
|
|
2092
|
-
data: `${data}${dataSuffix ? dataSuffix.replace("0x", "") : ""}`,
|
|
2093
|
-
to: address2,
|
|
2094
|
-
...request3
|
|
2095
|
-
});
|
|
2096
|
-
};
|
|
2097
|
-
return {
|
|
2098
|
-
...obj,
|
|
2099
|
-
sendTransaction,
|
|
2100
|
-
deployContract,
|
|
2101
|
-
writeContract
|
|
2102
|
-
};
|
|
2103
|
-
}
|
|
2104
|
-
};
|
|
2105
|
-
}
|
|
2106
1805
|
|
|
2107
1806
|
// src/hooks/useCopyClipboard.ts
|
|
2108
1807
|
var import_copy_to_clipboard = __toESM(require("copy-to-clipboard"));
|
|
@@ -2127,165 +1826,112 @@ function useCopyClipboard(timeout = 500) {
|
|
|
2127
1826
|
return [isCopied, staticCopy];
|
|
2128
1827
|
}
|
|
2129
1828
|
|
|
2130
|
-
// src/
|
|
2131
|
-
var
|
|
2132
|
-
var
|
|
2133
|
-
function PasswordModal({
|
|
2134
|
-
title,
|
|
2135
|
-
isOpen,
|
|
2136
|
-
onSuccess,
|
|
2137
|
-
chainType = "ethereum" /* Ethereum */,
|
|
2138
|
-
recoveryType = "user_passcode_recovery_key" /* UserPasscode */,
|
|
2139
|
-
...props
|
|
2140
|
-
}) {
|
|
2141
|
-
const { refreshOverview, overview } = useUserInfo();
|
|
2142
|
-
const { isLogin, did } = useUserInfo();
|
|
2143
|
-
const [password, setPassword] = (0, import_react8.useState)("");
|
|
2144
|
-
const [rePassword, setRePassword] = (0, import_react8.useState)("");
|
|
2145
|
-
const [error, setError] = (0, import_react8.useState)("");
|
|
2146
|
-
const { generateEmbeddedWallets, initCore } = useWallet();
|
|
2147
|
-
const { walletReady } = useStore_default();
|
|
2148
|
-
const intl = (0, import_react_intl2.useIntl)();
|
|
2149
|
-
const passwordError = (0, import_react8.useMemo)(() => {
|
|
2150
|
-
if (password.length < 6) return intl.formatMessage({
|
|
2151
|
-
id: "passwordMinError"
|
|
2152
|
-
}, {
|
|
2153
|
-
length: 6
|
|
2154
|
-
});
|
|
2155
|
-
return "";
|
|
2156
|
-
}, [password]);
|
|
2157
|
-
const rePasswordError = (0, import_react8.useMemo)(() => {
|
|
2158
|
-
if (rePassword != password) {
|
|
2159
|
-
return intl.formatMessage({
|
|
2160
|
-
id: "passwordMatchError"
|
|
2161
|
-
});
|
|
2162
|
-
}
|
|
2163
|
-
return "";
|
|
2164
|
-
}, [rePassword, password]);
|
|
2165
|
-
(0, import_react8.useEffect)(() => {
|
|
2166
|
-
if (isOpen) {
|
|
2167
|
-
setPassword("");
|
|
2168
|
-
setRePassword("");
|
|
2169
|
-
}
|
|
2170
|
-
}, [isOpen, overview]);
|
|
2171
|
-
const [isSubmitting, setIsSubmitting] = (0, import_react8.useState)(false);
|
|
2172
|
-
const onContinue = async () => {
|
|
2173
|
-
if (isSubmitting) return;
|
|
2174
|
-
try {
|
|
2175
|
-
setIsSubmitting(true);
|
|
2176
|
-
await initCore({
|
|
2177
|
-
did: overview?.did || "",
|
|
2178
|
-
address: ""
|
|
2179
|
-
});
|
|
2180
|
-
const address = await generateEmbeddedWallets({
|
|
2181
|
-
userPasscode: password,
|
|
2182
|
-
chainType,
|
|
2183
|
-
recoveryType
|
|
2184
|
-
});
|
|
2185
|
-
await refreshOverview();
|
|
2186
|
-
onSuccess && onSuccess();
|
|
2187
|
-
} catch (error2) {
|
|
2188
|
-
setError(error2.message);
|
|
2189
|
-
} finally {
|
|
2190
|
-
setIsSubmitting(false);
|
|
2191
|
-
}
|
|
2192
|
-
};
|
|
2193
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
2194
|
-
id: "passwordTitle"
|
|
2195
|
-
}), children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-box", children: [
|
|
2196
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-header", children: [
|
|
2197
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "matchid-password-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(PasswordRoundIcon, {}) }),
|
|
2198
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "matchid-password-header-content", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_intl2.FormattedMessage, { id: "passwordTips" }) })
|
|
2199
|
-
] }),
|
|
2200
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "matchid-password-content", children: [
|
|
2201
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Field, { label: intl.formatMessage({ id: "password" }), error: password.length > 0 && passwordError, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2202
|
-
Input,
|
|
2203
|
-
{
|
|
2204
|
-
placeholder: intl.formatMessage({ id: "passwordPlaceholder" }),
|
|
2205
|
-
maxLength: 32,
|
|
2206
|
-
type: "password",
|
|
2207
|
-
onChange: (e) => setPassword(e.target.value),
|
|
2208
|
-
value: password
|
|
2209
|
-
}
|
|
2210
|
-
) }),
|
|
2211
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Field, { label: intl.formatMessage({
|
|
2212
|
-
id: "rePassword"
|
|
2213
|
-
}), error: !walletReady ? intl.formatMessage({ id: "walletLoading" }) : rePassword.length > 0 ? rePasswordError || error : error, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2214
|
-
Input,
|
|
2215
|
-
{
|
|
2216
|
-
placeholder: intl.formatMessage({
|
|
2217
|
-
id: "rePasswordPlaceholder"
|
|
2218
|
-
}),
|
|
2219
|
-
maxLength: 32,
|
|
2220
|
-
onChange: (e) => setRePassword(e.target.value),
|
|
2221
|
-
value: rePassword,
|
|
2222
|
-
type: "password"
|
|
2223
|
-
}
|
|
2224
|
-
) })
|
|
2225
|
-
] }),
|
|
2226
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2227
|
-
Button,
|
|
2228
|
-
{
|
|
2229
|
-
disabled: password.length == 0 || !!passwordError || !!rePasswordError || !walletReady,
|
|
2230
|
-
highlight: true,
|
|
2231
|
-
block: true,
|
|
2232
|
-
size: "lg",
|
|
2233
|
-
onClick: onContinue,
|
|
2234
|
-
loading: isSubmitting,
|
|
2235
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_intl2.FormattedMessage, { id: "continue" })
|
|
2236
|
-
}
|
|
2237
|
-
)
|
|
2238
|
-
] }) });
|
|
2239
|
-
}
|
|
1829
|
+
// src/context/ModalContext.tsx
|
|
1830
|
+
var import_react11 = require("react");
|
|
1831
|
+
var import_react_dom = require("react-dom");
|
|
2240
1832
|
|
|
2241
|
-
// src/
|
|
2242
|
-
var import_react9 = require("react");
|
|
2243
|
-
var import_react_intl3 = require("react-intl");
|
|
1833
|
+
// src/ui/Drawer/index.tsx
|
|
2244
1834
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
2245
1835
|
|
|
2246
|
-
// src/
|
|
2247
|
-
var import_react10 = require("react");
|
|
2248
|
-
var import_react_intl4 = require("react-intl");
|
|
2249
|
-
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
2250
|
-
|
|
2251
|
-
// src/components/HashPanel/index.tsx
|
|
1836
|
+
// src/ui/HashPanel/index.tsx
|
|
2252
1837
|
var import_viem4 = require("viem");
|
|
2253
|
-
var
|
|
1838
|
+
var import_react8 = require("react");
|
|
2254
1839
|
var import_react_query = require("@tanstack/react-query");
|
|
2255
1840
|
|
|
2256
|
-
// src/
|
|
1841
|
+
// src/ui/ModalDrawer/index.tsx
|
|
1842
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
1843
|
+
|
|
1844
|
+
// src/ui/HashPanel/index.tsx
|
|
2257
1845
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
2258
1846
|
|
|
2259
|
-
// src/
|
|
1847
|
+
// src/ui/Popover/index.tsx
|
|
1848
|
+
var import_react9 = require("react");
|
|
2260
1849
|
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
1850
|
+
function Popover({
|
|
1851
|
+
children,
|
|
1852
|
+
content,
|
|
1853
|
+
position = "right",
|
|
1854
|
+
type = "hover",
|
|
1855
|
+
className = "",
|
|
1856
|
+
gap = "20px"
|
|
1857
|
+
}) {
|
|
1858
|
+
const [active, setActive] = (0, import_react9.useState)(false);
|
|
1859
|
+
return children && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
1860
|
+
"div",
|
|
1861
|
+
{
|
|
1862
|
+
onClick: () => {
|
|
1863
|
+
if (type == "click") {
|
|
1864
|
+
setActive(!active);
|
|
1865
|
+
}
|
|
1866
|
+
},
|
|
1867
|
+
className: `matchid-popover-box matchid-popover-${position} matchid-popover-${type} ${className} ${type == "click" && active ? "matchid-popover-click-active" : ""}`,
|
|
1868
|
+
children: [
|
|
1869
|
+
children,
|
|
1870
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { style: {
|
|
1871
|
+
paddingTop: gap
|
|
1872
|
+
}, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: `matchid-popover-content`, children: content }) })
|
|
1873
|
+
]
|
|
1874
|
+
}
|
|
1875
|
+
);
|
|
1876
|
+
}
|
|
2261
1877
|
|
|
2262
|
-
// src/
|
|
1878
|
+
// src/ui/Switch/index.tsx
|
|
2263
1879
|
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
2264
1880
|
|
|
2265
|
-
// src/
|
|
1881
|
+
// src/ui/AlphaAvatar/index.tsx
|
|
1882
|
+
var import_react10 = require("react");
|
|
2266
1883
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
2267
1884
|
|
|
1885
|
+
// src/ui/Radio/index.tsx
|
|
1886
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
1887
|
+
|
|
1888
|
+
// src/context/ModalContext.tsx
|
|
1889
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
1890
|
+
var ModalContext = (0, import_react11.createContext)(null);
|
|
1891
|
+
|
|
1892
|
+
// src/context/ToastContext.tsx
|
|
1893
|
+
var import_react12 = require("react");
|
|
1894
|
+
var import_react_dom2 = require("react-dom");
|
|
1895
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
1896
|
+
var ToastContext = (0, import_react12.createContext)(null);
|
|
1897
|
+
|
|
1898
|
+
// src/hooks/api/wallet.ts
|
|
1899
|
+
var import_react_query2 = require("@tanstack/react-query");
|
|
1900
|
+
|
|
1901
|
+
// src/hooks/useMatchChain.tsx
|
|
1902
|
+
var import_react13 = require("react");
|
|
1903
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
1904
|
+
|
|
1905
|
+
// src/hooks/useMatchWallet.tsx
|
|
1906
|
+
var import_react_qrcode = require("react-qrcode");
|
|
1907
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
1908
|
+
|
|
1909
|
+
// src/components/CEXBindModal/index.tsx
|
|
1910
|
+
var import_react14 = require("react");
|
|
1911
|
+
var import_react_intl2 = require("react-intl");
|
|
1912
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
1913
|
+
|
|
1914
|
+
// src/context/BusinessProvider.tsx
|
|
1915
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
1916
|
+
|
|
2268
1917
|
// src/context/index.tsx
|
|
2269
|
-
var
|
|
2270
|
-
// <MpcWalletProvider>
|
|
2271
|
-
require("react/jsx-runtime")
|
|
2272
|
-
);
|
|
1918
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
2273
1919
|
|
|
2274
1920
|
// src/hooks/useWalletInit.ts
|
|
2275
|
-
var
|
|
1921
|
+
var import_react15 = require("react");
|
|
2276
1922
|
var AppClientId2 = getAppClientId();
|
|
2277
1923
|
|
|
2278
1924
|
// src/hooks/useInit.tsx
|
|
2279
|
-
var
|
|
1925
|
+
var import_react16 = require("react");
|
|
2280
1926
|
|
|
2281
1927
|
// src/MatchContext.tsx
|
|
2282
|
-
var
|
|
2283
|
-
var
|
|
2284
|
-
var
|
|
2285
|
-
var queryClient = new
|
|
2286
|
-
var MatchContext = (0,
|
|
1928
|
+
var import_react_query3 = require("@tanstack/react-query");
|
|
1929
|
+
var import_react_intl3 = require("react-intl");
|
|
1930
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
1931
|
+
var queryClient = new import_react_query3.QueryClient();
|
|
1932
|
+
var MatchContext = (0, import_react17.createContext)(void 0);
|
|
2287
1933
|
var useMatch = () => {
|
|
2288
|
-
const context = (0,
|
|
1934
|
+
const context = (0, import_react17.useContext)(MatchContext);
|
|
2289
1935
|
if (context === void 0) {
|
|
2290
1936
|
throw new Error("useMatch must be used within a MatchProvider");
|
|
2291
1937
|
}
|
|
@@ -2304,7 +1950,8 @@ function useUserInfo() {
|
|
|
2304
1950
|
overview,
|
|
2305
1951
|
address,
|
|
2306
1952
|
endpoints,
|
|
2307
|
-
locale
|
|
1953
|
+
locale,
|
|
1954
|
+
refreshOverview
|
|
2308
1955
|
} = useLocalStore_default();
|
|
2309
1956
|
const { events, login } = useMatch();
|
|
2310
1957
|
const { open: SOLOpen } = useSOLModalStore();
|
|
@@ -2313,7 +1960,7 @@ function useUserInfo() {
|
|
|
2313
1960
|
const { open: BTCOpen } = useBTCModalStore();
|
|
2314
1961
|
const { open: CEXBindOpen } = useCEXBindModalStore();
|
|
2315
1962
|
const walletModalStore = useWalletModalStore();
|
|
2316
|
-
const isLogin = (0,
|
|
1963
|
+
const isLogin = (0, import_react18.useMemo)(() => !!token && !!overview, [token, overview]);
|
|
2317
1964
|
const logout = async () => {
|
|
2318
1965
|
try {
|
|
2319
1966
|
await toLogoutApi();
|
|
@@ -2413,12 +2060,6 @@ function useUserInfo() {
|
|
|
2413
2060
|
}
|
|
2414
2061
|
return false;
|
|
2415
2062
|
};
|
|
2416
|
-
const refreshOverview = async () => {
|
|
2417
|
-
const res = await getOverviewInfoApi();
|
|
2418
|
-
if (res.data) {
|
|
2419
|
-
setOverview(res.data);
|
|
2420
|
-
}
|
|
2421
|
-
};
|
|
2422
2063
|
const bindWallet = async () => {
|
|
2423
2064
|
if (!token) {
|
|
2424
2065
|
throw new Error("You must login first");
|
|
@@ -2551,29 +2192,29 @@ function useUserInfo() {
|
|
|
2551
2192
|
}
|
|
2552
2193
|
|
|
2553
2194
|
// src/components/EmailModal/StepVerify.tsx
|
|
2554
|
-
var
|
|
2195
|
+
var import_react19 = require("react");
|
|
2555
2196
|
|
|
2556
2197
|
// src/config/index.tsx
|
|
2557
2198
|
var EMAIL_INTERVAL = 60;
|
|
2558
2199
|
var EMAIL_CODE_LENGTH = 6;
|
|
2559
2200
|
|
|
2560
2201
|
// src/components/EmailModal/StepVerify.tsx
|
|
2561
|
-
var
|
|
2562
|
-
var
|
|
2202
|
+
var import_react_intl4 = require("react-intl");
|
|
2203
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
2563
2204
|
function StepVerify(props) {
|
|
2564
|
-
const intl = (0,
|
|
2205
|
+
const intl = (0, import_react_intl4.useIntl)();
|
|
2565
2206
|
const { getLoginEmailCode, loginByEmail } = useUserInfo();
|
|
2566
|
-
const [error, setError] = (0,
|
|
2567
|
-
const [code, setCode] = (0,
|
|
2568
|
-
const [sending, setSending] = (0,
|
|
2569
|
-
const [submitting, setSubmitting] = (0,
|
|
2570
|
-
const sendTimeRef = (0,
|
|
2571
|
-
const [sendBtnText, setSendBtnText] = (0,
|
|
2207
|
+
const [error, setError] = (0, import_react19.useState)("");
|
|
2208
|
+
const [code, setCode] = (0, import_react19.useState)("");
|
|
2209
|
+
const [sending, setSending] = (0, import_react19.useState)(false);
|
|
2210
|
+
const [submitting, setSubmitting] = (0, import_react19.useState)(false);
|
|
2211
|
+
const sendTimeRef = (0, import_react19.useRef)(0);
|
|
2212
|
+
const [sendBtnText, setSendBtnText] = (0, import_react19.useState)(intl.formatMessage({
|
|
2572
2213
|
id: "send"
|
|
2573
2214
|
}));
|
|
2574
2215
|
const intervalTime = EMAIL_INTERVAL;
|
|
2575
2216
|
const codeLength = EMAIL_CODE_LENGTH;
|
|
2576
|
-
const intervalRef = (0,
|
|
2217
|
+
const intervalRef = (0, import_react19.useRef)(null);
|
|
2577
2218
|
const isDownMd = useDownMd();
|
|
2578
2219
|
const onSend = async () => {
|
|
2579
2220
|
if (sendTimeRef.current > 0) {
|
|
@@ -2604,7 +2245,7 @@ function StepVerify(props) {
|
|
|
2604
2245
|
setSending(false);
|
|
2605
2246
|
}
|
|
2606
2247
|
};
|
|
2607
|
-
(0,
|
|
2248
|
+
(0, import_react19.useEffect)(() => {
|
|
2608
2249
|
onSend();
|
|
2609
2250
|
return () => {
|
|
2610
2251
|
if (intervalRef.current) {
|
|
@@ -2612,7 +2253,7 @@ function StepVerify(props) {
|
|
|
2612
2253
|
}
|
|
2613
2254
|
};
|
|
2614
2255
|
}, []);
|
|
2615
|
-
const canContinue = (0,
|
|
2256
|
+
const canContinue = (0, import_react19.useMemo)(() => {
|
|
2616
2257
|
return code.length === codeLength;
|
|
2617
2258
|
}, [code]);
|
|
2618
2259
|
const onContinue = async () => {
|
|
@@ -2636,17 +2277,17 @@ function StepVerify(props) {
|
|
|
2636
2277
|
setSubmitting(false);
|
|
2637
2278
|
}
|
|
2638
2279
|
};
|
|
2639
|
-
return /* @__PURE__ */ (0,
|
|
2640
|
-
/* @__PURE__ */ (0,
|
|
2641
|
-
/* @__PURE__ */ (0,
|
|
2642
|
-
/* @__PURE__ */ (0,
|
|
2643
|
-
/* @__PURE__ */ (0,
|
|
2644
|
-
/* @__PURE__ */ (0,
|
|
2280
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-email-verify-box", children: [
|
|
2281
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-email-verify-header", children: [
|
|
2282
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
|
|
2283
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
|
|
2284
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
|
|
2285
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_intl4.FormattedMessage, { id: "sendEmailTips" }) })
|
|
2645
2286
|
] })
|
|
2646
2287
|
] }),
|
|
2647
|
-
/* @__PURE__ */ (0,
|
|
2288
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Field, { label: intl.formatMessage({
|
|
2648
2289
|
id: "verificationCode"
|
|
2649
|
-
}), error, children: /* @__PURE__ */ (0,
|
|
2290
|
+
}), error, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
2650
2291
|
Input,
|
|
2651
2292
|
{
|
|
2652
2293
|
placeholder: intl.formatMessage({
|
|
@@ -2656,7 +2297,7 @@ function StepVerify(props) {
|
|
|
2656
2297
|
maxLength: codeLength,
|
|
2657
2298
|
onChange: (e) => setCode(e.target.value),
|
|
2658
2299
|
value: code,
|
|
2659
|
-
after: /* @__PURE__ */ (0,
|
|
2300
|
+
after: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
2660
2301
|
Button,
|
|
2661
2302
|
{
|
|
2662
2303
|
highlight: true,
|
|
@@ -2675,13 +2316,13 @@ function StepVerify(props) {
|
|
|
2675
2316
|
)
|
|
2676
2317
|
}
|
|
2677
2318
|
) }),
|
|
2678
|
-
/* @__PURE__ */ (0,
|
|
2319
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_intl4.FormattedMessage, { id: "continue" }) })
|
|
2679
2320
|
] });
|
|
2680
2321
|
}
|
|
2681
2322
|
|
|
2682
2323
|
// src/components/EmailModal/index.tsx
|
|
2683
|
-
var
|
|
2684
|
-
var
|
|
2324
|
+
var import_react_intl5 = require("react-intl");
|
|
2325
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
2685
2326
|
function EmailModal({
|
|
2686
2327
|
isOpen = false,
|
|
2687
2328
|
width = 480,
|
|
@@ -2689,16 +2330,16 @@ function EmailModal({
|
|
|
2689
2330
|
onBack,
|
|
2690
2331
|
onLogin
|
|
2691
2332
|
}) {
|
|
2692
|
-
const [step, setStep] = (0,
|
|
2693
|
-
const [emailVal, setEmailVal] = (0,
|
|
2694
|
-
const intl = (0,
|
|
2695
|
-
(0,
|
|
2333
|
+
const [step, setStep] = (0, import_react20.useState)("input");
|
|
2334
|
+
const [emailVal, setEmailVal] = (0, import_react20.useState)("");
|
|
2335
|
+
const intl = (0, import_react_intl5.useIntl)();
|
|
2336
|
+
(0, import_react20.useEffect)(() => {
|
|
2696
2337
|
if (!isOpen) {
|
|
2697
2338
|
setStep("input");
|
|
2698
2339
|
setEmailVal("");
|
|
2699
2340
|
}
|
|
2700
2341
|
}, [isOpen]);
|
|
2701
|
-
return /* @__PURE__ */ (0,
|
|
2342
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
2702
2343
|
ModalWithHeader,
|
|
2703
2344
|
{
|
|
2704
2345
|
isOpen,
|
|
@@ -2708,53 +2349,22 @@ function EmailModal({
|
|
|
2708
2349
|
id: "email"
|
|
2709
2350
|
}),
|
|
2710
2351
|
onBack: step == "verify" ? () => setStep("input") : onBack,
|
|
2711
|
-
children: step === "input" ? /* @__PURE__ */ (0,
|
|
2352
|
+
children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
|
|
2712
2353
|
setEmailVal(email);
|
|
2713
2354
|
setStep("verify");
|
|
2714
|
-
} }) : /* @__PURE__ */ (0,
|
|
2715
|
-
}
|
|
2716
|
-
);
|
|
2717
|
-
}
|
|
2718
|
-
|
|
2719
|
-
// src/components/Popover/index.tsx
|
|
2720
|
-
var import_react19 = require("react");
|
|
2721
|
-
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
2722
|
-
function Popover({
|
|
2723
|
-
children,
|
|
2724
|
-
content,
|
|
2725
|
-
position = "right",
|
|
2726
|
-
type = "hover",
|
|
2727
|
-
className = "",
|
|
2728
|
-
gap = "20px"
|
|
2729
|
-
}) {
|
|
2730
|
-
const [active, setActive] = (0, import_react19.useState)(false);
|
|
2731
|
-
return children && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
2732
|
-
"div",
|
|
2733
|
-
{
|
|
2734
|
-
onClick: () => {
|
|
2735
|
-
if (type == "click") {
|
|
2736
|
-
setActive(!active);
|
|
2737
|
-
}
|
|
2738
|
-
},
|
|
2739
|
-
className: `matchid-popover-box matchid-popover-${position} matchid-popover-${type} ${className} ${type == "click" && active ? "matchid-popover-click-active" : ""}`,
|
|
2740
|
-
children: [
|
|
2741
|
-
children,
|
|
2742
|
-
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { style: {
|
|
2743
|
-
paddingTop: gap
|
|
2744
|
-
}, className: `matchid-popover-area`, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: `matchid-popover-content`, children: content }) })
|
|
2745
|
-
]
|
|
2355
|
+
} }) : /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
|
|
2746
2356
|
}
|
|
2747
2357
|
);
|
|
2748
2358
|
}
|
|
2749
2359
|
|
|
2750
2360
|
// src/components/LoginBox/index.tsx
|
|
2751
|
-
var
|
|
2752
|
-
var
|
|
2361
|
+
var import_react21 = require("react");
|
|
2362
|
+
var import_react_intl6 = require("react-intl");
|
|
2753
2363
|
|
|
2754
2364
|
// src/hooks/useAppConfig.ts
|
|
2755
|
-
var
|
|
2365
|
+
var import_react_query4 = require("@tanstack/react-query");
|
|
2756
2366
|
function useAppConfig() {
|
|
2757
|
-
const query = (0,
|
|
2367
|
+
const query = (0, import_react_query4.useQuery)({
|
|
2758
2368
|
queryKey: ["appConfig"],
|
|
2759
2369
|
queryFn: async () => {
|
|
2760
2370
|
const res = await getAppConfigApi();
|
|
@@ -2772,7 +2382,7 @@ function useAppConfig() {
|
|
|
2772
2382
|
}
|
|
2773
2383
|
|
|
2774
2384
|
// src/components/LoginBox/index.tsx
|
|
2775
|
-
var
|
|
2385
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
2776
2386
|
var RecommendItem = ({
|
|
2777
2387
|
icon,
|
|
2778
2388
|
name,
|
|
@@ -2781,20 +2391,20 @@ var RecommendItem = ({
|
|
|
2781
2391
|
children,
|
|
2782
2392
|
footer
|
|
2783
2393
|
}) => {
|
|
2784
|
-
return /* @__PURE__ */ (0,
|
|
2785
|
-
/* @__PURE__ */ (0,
|
|
2786
|
-
/* @__PURE__ */ (0,
|
|
2787
|
-
/* @__PURE__ */ (0,
|
|
2788
|
-
/* @__PURE__ */ (0,
|
|
2394
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-recommend-method", children: [
|
|
2395
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
|
|
2396
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
|
|
2397
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
|
|
2398
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
|
|
2789
2399
|
] }),
|
|
2790
|
-
footer ? footer : children ? /* @__PURE__ */ (0,
|
|
2400
|
+
footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
2791
2401
|
ArrowDownIcon,
|
|
2792
2402
|
{
|
|
2793
2403
|
className: `matchid-login-recommend-method-arrow ${showChildren ? "matchid-login-recommend-method-arrow-active" : ""}`,
|
|
2794
2404
|
size: 20,
|
|
2795
2405
|
color: "var(--matchid-arrow-color)"
|
|
2796
2406
|
}
|
|
2797
|
-
) : /* @__PURE__ */ (0,
|
|
2407
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
2798
2408
|
ArrowRightIcon,
|
|
2799
2409
|
{
|
|
2800
2410
|
className: "matchid-login-recommend-method-arrow",
|
|
@@ -2803,7 +2413,7 @@ var RecommendItem = ({
|
|
|
2803
2413
|
}
|
|
2804
2414
|
)
|
|
2805
2415
|
] }),
|
|
2806
|
-
children && /* @__PURE__ */ (0,
|
|
2416
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
2807
2417
|
"div",
|
|
2808
2418
|
{
|
|
2809
2419
|
className: `matchid-login-recommend-method-popover ${showChildren ? "matchid-login-recommend-method-popover-active" : ""}`,
|
|
@@ -2819,7 +2429,7 @@ function LoginBox({
|
|
|
2819
2429
|
inModal = false
|
|
2820
2430
|
}) {
|
|
2821
2431
|
const config = useAppConfig();
|
|
2822
|
-
const methodConfig = (0,
|
|
2432
|
+
const methodConfig = (0, import_react21.useMemo)(() => {
|
|
2823
2433
|
if (recommendMethods || methods || walletMethods) {
|
|
2824
2434
|
return {
|
|
2825
2435
|
recommendMethods: recommendMethods ? recommendMethods : walletMethods ? ["wallet"] : [],
|
|
@@ -2861,82 +2471,82 @@ function LoginBox({
|
|
|
2861
2471
|
walletMethods: walletMethodList
|
|
2862
2472
|
};
|
|
2863
2473
|
}, [config.platform, recommendMethods, methods, walletMethods]);
|
|
2864
|
-
const [emailOpen, setEmailOpen] = (0,
|
|
2474
|
+
const [emailOpen, setEmailOpen] = (0, import_react21.useState)(false);
|
|
2865
2475
|
const { login } = useUserInfo();
|
|
2866
|
-
const [showWallet, setShowWallet] = (0,
|
|
2867
|
-
const intl = (0,
|
|
2476
|
+
const [showWallet, setShowWallet] = (0, import_react21.useState)(false);
|
|
2477
|
+
const intl = (0, import_react_intl6.useIntl)();
|
|
2868
2478
|
const isDownMd = useDownMd();
|
|
2869
2479
|
const methodMap = {
|
|
2870
2480
|
wallet: {
|
|
2871
|
-
icon: /* @__PURE__ */ (0,
|
|
2481
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
|
|
2872
2482
|
name: intl.formatMessage({ id: "wallet" }),
|
|
2873
2483
|
onClick: () => setShowWallet(!showWallet),
|
|
2874
2484
|
type: "wallet"
|
|
2875
2485
|
},
|
|
2876
2486
|
email: {
|
|
2877
|
-
icon: /* @__PURE__ */ (0,
|
|
2487
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
|
|
2878
2488
|
name: intl.formatMessage({ id: "email" }),
|
|
2879
2489
|
onClick: () => {
|
|
2880
2490
|
setEmailOpen(true);
|
|
2881
2491
|
}
|
|
2882
2492
|
},
|
|
2883
2493
|
google: {
|
|
2884
|
-
icon: /* @__PURE__ */ (0,
|
|
2494
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
|
|
2885
2495
|
name: "Google",
|
|
2886
2496
|
onClick: () => login("google")
|
|
2887
2497
|
},
|
|
2888
2498
|
twitter: {
|
|
2889
|
-
icon: /* @__PURE__ */ (0,
|
|
2499
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
|
|
2890
2500
|
name: "X",
|
|
2891
2501
|
onClick: () => login("twitter")
|
|
2892
2502
|
},
|
|
2893
2503
|
telegram: {
|
|
2894
|
-
icon: /* @__PURE__ */ (0,
|
|
2504
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
|
|
2895
2505
|
name: "Telegram",
|
|
2896
2506
|
onClick: () => login("telegram")
|
|
2897
2507
|
},
|
|
2898
2508
|
github: {
|
|
2899
|
-
icon: /* @__PURE__ */ (0,
|
|
2509
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
|
|
2900
2510
|
name: "Github",
|
|
2901
2511
|
onClick: () => login("github")
|
|
2902
2512
|
},
|
|
2903
2513
|
discord: {
|
|
2904
|
-
icon: /* @__PURE__ */ (0,
|
|
2514
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
|
|
2905
2515
|
name: "Discord",
|
|
2906
2516
|
onClick: () => login("discord")
|
|
2907
2517
|
},
|
|
2908
2518
|
linkedin: {
|
|
2909
|
-
icon: /* @__PURE__ */ (0,
|
|
2519
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
|
|
2910
2520
|
name: "LinkedIn",
|
|
2911
2521
|
onClick: () => login("linkedin")
|
|
2912
2522
|
},
|
|
2913
2523
|
facebook: {
|
|
2914
|
-
icon: /* @__PURE__ */ (0,
|
|
2524
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
|
|
2915
2525
|
name: "Facebook",
|
|
2916
2526
|
onClick: () => login("facebook")
|
|
2917
2527
|
},
|
|
2918
2528
|
youtube: {
|
|
2919
|
-
icon: /* @__PURE__ */ (0,
|
|
2529
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
|
|
2920
2530
|
name: "Youtube",
|
|
2921
2531
|
onClick: () => login("youtube")
|
|
2922
2532
|
}
|
|
2923
2533
|
};
|
|
2924
2534
|
const { walletMap } = useWalletConfig();
|
|
2925
|
-
return /* @__PURE__ */ (0,
|
|
2926
|
-
(!inModal || !emailOpen) && /* @__PURE__ */ (0,
|
|
2927
|
-
/* @__PURE__ */ (0,
|
|
2928
|
-
return /* @__PURE__ */ (0,
|
|
2535
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
|
|
2536
|
+
(!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-box", children: [
|
|
2537
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-recommend-list", children: methodConfig.recommendMethods.map((m) => {
|
|
2538
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
2929
2539
|
RecommendItem,
|
|
2930
2540
|
{
|
|
2931
2541
|
icon: methodMap[m]?.icon,
|
|
2932
2542
|
name: methodMap[m]?.name,
|
|
2933
2543
|
onClick: methodMap[m]?.onClick,
|
|
2934
2544
|
showChildren: m == "wallet" && showWallet,
|
|
2935
|
-
children: m == "wallet" && /* @__PURE__ */ (0,
|
|
2936
|
-
/* @__PURE__ */ (0,
|
|
2937
|
-
/* @__PURE__ */ (0,
|
|
2545
|
+
children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
|
|
2546
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
|
|
2547
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: methodConfig.walletMethods.map((n) => {
|
|
2938
2548
|
const m2 = walletMap[n];
|
|
2939
|
-
return /* @__PURE__ */ (0,
|
|
2549
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
2940
2550
|
"div",
|
|
2941
2551
|
{
|
|
2942
2552
|
className: "matchid-login-recommend-wallet-item",
|
|
@@ -2944,16 +2554,16 @@ function LoginBox({
|
|
|
2944
2554
|
login(m2.method);
|
|
2945
2555
|
},
|
|
2946
2556
|
children: [
|
|
2947
|
-
/* @__PURE__ */ (0,
|
|
2948
|
-
/* @__PURE__ */ (0,
|
|
2949
|
-
/* @__PURE__ */ (0,
|
|
2557
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
|
|
2558
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
|
|
2559
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
2950
2560
|
"div",
|
|
2951
2561
|
{
|
|
2952
2562
|
className: "matchid-login-recommend-wallet-item-hover-icon",
|
|
2953
2563
|
children: m2.activeIcon
|
|
2954
2564
|
}
|
|
2955
2565
|
),
|
|
2956
|
-
/* @__PURE__ */ (0,
|
|
2566
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
2957
2567
|
"span",
|
|
2958
2568
|
{
|
|
2959
2569
|
className: "matchid-login-recommend-wallet-item-name",
|
|
@@ -2961,7 +2571,7 @@ function LoginBox({
|
|
|
2961
2571
|
}
|
|
2962
2572
|
)
|
|
2963
2573
|
] }),
|
|
2964
|
-
/* @__PURE__ */ (0,
|
|
2574
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
2965
2575
|
ArrowRightIcon,
|
|
2966
2576
|
{
|
|
2967
2577
|
className: "matchid-login-recommend-wallet-item-arrow",
|
|
@@ -2979,10 +2589,10 @@ function LoginBox({
|
|
|
2979
2589
|
m
|
|
2980
2590
|
);
|
|
2981
2591
|
}) }),
|
|
2982
|
-
methodConfig.methods.length > 0 && /* @__PURE__ */ (0,
|
|
2983
|
-
/* @__PURE__ */ (0,
|
|
2984
|
-
/* @__PURE__ */ (0,
|
|
2985
|
-
return /* @__PURE__ */ (0,
|
|
2592
|
+
methodConfig.methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "matchid-login-other", children: [
|
|
2593
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_intl6.FormattedMessage, { id: "otherLoginMethods" }) }),
|
|
2594
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "matchid-login-method-box", children: methodConfig.methods.map((m) => {
|
|
2595
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
2986
2596
|
"div",
|
|
2987
2597
|
{
|
|
2988
2598
|
className: "matchid-login-method-item",
|
|
@@ -2995,7 +2605,7 @@ function LoginBox({
|
|
|
2995
2605
|
}) })
|
|
2996
2606
|
] })
|
|
2997
2607
|
] }),
|
|
2998
|
-
/* @__PURE__ */ (0,
|
|
2608
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
2999
2609
|
EmailModal,
|
|
3000
2610
|
{
|
|
3001
2611
|
isOpen: emailOpen,
|
|
@@ -3011,56 +2621,56 @@ function LoginBox({
|
|
|
3011
2621
|
}
|
|
3012
2622
|
|
|
3013
2623
|
// src/components/LoginButton/index.tsx
|
|
3014
|
-
var
|
|
2624
|
+
var import_react23 = require("react");
|
|
3015
2625
|
|
|
3016
2626
|
// src/components/LoginPanel/index.tsx
|
|
3017
|
-
var
|
|
3018
|
-
var
|
|
2627
|
+
var import_react_intl7 = require("react-intl");
|
|
2628
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
3019
2629
|
function LoginPanel({
|
|
3020
2630
|
header,
|
|
3021
2631
|
onClose,
|
|
3022
2632
|
...props
|
|
3023
2633
|
}) {
|
|
3024
2634
|
const isDownMd = useDownMd();
|
|
3025
|
-
return /* @__PURE__ */ (0,
|
|
3026
|
-
header ? header : /* @__PURE__ */ (0,
|
|
3027
|
-
/* @__PURE__ */ (0,
|
|
3028
|
-
/* @__PURE__ */ (0,
|
|
3029
|
-
/* @__PURE__ */ (0,
|
|
2635
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-login-panel", children: [
|
|
2636
|
+
header ? header : /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-login-panel-header", children: [
|
|
2637
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
|
|
2638
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl7.FormattedMessage, { id: "loginTitle" }) }),
|
|
2639
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_intl7.FormattedMessage, { id: "loginTips" }) })
|
|
3030
2640
|
] }),
|
|
3031
|
-
onClose && /* @__PURE__ */ (0,
|
|
2641
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
|
|
3032
2642
|
] }),
|
|
3033
|
-
/* @__PURE__ */ (0,
|
|
3034
|
-
/* @__PURE__ */ (0,
|
|
2643
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-panel-divide" }),
|
|
2644
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(LoginBox, { ...props }) })
|
|
3035
2645
|
] });
|
|
3036
2646
|
}
|
|
3037
2647
|
|
|
3038
2648
|
// src/components/LoginModal/index.tsx
|
|
3039
|
-
var
|
|
2649
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
3040
2650
|
function LoginModal({
|
|
3041
2651
|
isOpen = false,
|
|
3042
2652
|
width = 480,
|
|
3043
2653
|
...props
|
|
3044
2654
|
}) {
|
|
3045
2655
|
const { isLogin } = useUserInfo();
|
|
3046
|
-
return /* @__PURE__ */ (0,
|
|
2656
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
3047
2657
|
Modal,
|
|
3048
2658
|
{
|
|
3049
2659
|
isOpen: isOpen && !isLogin,
|
|
3050
2660
|
width,
|
|
3051
|
-
children: /* @__PURE__ */ (0,
|
|
2661
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(LoginPanel, { ...props, inModal: true })
|
|
3052
2662
|
}
|
|
3053
2663
|
);
|
|
3054
2664
|
}
|
|
3055
2665
|
|
|
3056
2666
|
// src/components/UserPopover/index.tsx
|
|
3057
|
-
var
|
|
2667
|
+
var import_react22 = require("react");
|
|
3058
2668
|
|
|
3059
2669
|
// src/assets/icon/ProfileIcon.tsx
|
|
3060
|
-
var
|
|
2670
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
3061
2671
|
function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
3062
|
-
return /* @__PURE__ */ (0,
|
|
3063
|
-
/* @__PURE__ */ (0,
|
|
2672
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
2673
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
3064
2674
|
"path",
|
|
3065
2675
|
{
|
|
3066
2676
|
fillRule: "evenodd",
|
|
@@ -3069,7 +2679,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
|
3069
2679
|
fill: color
|
|
3070
2680
|
}
|
|
3071
2681
|
),
|
|
3072
|
-
/* @__PURE__ */ (0,
|
|
2682
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
3073
2683
|
"path",
|
|
3074
2684
|
{
|
|
3075
2685
|
fillRule: "evenodd",
|
|
@@ -3082,11 +2692,11 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
|
3082
2692
|
}
|
|
3083
2693
|
|
|
3084
2694
|
// src/components/UserPopover/index.tsx
|
|
3085
|
-
var
|
|
3086
|
-
var
|
|
2695
|
+
var import_react_intl8 = require("react-intl");
|
|
2696
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
3087
2697
|
function UserContent() {
|
|
3088
2698
|
const { logout, address, username } = useUserInfo();
|
|
3089
|
-
const [logouting, setLogouting] = (0,
|
|
2699
|
+
const [logouting, setLogouting] = (0, import_react22.useState)(false);
|
|
3090
2700
|
const onLogout = async () => {
|
|
3091
2701
|
if (logouting) return;
|
|
3092
2702
|
try {
|
|
@@ -3104,34 +2714,34 @@ function UserContent() {
|
|
|
3104
2714
|
rightIcon,
|
|
3105
2715
|
onClick
|
|
3106
2716
|
}) => {
|
|
3107
|
-
return /* @__PURE__ */ (0,
|
|
3108
|
-
/* @__PURE__ */ (0,
|
|
2717
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
|
|
2718
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
|
|
3109
2719
|
icon,
|
|
3110
|
-
/* @__PURE__ */ (0,
|
|
2720
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "matchid-user-popover-item-text", children })
|
|
3111
2721
|
] }),
|
|
3112
2722
|
rightIcon
|
|
3113
2723
|
] });
|
|
3114
2724
|
};
|
|
3115
2725
|
const UserDivider = () => {
|
|
3116
|
-
return /* @__PURE__ */ (0,
|
|
2726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: `matchid-user-popover-divider` });
|
|
3117
2727
|
};
|
|
3118
|
-
const [usernameOpen, setUsernameOpen] = (0,
|
|
2728
|
+
const [usernameOpen, setUsernameOpen] = (0, import_react22.useState)(false);
|
|
3119
2729
|
const [copied, setCopied] = useCopyClipboard();
|
|
3120
|
-
const intl = (0,
|
|
3121
|
-
return /* @__PURE__ */ (0,
|
|
3122
|
-
/* @__PURE__ */ (0,
|
|
3123
|
-
/* @__PURE__ */ (0,
|
|
2730
|
+
const intl = (0, import_react_intl8.useIntl)();
|
|
2731
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-user-popover-content", children: [
|
|
2732
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "matchid-user-popover-list", children: [
|
|
2733
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserItem, { onClick: () => {
|
|
3124
2734
|
setCopied(address);
|
|
3125
|
-
}, icon: copied ? /* @__PURE__ */ (0,
|
|
3126
|
-
/* @__PURE__ */ (0,
|
|
3127
|
-
/* @__PURE__ */ (0,
|
|
2735
|
+
}, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
|
|
2736
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserDivider, {}),
|
|
2737
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserItem, { onClick: () => {
|
|
3128
2738
|
setUsernameOpen(true);
|
|
3129
|
-
}, icon: /* @__PURE__ */ (0,
|
|
2739
|
+
}, icon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
|
|
3130
2740
|
id: "setUsername"
|
|
3131
2741
|
}) })
|
|
3132
2742
|
] }),
|
|
3133
|
-
/* @__PURE__ */ (0,
|
|
3134
|
-
/* @__PURE__ */ (0,
|
|
2743
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_react_intl8.FormattedMessage, { id: "disconnect" }) }),
|
|
2744
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
|
|
3135
2745
|
setUsernameOpen(false);
|
|
3136
2746
|
}, onSuccess: () => {
|
|
3137
2747
|
setUsernameOpen(false);
|
|
@@ -3142,12 +2752,12 @@ function UserPopover({
|
|
|
3142
2752
|
children,
|
|
3143
2753
|
...props
|
|
3144
2754
|
}) {
|
|
3145
|
-
return /* @__PURE__ */ (0,
|
|
2755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(UserContent, {}), children });
|
|
3146
2756
|
}
|
|
3147
2757
|
|
|
3148
2758
|
// src/components/LoginButton/index.tsx
|
|
3149
|
-
var
|
|
3150
|
-
var
|
|
2759
|
+
var import_react_intl9 = require("react-intl");
|
|
2760
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
3151
2761
|
function LoginButton({
|
|
3152
2762
|
loginRender,
|
|
3153
2763
|
methods,
|
|
@@ -3159,12 +2769,12 @@ function LoginButton({
|
|
|
3159
2769
|
walletMethods,
|
|
3160
2770
|
...props
|
|
3161
2771
|
}) {
|
|
3162
|
-
const intl = (0,
|
|
2772
|
+
const intl = (0, import_react_intl9.useIntl)();
|
|
3163
2773
|
const { isLogin, username } = useUserInfo();
|
|
3164
|
-
const [loginOpen, setLoginOpen] = (0,
|
|
2774
|
+
const [loginOpen, setLoginOpen] = (0, import_react23.useState)(false);
|
|
3165
2775
|
if (!isLogin) {
|
|
3166
|
-
return /* @__PURE__ */ (0,
|
|
3167
|
-
/* @__PURE__ */ (0,
|
|
2776
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
|
|
2777
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
3168
2778
|
LoginModal,
|
|
3169
2779
|
{
|
|
3170
2780
|
methods,
|
|
@@ -3174,32 +2784,32 @@ function LoginButton({
|
|
|
3174
2784
|
onClose: () => setLoginOpen(false)
|
|
3175
2785
|
}
|
|
3176
2786
|
),
|
|
3177
|
-
/* @__PURE__ */ (0,
|
|
3178
|
-
/* @__PURE__ */ (0,
|
|
3179
|
-
/* @__PURE__ */ (0,
|
|
2787
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
|
|
2788
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(UnLoginIcon_default, {}),
|
|
2789
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_react_intl9.FormattedMessage, { id: "login" }) })
|
|
3180
2790
|
] })
|
|
3181
2791
|
] });
|
|
3182
2792
|
}
|
|
3183
|
-
return loginRender ? /* @__PURE__ */ (0,
|
|
3184
|
-
/* @__PURE__ */ (0,
|
|
3185
|
-
/* @__PURE__ */ (0,
|
|
2793
|
+
return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_jsx_runtime74.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
|
|
2794
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(LoginIcon_default, {}),
|
|
2795
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
|
|
3186
2796
|
id: "user"
|
|
3187
2797
|
}) })
|
|
3188
2798
|
] }) });
|
|
3189
2799
|
}
|
|
3190
2800
|
|
|
3191
2801
|
// src/components/UsernameModal/index.tsx
|
|
3192
|
-
var
|
|
2802
|
+
var import_react24 = require("react");
|
|
3193
2803
|
|
|
3194
2804
|
// src/assets/icon/InfoRoundIcon.tsx
|
|
3195
|
-
var
|
|
2805
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
3196
2806
|
function InfoRoundIcon({
|
|
3197
2807
|
size,
|
|
3198
2808
|
color = "#6E6E6E",
|
|
3199
2809
|
...props
|
|
3200
2810
|
}) {
|
|
3201
|
-
return /* @__PURE__ */ (0,
|
|
3202
|
-
/* @__PURE__ */ (0,
|
|
2811
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
|
|
2812
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsx)("g", { clipPath: "url(#clip0_418_7746)", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
3203
2813
|
"path",
|
|
3204
2814
|
{
|
|
3205
2815
|
fillRule: "evenodd",
|
|
@@ -3208,21 +2818,21 @@ function InfoRoundIcon({
|
|
|
3208
2818
|
fill: color
|
|
3209
2819
|
}
|
|
3210
2820
|
) }),
|
|
3211
|
-
/* @__PURE__ */ (0,
|
|
2821
|
+
/* @__PURE__ */ (0, import_jsx_runtime75.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("clipPath", { id: "clip0_418_7746", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("rect", { width: "16", height: "16", fill: "white" }) }) })
|
|
3212
2822
|
] });
|
|
3213
2823
|
}
|
|
3214
2824
|
|
|
3215
2825
|
// src/components/UsernameModal/index.tsx
|
|
3216
|
-
var
|
|
3217
|
-
var
|
|
2826
|
+
var import_react_intl10 = require("react-intl");
|
|
2827
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
3218
2828
|
var ValidItem = ({
|
|
3219
2829
|
success = false,
|
|
3220
2830
|
text
|
|
3221
2831
|
}) => {
|
|
3222
2832
|
const isDownMd = useDownMd();
|
|
3223
|
-
return /* @__PURE__ */ (0,
|
|
3224
|
-
success ? /* @__PURE__ */ (0,
|
|
3225
|
-
/* @__PURE__ */ (0,
|
|
2833
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
|
|
2834
|
+
success ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(InfoRoundIcon, { size: isDownMd ? 12 : 16 }),
|
|
2835
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { children: text })
|
|
3226
2836
|
] });
|
|
3227
2837
|
};
|
|
3228
2838
|
function UsernameModal({
|
|
@@ -3233,23 +2843,23 @@ function UsernameModal({
|
|
|
3233
2843
|
}) {
|
|
3234
2844
|
const { username, refreshOverview } = useUserInfo();
|
|
3235
2845
|
const { isLogin } = useUserInfo();
|
|
3236
|
-
const [val, setVal] = (0,
|
|
3237
|
-
const [error, setError] = (0,
|
|
2846
|
+
const [val, setVal] = (0, import_react24.useState)(username);
|
|
2847
|
+
const [error, setError] = (0, import_react24.useState)("");
|
|
3238
2848
|
const isDownMd = useDownMd();
|
|
3239
|
-
(0,
|
|
2849
|
+
(0, import_react24.useEffect)(() => {
|
|
3240
2850
|
if (isOpen) {
|
|
3241
2851
|
setVal(username);
|
|
3242
2852
|
setError("");
|
|
3243
2853
|
}
|
|
3244
2854
|
}, [isOpen]);
|
|
3245
|
-
const isValid = (0,
|
|
2855
|
+
const isValid = (0, import_react24.useMemo)(() => {
|
|
3246
2856
|
return isValidUsername(val);
|
|
3247
2857
|
}, [val]);
|
|
3248
|
-
const isLength = (0,
|
|
2858
|
+
const isLength = (0, import_react24.useMemo)(() => {
|
|
3249
2859
|
return val.length >= 2 && val.length <= 32;
|
|
3250
2860
|
}, [val]);
|
|
3251
2861
|
const isSafe = isValid && isLength;
|
|
3252
|
-
const [isSubmitting, setIsSubmitting] = (0,
|
|
2862
|
+
const [isSubmitting, setIsSubmitting] = (0, import_react24.useState)(false);
|
|
3253
2863
|
const onSubmit = async () => {
|
|
3254
2864
|
if (isSubmitting) return;
|
|
3255
2865
|
try {
|
|
@@ -3269,13 +2879,13 @@ function UsernameModal({
|
|
|
3269
2879
|
setIsSubmitting(false);
|
|
3270
2880
|
}
|
|
3271
2881
|
};
|
|
3272
|
-
const intl = (0,
|
|
3273
|
-
return /* @__PURE__ */ (0,
|
|
2882
|
+
const intl = (0, import_react_intl10.useIntl)();
|
|
2883
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
3274
2884
|
id: username ? "editUsernameTitle" : "setUsernameTitle"
|
|
3275
|
-
}), children: /* @__PURE__ */ (0,
|
|
3276
|
-
/* @__PURE__ */ (0,
|
|
2885
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "matchid-username-box", children: [
|
|
2886
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Field, { label: intl.formatMessage({
|
|
3277
2887
|
id: "username"
|
|
3278
|
-
}), error, children: /* @__PURE__ */ (0,
|
|
2888
|
+
}), error, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3279
2889
|
Input,
|
|
3280
2890
|
{
|
|
3281
2891
|
placeholder: intl.formatMessage({
|
|
@@ -3288,8 +2898,8 @@ function UsernameModal({
|
|
|
3288
2898
|
value: val
|
|
3289
2899
|
}
|
|
3290
2900
|
) }),
|
|
3291
|
-
/* @__PURE__ */ (0,
|
|
3292
|
-
/* @__PURE__ */ (0,
|
|
2901
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "matchid-valid", children: [
|
|
2902
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3293
2903
|
ValidItem,
|
|
3294
2904
|
{
|
|
3295
2905
|
success: isValid,
|
|
@@ -3298,21 +2908,21 @@ function UsernameModal({
|
|
|
3298
2908
|
})
|
|
3299
2909
|
}
|
|
3300
2910
|
),
|
|
3301
|
-
/* @__PURE__ */ (0,
|
|
2911
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
|
|
3302
2912
|
id: "usernameLengthError"
|
|
3303
2913
|
}) })
|
|
3304
2914
|
] }),
|
|
3305
|
-
/* @__PURE__ */ (0,
|
|
2915
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
|
|
3306
2916
|
marginTop: isDownMd ? "36px" : "64px"
|
|
3307
|
-
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0,
|
|
3308
|
-
/* @__PURE__ */ (0,
|
|
2917
|
+
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_react_intl10.FormattedMessage, { id: "confirm" }) }),
|
|
2918
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Button, { style: {
|
|
3309
2919
|
marginTop: isDownMd ? "12px" : "24px"
|
|
3310
|
-
}, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0,
|
|
2920
|
+
}, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_react_intl10.FormattedMessage, { id: "cancel" }) })
|
|
3311
2921
|
] }) });
|
|
3312
2922
|
}
|
|
3313
2923
|
|
|
3314
2924
|
// src/components/SOLModal/index.tsx
|
|
3315
|
-
var
|
|
2925
|
+
var import_react26 = __toESM(require("react"));
|
|
3316
2926
|
var import_web3 = require("@solana/web3.js");
|
|
3317
2927
|
var import_wallet_adapter_react = require("@solana/wallet-adapter-react");
|
|
3318
2928
|
var import_wallet_adapter_react_ui = require("@solana/wallet-adapter-react-ui");
|
|
@@ -3328,10 +2938,10 @@ var WalletAdapterNetwork;
|
|
|
3328
2938
|
// src/components/SOLModal/index.tsx
|
|
3329
2939
|
var import_wallet_adapter_wallets = require("@solana/wallet-adapter-wallets");
|
|
3330
2940
|
var import_styles = require("@solana/wallet-adapter-react-ui/styles.css");
|
|
3331
|
-
var
|
|
2941
|
+
var import_react_intl11 = require("react-intl");
|
|
3332
2942
|
|
|
3333
2943
|
// src/components/WalletModalContent/index.tsx
|
|
3334
|
-
var
|
|
2944
|
+
var import_react25 = require("react");
|
|
3335
2945
|
|
|
3336
2946
|
// src/assets/wallet.ts
|
|
3337
2947
|
var walletErrorImage = "data:image/png;base64,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";
|
|
@@ -3341,7 +2951,7 @@ var walletConnectImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEA
|
|
|
3341
2951
|
var walletSigningImage = "data:image/png;base64,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";
|
|
3342
2952
|
|
|
3343
2953
|
// src/components/WalletModalContent/index.tsx
|
|
3344
|
-
var
|
|
2954
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
3345
2955
|
function WalletModalContent({
|
|
3346
2956
|
status,
|
|
3347
2957
|
error,
|
|
@@ -3352,7 +2962,7 @@ function WalletModalContent({
|
|
|
3352
2962
|
address,
|
|
3353
2963
|
connected
|
|
3354
2964
|
}) {
|
|
3355
|
-
const pageData = (0,
|
|
2965
|
+
const pageData = (0, import_react25.useMemo)(() => {
|
|
3356
2966
|
if (status == "success") {
|
|
3357
2967
|
return {
|
|
3358
2968
|
btnText: "Disconnect Wallet",
|
|
@@ -3411,12 +3021,12 @@ function WalletModalContent({
|
|
|
3411
3021
|
statusImage: walletConnectImage
|
|
3412
3022
|
};
|
|
3413
3023
|
}, [visible, connected, status, error, address]);
|
|
3414
|
-
return /* @__PURE__ */ (0,
|
|
3415
|
-
/* @__PURE__ */ (0,
|
|
3416
|
-
/* @__PURE__ */ (0,
|
|
3417
|
-
/* @__PURE__ */ (0,
|
|
3024
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: `matchid-wallet-box`, children: [
|
|
3025
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: `matchid-wallet-content`, children: [
|
|
3026
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("img", { src: pageData.statusImage }),
|
|
3027
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
|
|
3418
3028
|
] }),
|
|
3419
|
-
/* @__PURE__ */ (0,
|
|
3029
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
3420
3030
|
Button,
|
|
3421
3031
|
{
|
|
3422
3032
|
block: true,
|
|
@@ -3431,7 +3041,7 @@ function WalletModalContent({
|
|
|
3431
3041
|
}
|
|
3432
3042
|
|
|
3433
3043
|
// src/components/SOLModal/index.tsx
|
|
3434
|
-
var
|
|
3044
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
3435
3045
|
function WalletContent({
|
|
3436
3046
|
onSuccess,
|
|
3437
3047
|
type
|
|
@@ -3439,17 +3049,17 @@ function WalletContent({
|
|
|
3439
3049
|
const { setVisible, visible } = (0, import_wallet_adapter_react_ui.useWalletModal)();
|
|
3440
3050
|
const wallet = (0, import_wallet_adapter_react.useWallet)();
|
|
3441
3051
|
const { events, login } = useMatch();
|
|
3442
|
-
const [status, setStatus] = (0,
|
|
3443
|
-
const statusRef =
|
|
3444
|
-
const [error, setError] = (0,
|
|
3445
|
-
(0,
|
|
3052
|
+
const [status, setStatus] = (0, import_react26.useState)("");
|
|
3053
|
+
const statusRef = import_react26.default.useRef(status);
|
|
3054
|
+
const [error, setError] = (0, import_react26.useState)("");
|
|
3055
|
+
(0, import_react26.useEffect)(() => {
|
|
3446
3056
|
const init = async () => {
|
|
3447
3057
|
await wallet.disconnect();
|
|
3448
3058
|
setVisible(true);
|
|
3449
3059
|
};
|
|
3450
3060
|
init();
|
|
3451
3061
|
}, []);
|
|
3452
|
-
(0,
|
|
3062
|
+
(0, import_react26.useEffect)(() => {
|
|
3453
3063
|
if (wallet.connected) {
|
|
3454
3064
|
console.log("wallet.connected", wallet.connected);
|
|
3455
3065
|
toLoginInWallet();
|
|
@@ -3513,7 +3123,7 @@ function WalletContent({
|
|
|
3513
3123
|
statusRef.current = "";
|
|
3514
3124
|
}
|
|
3515
3125
|
};
|
|
3516
|
-
return /* @__PURE__ */ (0,
|
|
3126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
3517
3127
|
WalletModalContent,
|
|
3518
3128
|
{
|
|
3519
3129
|
connected: wallet.connected,
|
|
@@ -3573,20 +3183,20 @@ function SOLConnectModal({
|
|
|
3573
3183
|
onSuccess,
|
|
3574
3184
|
...props
|
|
3575
3185
|
}) {
|
|
3576
|
-
const intl = (0,
|
|
3577
|
-
return /* @__PURE__ */ (0,
|
|
3186
|
+
const intl = (0, import_react_intl11.useIntl)();
|
|
3187
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
3578
3188
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
3579
3189
|
}, {
|
|
3580
3190
|
name: "SOL"
|
|
3581
|
-
}), children: /* @__PURE__ */ (0,
|
|
3191
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
|
|
3582
3192
|
}
|
|
3583
3193
|
function SOLModal(props) {
|
|
3584
|
-
return props.isOpen && /* @__PURE__ */ (0,
|
|
3194
|
+
return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(SOLConnectModal, { ...props });
|
|
3585
3195
|
}
|
|
3586
3196
|
|
|
3587
3197
|
// src/components/TRONModal/index.tsx
|
|
3588
|
-
var
|
|
3589
|
-
var
|
|
3198
|
+
var import_react28 = __toESM(require("react"));
|
|
3199
|
+
var import_react_intl12 = require("react-intl");
|
|
3590
3200
|
|
|
3591
3201
|
// src/lib/tron/TronLinkAdapter.ts
|
|
3592
3202
|
var TronLinkAdapter = class {
|
|
@@ -3619,7 +3229,7 @@ var TronLinkAdapter = class {
|
|
|
3619
3229
|
};
|
|
3620
3230
|
|
|
3621
3231
|
// src/hooks/useTRONWallet.ts
|
|
3622
|
-
var
|
|
3232
|
+
var import_react27 = require("react");
|
|
3623
3233
|
|
|
3624
3234
|
// src/lib/tron/BitgetAdapter.ts
|
|
3625
3235
|
var BitgetAdapter = class {
|
|
@@ -3664,9 +3274,9 @@ var OKXAdapter = class {
|
|
|
3664
3274
|
// src/hooks/useTRONWallet.ts
|
|
3665
3275
|
var useTRONWallet = () => {
|
|
3666
3276
|
const wallets2 = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
|
|
3667
|
-
const [installedWallets, setInstalledWallets] = (0,
|
|
3668
|
-
const [address, setAddress] = (0,
|
|
3669
|
-
(0,
|
|
3277
|
+
const [installedWallets, setInstalledWallets] = (0, import_react27.useState)([]);
|
|
3278
|
+
const [address, setAddress] = (0, import_react27.useState)(null);
|
|
3279
|
+
(0, import_react27.useEffect)(() => {
|
|
3670
3280
|
const getInstalled = async () => {
|
|
3671
3281
|
const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
|
|
3672
3282
|
wallet: wallet2,
|
|
@@ -3676,11 +3286,11 @@ var useTRONWallet = () => {
|
|
|
3676
3286
|
};
|
|
3677
3287
|
getInstalled();
|
|
3678
3288
|
}, []);
|
|
3679
|
-
const [wallet, chooseWallet] = (0,
|
|
3289
|
+
const [wallet, chooseWallet] = (0, import_react27.useState)(null);
|
|
3680
3290
|
const onConnect = async () => {
|
|
3681
3291
|
setAddress(await wallet.connect());
|
|
3682
3292
|
};
|
|
3683
|
-
(0,
|
|
3293
|
+
(0, import_react27.useEffect)(() => {
|
|
3684
3294
|
if (!wallet) {
|
|
3685
3295
|
setAddress(null);
|
|
3686
3296
|
}
|
|
@@ -3696,25 +3306,25 @@ var useTRONWallet = () => {
|
|
|
3696
3306
|
};
|
|
3697
3307
|
|
|
3698
3308
|
// src/components/TRONModal/index.tsx
|
|
3699
|
-
var
|
|
3309
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
3700
3310
|
function TRONConnectModal({
|
|
3701
3311
|
type = "login",
|
|
3702
3312
|
onSuccess,
|
|
3703
3313
|
...props
|
|
3704
3314
|
}) {
|
|
3705
3315
|
const isDownMd = useDownMd();
|
|
3706
|
-
const intl = (0,
|
|
3316
|
+
const intl = (0, import_react_intl12.useIntl)();
|
|
3707
3317
|
const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
|
|
3708
3318
|
const iconMaps = {
|
|
3709
|
-
tronlink: /* @__PURE__ */ (0,
|
|
3710
|
-
bitget: /* @__PURE__ */ (0,
|
|
3711
|
-
okx: /* @__PURE__ */ (0,
|
|
3319
|
+
tronlink: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
|
|
3320
|
+
bitget: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(BitgetIcon, { size: isDownMd ? 36 : 40 }),
|
|
3321
|
+
okx: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
|
|
3712
3322
|
};
|
|
3713
3323
|
const { events, login } = useMatch();
|
|
3714
|
-
const [status, setStatus] = (0,
|
|
3715
|
-
const statusRef =
|
|
3716
|
-
const [error, setError] = (0,
|
|
3717
|
-
const connected = (0,
|
|
3324
|
+
const [status, setStatus] = (0, import_react28.useState)("");
|
|
3325
|
+
const statusRef = import_react28.default.useRef(status);
|
|
3326
|
+
const [error, setError] = (0, import_react28.useState)("");
|
|
3327
|
+
const connected = (0, import_react28.useMemo)(() => {
|
|
3718
3328
|
return !!address;
|
|
3719
3329
|
}, [address]);
|
|
3720
3330
|
const disconnect = async () => {
|
|
@@ -3782,7 +3392,7 @@ function TRONConnectModal({
|
|
|
3782
3392
|
statusRef.current = "";
|
|
3783
3393
|
}
|
|
3784
3394
|
};
|
|
3785
|
-
(0,
|
|
3395
|
+
(0, import_react28.useEffect)(() => {
|
|
3786
3396
|
if (wallet) {
|
|
3787
3397
|
console.log("onConnect");
|
|
3788
3398
|
onConnect();
|
|
@@ -3790,21 +3400,21 @@ function TRONConnectModal({
|
|
|
3790
3400
|
setStatus("");
|
|
3791
3401
|
}
|
|
3792
3402
|
}, [wallet]);
|
|
3793
|
-
(0,
|
|
3403
|
+
(0, import_react28.useEffect)(() => {
|
|
3794
3404
|
if (address) {
|
|
3795
3405
|
toLoginInWallet();
|
|
3796
3406
|
}
|
|
3797
3407
|
}, [address]);
|
|
3798
|
-
(0,
|
|
3408
|
+
(0, import_react28.useEffect)(() => {
|
|
3799
3409
|
if (!props.isOpen) {
|
|
3800
3410
|
disconnect();
|
|
3801
3411
|
}
|
|
3802
3412
|
}, [props.isOpen]);
|
|
3803
|
-
return /* @__PURE__ */ (0,
|
|
3413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
3804
3414
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
3805
3415
|
}, {
|
|
3806
3416
|
name: "TRON"
|
|
3807
|
-
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0,
|
|
3417
|
+
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
3808
3418
|
WalletModalContent,
|
|
3809
3419
|
{
|
|
3810
3420
|
error,
|
|
@@ -3817,9 +3427,9 @@ function TRONConnectModal({
|
|
|
3817
3427
|
setVisible: () => {
|
|
3818
3428
|
}
|
|
3819
3429
|
}
|
|
3820
|
-
) : /* @__PURE__ */ (0,
|
|
3430
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "matchid-login-recommend-list", children: [
|
|
3821
3431
|
installedWallets.map((wallet2) => {
|
|
3822
|
-
return /* @__PURE__ */ (0,
|
|
3432
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
3823
3433
|
RecommendItem,
|
|
3824
3434
|
{
|
|
3825
3435
|
icon: iconMaps[wallet2.walletKey],
|
|
@@ -3832,14 +3442,14 @@ function TRONConnectModal({
|
|
|
3832
3442
|
);
|
|
3833
3443
|
}),
|
|
3834
3444
|
wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
|
|
3835
|
-
return /* @__PURE__ */ (0,
|
|
3445
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
3836
3446
|
RecommendItem,
|
|
3837
3447
|
{
|
|
3838
3448
|
icon: iconMaps[wallet2.walletKey],
|
|
3839
3449
|
name: wallet2.name,
|
|
3840
3450
|
onClick: () => {
|
|
3841
3451
|
},
|
|
3842
|
-
footer: /* @__PURE__ */ (0,
|
|
3452
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Button, { size: "sm", onClick: () => {
|
|
3843
3453
|
window.open(wallet2.website);
|
|
3844
3454
|
}, children: "Install" })
|
|
3845
3455
|
},
|
|
@@ -3849,28 +3459,28 @@ function TRONConnectModal({
|
|
|
3849
3459
|
] }) }) });
|
|
3850
3460
|
}
|
|
3851
3461
|
function TRONModal(props) {
|
|
3852
|
-
return props.isOpen && /* @__PURE__ */ (0,
|
|
3462
|
+
return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TRONConnectModal, { ...props, type: props.type });
|
|
3853
3463
|
}
|
|
3854
3464
|
|
|
3855
3465
|
// src/components/TONModal/index.tsx
|
|
3856
|
-
var
|
|
3857
|
-
var
|
|
3466
|
+
var import_react29 = __toESM(require("react"));
|
|
3467
|
+
var import_react_intl13 = require("react-intl");
|
|
3858
3468
|
var import_ui_react = require("@tonconnect/ui-react");
|
|
3859
|
-
var
|
|
3469
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
3860
3470
|
function WalletContent2({
|
|
3861
3471
|
onSuccess,
|
|
3862
3472
|
type
|
|
3863
3473
|
}) {
|
|
3864
3474
|
const { events, login } = useMatch();
|
|
3865
|
-
const [connected, setConnected] = (0,
|
|
3475
|
+
const [connected, setConnected] = (0, import_react29.useState)(false);
|
|
3866
3476
|
const wallet = (0, import_ui_react.useTonWallet)();
|
|
3867
3477
|
const userFriendlyAddress = (0, import_ui_react.useTonAddress)();
|
|
3868
3478
|
const [tonConnectUI] = (0, import_ui_react.useTonConnectUI)();
|
|
3869
3479
|
const { state, open, close } = (0, import_ui_react.useTonConnectModal)();
|
|
3870
|
-
const [status, setStatus] = (0,
|
|
3871
|
-
const statusRef =
|
|
3872
|
-
const [error, setError] = (0,
|
|
3873
|
-
(0,
|
|
3480
|
+
const [status, setStatus] = (0, import_react29.useState)("");
|
|
3481
|
+
const statusRef = import_react29.default.useRef(status);
|
|
3482
|
+
const [error, setError] = (0, import_react29.useState)("");
|
|
3483
|
+
(0, import_react29.useEffect)(() => {
|
|
3874
3484
|
const init = async () => {
|
|
3875
3485
|
if (wallet) {
|
|
3876
3486
|
await tonConnectUI.disconnect();
|
|
@@ -3943,7 +3553,7 @@ function WalletContent2({
|
|
|
3943
3553
|
}
|
|
3944
3554
|
});
|
|
3945
3555
|
}, []);
|
|
3946
|
-
(0,
|
|
3556
|
+
(0, import_react29.useEffect)(() => {
|
|
3947
3557
|
if (wallet) {
|
|
3948
3558
|
setConnected(true);
|
|
3949
3559
|
console.log("Wallet connected:", wallet);
|
|
@@ -3954,7 +3564,7 @@ function WalletContent2({
|
|
|
3954
3564
|
setStatus("");
|
|
3955
3565
|
}
|
|
3956
3566
|
}, [wallet]);
|
|
3957
|
-
(0,
|
|
3567
|
+
(0, import_react29.useEffect)(() => {
|
|
3958
3568
|
console.log({
|
|
3959
3569
|
state,
|
|
3960
3570
|
wallet
|
|
@@ -3983,7 +3593,7 @@ function WalletContent2({
|
|
|
3983
3593
|
}
|
|
3984
3594
|
}
|
|
3985
3595
|
}, [state]);
|
|
3986
|
-
return /* @__PURE__ */ (0,
|
|
3596
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
3987
3597
|
WalletModalContent,
|
|
3988
3598
|
{
|
|
3989
3599
|
connected,
|
|
@@ -4014,28 +3624,28 @@ function TONConnectModal({
|
|
|
4014
3624
|
onSuccess,
|
|
4015
3625
|
...props
|
|
4016
3626
|
}) {
|
|
4017
|
-
const intl = (0,
|
|
3627
|
+
const intl = (0, import_react_intl13.useIntl)();
|
|
4018
3628
|
const { endpoints, appid } = useLocalStore_default();
|
|
4019
3629
|
const manifestUrl = `${endpoints.back}api/v1/wallet/ton?appid=${appid}&url=` + encodeURIComponent(window.location.origin);
|
|
4020
|
-
return /* @__PURE__ */ (0,
|
|
3630
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4021
3631
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4022
3632
|
}, {
|
|
4023
3633
|
name: "TON"
|
|
4024
|
-
}), children: /* @__PURE__ */ (0,
|
|
3634
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
4025
3635
|
import_ui_react.TonConnectUIProvider,
|
|
4026
3636
|
{
|
|
4027
3637
|
manifestUrl,
|
|
4028
|
-
children: /* @__PURE__ */ (0,
|
|
3638
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(WalletContent2, { onSuccess, type })
|
|
4029
3639
|
}
|
|
4030
3640
|
) });
|
|
4031
3641
|
}
|
|
4032
3642
|
function TONModal(props) {
|
|
4033
|
-
return props.isOpen && /* @__PURE__ */ (0,
|
|
3643
|
+
return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TONConnectModal, { ...props });
|
|
4034
3644
|
}
|
|
4035
3645
|
|
|
4036
3646
|
// src/components/BTCModal/index.tsx
|
|
4037
|
-
var
|
|
4038
|
-
var
|
|
3647
|
+
var import_react31 = __toESM(require("react"));
|
|
3648
|
+
var import_react_intl14 = require("react-intl");
|
|
4039
3649
|
|
|
4040
3650
|
// src/lib/btc/UnisatAdapter.ts
|
|
4041
3651
|
var UnisatAdapter = class {
|
|
@@ -4183,12 +3793,12 @@ var LeatherAdapter = class {
|
|
|
4183
3793
|
};
|
|
4184
3794
|
|
|
4185
3795
|
// src/hooks/useBTCWallet.ts
|
|
4186
|
-
var
|
|
3796
|
+
var import_react30 = require("react");
|
|
4187
3797
|
var useBTCWallet = () => {
|
|
4188
3798
|
const wallets2 = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
|
|
4189
|
-
const [installedWallets, setInstalledWallets] = (0,
|
|
4190
|
-
const [address, setAddress] = (0,
|
|
4191
|
-
(0,
|
|
3799
|
+
const [installedWallets, setInstalledWallets] = (0, import_react30.useState)([]);
|
|
3800
|
+
const [address, setAddress] = (0, import_react30.useState)(null);
|
|
3801
|
+
(0, import_react30.useEffect)(() => {
|
|
4192
3802
|
const getInstalled = async () => {
|
|
4193
3803
|
const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
|
|
4194
3804
|
wallet: wallet2,
|
|
@@ -4198,11 +3808,11 @@ var useBTCWallet = () => {
|
|
|
4198
3808
|
};
|
|
4199
3809
|
getInstalled();
|
|
4200
3810
|
}, []);
|
|
4201
|
-
const [wallet, chooseWallet] = (0,
|
|
3811
|
+
const [wallet, chooseWallet] = (0, import_react30.useState)(null);
|
|
4202
3812
|
const onConnect = async () => {
|
|
4203
3813
|
setAddress(await wallet.connect());
|
|
4204
3814
|
};
|
|
4205
|
-
(0,
|
|
3815
|
+
(0, import_react30.useEffect)(() => {
|
|
4206
3816
|
if (!wallet) {
|
|
4207
3817
|
setAddress(null);
|
|
4208
3818
|
}
|
|
@@ -4218,25 +3828,25 @@ var useBTCWallet = () => {
|
|
|
4218
3828
|
};
|
|
4219
3829
|
|
|
4220
3830
|
// src/components/BTCModal/index.tsx
|
|
4221
|
-
var
|
|
3831
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
4222
3832
|
function BTCConnectModal({
|
|
4223
3833
|
type = "login",
|
|
4224
3834
|
onSuccess,
|
|
4225
3835
|
...props
|
|
4226
3836
|
}) {
|
|
4227
3837
|
const isDownMd = useDownMd();
|
|
4228
|
-
const intl = (0,
|
|
3838
|
+
const intl = (0, import_react_intl14.useIntl)();
|
|
4229
3839
|
const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
|
|
4230
3840
|
const iconMaps = {
|
|
4231
|
-
leather: /* @__PURE__ */ (0,
|
|
4232
|
-
unisat: /* @__PURE__ */ (0,
|
|
4233
|
-
xverse: /* @__PURE__ */ (0,
|
|
3841
|
+
leather: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
|
|
3842
|
+
unisat: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
|
|
3843
|
+
xverse: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
|
|
4234
3844
|
};
|
|
4235
3845
|
const { events, login } = useMatch();
|
|
4236
|
-
const [status, setStatus] = (0,
|
|
4237
|
-
const statusRef =
|
|
4238
|
-
const [error, setError] = (0,
|
|
4239
|
-
const connected = (0,
|
|
3846
|
+
const [status, setStatus] = (0, import_react31.useState)("");
|
|
3847
|
+
const statusRef = import_react31.default.useRef(status);
|
|
3848
|
+
const [error, setError] = (0, import_react31.useState)("");
|
|
3849
|
+
const connected = (0, import_react31.useMemo)(() => {
|
|
4240
3850
|
return !!address;
|
|
4241
3851
|
}, [address]);
|
|
4242
3852
|
const disconnect = async () => {
|
|
@@ -4300,7 +3910,7 @@ function BTCConnectModal({
|
|
|
4300
3910
|
statusRef.current = "";
|
|
4301
3911
|
}
|
|
4302
3912
|
};
|
|
4303
|
-
(0,
|
|
3913
|
+
(0, import_react31.useEffect)(() => {
|
|
4304
3914
|
if (wallet) {
|
|
4305
3915
|
console.log("onConnect");
|
|
4306
3916
|
try {
|
|
@@ -4313,12 +3923,12 @@ function BTCConnectModal({
|
|
|
4313
3923
|
setStatus("");
|
|
4314
3924
|
}
|
|
4315
3925
|
}, [wallet]);
|
|
4316
|
-
(0,
|
|
3926
|
+
(0, import_react31.useEffect)(() => {
|
|
4317
3927
|
if (address) {
|
|
4318
3928
|
toLoginInWallet();
|
|
4319
3929
|
}
|
|
4320
3930
|
}, [address]);
|
|
4321
|
-
(0,
|
|
3931
|
+
(0, import_react31.useEffect)(() => {
|
|
4322
3932
|
if (!props.isOpen) {
|
|
4323
3933
|
disconnect();
|
|
4324
3934
|
}
|
|
@@ -4330,11 +3940,11 @@ function BTCConnectModal({
|
|
|
4330
3940
|
statusRef.current = "";
|
|
4331
3941
|
setError("");
|
|
4332
3942
|
};
|
|
4333
|
-
return /* @__PURE__ */ (0,
|
|
3943
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4334
3944
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4335
3945
|
}, {
|
|
4336
3946
|
name: "BTC"
|
|
4337
|
-
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0,
|
|
3947
|
+
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4338
3948
|
WalletModalContent,
|
|
4339
3949
|
{
|
|
4340
3950
|
error,
|
|
@@ -4347,9 +3957,9 @@ function BTCConnectModal({
|
|
|
4347
3957
|
setVisible: () => {
|
|
4348
3958
|
}
|
|
4349
3959
|
}
|
|
4350
|
-
) : /* @__PURE__ */ (0,
|
|
3960
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "matchid-login-recommend-list", children: [
|
|
4351
3961
|
installedWallets.map((wallet2) => {
|
|
4352
|
-
return /* @__PURE__ */ (0,
|
|
3962
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4353
3963
|
RecommendItem,
|
|
4354
3964
|
{
|
|
4355
3965
|
icon: iconMaps[wallet2.walletKey],
|
|
@@ -4362,14 +3972,14 @@ function BTCConnectModal({
|
|
|
4362
3972
|
);
|
|
4363
3973
|
}),
|
|
4364
3974
|
wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
|
|
4365
|
-
return /* @__PURE__ */ (0,
|
|
3975
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
4366
3976
|
RecommendItem,
|
|
4367
3977
|
{
|
|
4368
3978
|
icon: iconMaps[wallet2.walletKey],
|
|
4369
3979
|
name: wallet2.name,
|
|
4370
3980
|
onClick: () => {
|
|
4371
3981
|
},
|
|
4372
|
-
footer: /* @__PURE__ */ (0,
|
|
3982
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Button, { size: "sm", onClick: () => {
|
|
4373
3983
|
window.open(wallet2.website);
|
|
4374
3984
|
}, children: "Install" })
|
|
4375
3985
|
},
|
|
@@ -4379,23 +3989,23 @@ function BTCConnectModal({
|
|
|
4379
3989
|
] }) }) });
|
|
4380
3990
|
}
|
|
4381
3991
|
function BTCModal(props) {
|
|
4382
|
-
return props.isOpen && /* @__PURE__ */ (0,
|
|
3992
|
+
return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(BTCConnectModal, { ...props });
|
|
4383
3993
|
}
|
|
4384
3994
|
|
|
4385
3995
|
// src/components/WalletModal/index.tsx
|
|
4386
|
-
var
|
|
4387
|
-
var
|
|
4388
|
-
var
|
|
3996
|
+
var import_react32 = require("react");
|
|
3997
|
+
var import_react_intl15 = require("react-intl");
|
|
3998
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
4389
3999
|
function WalletConnectModal({
|
|
4390
4000
|
type,
|
|
4391
4001
|
methods: _methods,
|
|
4392
4002
|
...props
|
|
4393
4003
|
}) {
|
|
4394
|
-
const intl = (0,
|
|
4004
|
+
const intl = (0, import_react_intl15.useIntl)();
|
|
4395
4005
|
const { walletMap } = useWalletConfig();
|
|
4396
4006
|
const { bind, login } = useUserInfo();
|
|
4397
4007
|
const config = useAppConfig();
|
|
4398
|
-
const methods = (0,
|
|
4008
|
+
const methods = (0, import_react32.useMemo)(() => {
|
|
4399
4009
|
if (_methods) return _methods;
|
|
4400
4010
|
if (!config.platform) {
|
|
4401
4011
|
return [];
|
|
@@ -4403,13 +4013,13 @@ function WalletConnectModal({
|
|
|
4403
4013
|
const platform = config.platform.map((p) => p.toLowerCase());
|
|
4404
4014
|
return WALLET_METHODS.filter((m) => platform.includes(m));
|
|
4405
4015
|
}, [config.platform, _methods]);
|
|
4406
|
-
return /* @__PURE__ */ (0,
|
|
4016
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4407
4017
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4408
4018
|
}, {
|
|
4409
4019
|
name: ""
|
|
4410
|
-
}), children: /* @__PURE__ */ (0,
|
|
4020
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "matchid-login-recommend-list", children: methods.map((method, index) => {
|
|
4411
4021
|
const m = walletMap[method];
|
|
4412
|
-
return /* @__PURE__ */ (0,
|
|
4022
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
4413
4023
|
RecommendItem,
|
|
4414
4024
|
{
|
|
4415
4025
|
icon: m?.icon,
|
|
@@ -4423,7 +4033,7 @@ function WalletConnectModal({
|
|
|
4423
4033
|
}) }) }) });
|
|
4424
4034
|
}
|
|
4425
4035
|
function WalletModal(props) {
|
|
4426
|
-
return props.isOpen && /* @__PURE__ */ (0,
|
|
4036
|
+
return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(WalletConnectModal, { ...props });
|
|
4427
4037
|
}
|
|
4428
4038
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4429
4039
|
0 && (module.exports = {
|
|
@@ -4439,7 +4049,6 @@ function WalletModal(props) {
|
|
|
4439
4049
|
Modal,
|
|
4440
4050
|
ModalWithHeader,
|
|
4441
4051
|
Overlay,
|
|
4442
|
-
PasswordModal,
|
|
4443
4052
|
Popover,
|
|
4444
4053
|
SOLModal,
|
|
4445
4054
|
TONModal,
|