@embarkai/ui-kit 0.4.110 → 0.4.111
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/iframe/index.html +1 -1
- package/dist/iframe/main.js +1 -1
- package/dist/index.cjs +573 -602
- package/dist/index.js +210 -233
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6046,32 +6046,6 @@ var init_ChainSync2 = __esm({
|
|
|
6046
6046
|
}
|
|
6047
6047
|
});
|
|
6048
6048
|
|
|
6049
|
-
// src/internal/hooks/useAllowExternalModalsScroll.ts
|
|
6050
|
-
function isFromExternalModal(event) {
|
|
6051
|
-
return event.composedPath().some((node) => node instanceof Element && EXTERNAL_MODAL_TAGS.has(node.tagName));
|
|
6052
|
-
}
|
|
6053
|
-
function stopExternalModalScrollEvent(event) {
|
|
6054
|
-
if (isFromExternalModal(event)) event.stopPropagation();
|
|
6055
|
-
}
|
|
6056
|
-
function useAllowExternalModalsScroll(enabled) {
|
|
6057
|
-
(0, import_react7.useEffect)(() => {
|
|
6058
|
-
if (!enabled || typeof document === "undefined") return;
|
|
6059
|
-
const body = document.body;
|
|
6060
|
-
SCROLL_EVENTS.forEach((type) => body.addEventListener(type, stopExternalModalScrollEvent, { passive: true }));
|
|
6061
|
-
return () => {
|
|
6062
|
-
SCROLL_EVENTS.forEach((type) => body.removeEventListener(type, stopExternalModalScrollEvent));
|
|
6063
|
-
};
|
|
6064
|
-
}, [enabled]);
|
|
6065
|
-
}
|
|
6066
|
-
var import_react7, EXTERNAL_MODAL_TAGS, SCROLL_EVENTS;
|
|
6067
|
-
var init_useAllowExternalModalsScroll = __esm({
|
|
6068
|
-
"src/internal/hooks/useAllowExternalModalsScroll.ts"() {
|
|
6069
|
-
import_react7 = require("react");
|
|
6070
|
-
EXTERNAL_MODAL_TAGS = /* @__PURE__ */ new Set(["W3M-MODAL", "APPKIT-MODAL", "WCM-MODAL"]);
|
|
6071
|
-
SCROLL_EVENTS = ["wheel", "touchmove"];
|
|
6072
|
-
}
|
|
6073
|
-
});
|
|
6074
|
-
|
|
6075
6049
|
// src/internal/clients/account/register-smart-account-address.ts
|
|
6076
6050
|
async function registerSmartAccountAddress(chainId, smartAccountAddress, factoryAddress) {
|
|
6077
6051
|
const accessToken = import_auth25.jwtTokenManager.getAccessToken();
|
|
@@ -7024,7 +6998,7 @@ function useAutoConnect() {
|
|
|
7024
6998
|
setIsIframeReady,
|
|
7025
6999
|
setIsLoading
|
|
7026
7000
|
} = useSession();
|
|
7027
|
-
const createSessionWithKeyshare = (0,
|
|
7001
|
+
const createSessionWithKeyshare = (0, import_react7.useCallback)(
|
|
7028
7002
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
7029
7003
|
try {
|
|
7030
7004
|
try {
|
|
@@ -7062,8 +7036,8 @@ function useAutoConnect() {
|
|
|
7062
7036
|
},
|
|
7063
7037
|
[usePaymaster, setStatus, activeChainId]
|
|
7064
7038
|
);
|
|
7065
|
-
const autoConnectAttemptedRef = (0,
|
|
7066
|
-
(0,
|
|
7039
|
+
const autoConnectAttemptedRef = (0, import_react7.useRef)(false);
|
|
7040
|
+
(0, import_react7.useEffect)(() => {
|
|
7067
7041
|
if (!hasHydrated) return;
|
|
7068
7042
|
if (autoConnectAttemptedRef.current) return;
|
|
7069
7043
|
setIsLoading(true);
|
|
@@ -7193,12 +7167,12 @@ function useAutoConnect() {
|
|
|
7193
7167
|
}, [hasHydrated]);
|
|
7194
7168
|
return null;
|
|
7195
7169
|
}
|
|
7196
|
-
var
|
|
7170
|
+
var import_react7;
|
|
7197
7171
|
var init_useAutoConnect = __esm({
|
|
7198
7172
|
"src/internal/hooks/useAutoConnect.ts"() {
|
|
7199
7173
|
init_ProviderContext();
|
|
7200
7174
|
init_SessionContext();
|
|
7201
|
-
|
|
7175
|
+
import_react7 = require("react");
|
|
7202
7176
|
init_useLayoutDataStore();
|
|
7203
7177
|
}
|
|
7204
7178
|
});
|
|
@@ -7210,7 +7184,7 @@ function useOpenPage() {
|
|
|
7210
7184
|
const setPageParams = useLayoutDataStore((st) => st.setPageParams);
|
|
7211
7185
|
const setPostAuthNavigation = useLayoutDataStore((st) => st.setPostAuthNavigation);
|
|
7212
7186
|
const address = useSession((st) => st.address);
|
|
7213
|
-
const open = (0,
|
|
7187
|
+
const open = (0, import_react8.useCallback)(
|
|
7214
7188
|
(passportPage, params) => {
|
|
7215
7189
|
if (!address) {
|
|
7216
7190
|
if (passportPage !== "auth" /* AUTH */) {
|
|
@@ -7224,7 +7198,7 @@ function useOpenPage() {
|
|
|
7224
7198
|
},
|
|
7225
7199
|
[setPage, setPageParams, setPostAuthNavigation, address]
|
|
7226
7200
|
);
|
|
7227
|
-
const close = (0,
|
|
7201
|
+
const close = (0, import_react8.useCallback)(() => {
|
|
7228
7202
|
setPageParams(null);
|
|
7229
7203
|
setPostAuthNavigation(null);
|
|
7230
7204
|
setPage(null);
|
|
@@ -7232,8 +7206,8 @@ function useOpenPage() {
|
|
|
7232
7206
|
return { open, close, isOpen: page !== null };
|
|
7233
7207
|
}
|
|
7234
7208
|
function usePageParams() {
|
|
7235
|
-
const currentParams = (0,
|
|
7236
|
-
(0,
|
|
7209
|
+
const currentParams = (0, import_react8.useRef)({});
|
|
7210
|
+
(0, import_react8.useEffect)(() => {
|
|
7237
7211
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
7238
7212
|
if (!pageParams) return;
|
|
7239
7213
|
currentParams.current = pageParams;
|
|
@@ -7241,10 +7215,10 @@ function usePageParams() {
|
|
|
7241
7215
|
}, []);
|
|
7242
7216
|
return currentParams;
|
|
7243
7217
|
}
|
|
7244
|
-
var
|
|
7218
|
+
var import_react8;
|
|
7245
7219
|
var init_useOpenPage = __esm({
|
|
7246
7220
|
"src/hooks/useOpenPage.ts"() {
|
|
7247
|
-
|
|
7221
|
+
import_react8 = require("react");
|
|
7248
7222
|
init_SessionContext();
|
|
7249
7223
|
init_useLayoutDataStore();
|
|
7250
7224
|
}
|
|
@@ -7253,10 +7227,10 @@ var init_useOpenPage = __esm({
|
|
|
7253
7227
|
// src/internal/hooks/useBackupStatusChanges.ts
|
|
7254
7228
|
function useBackupStatusChanges() {
|
|
7255
7229
|
const { open: openPage } = useOpenPage();
|
|
7256
|
-
const requestSeqRef = (0,
|
|
7257
|
-
const openPageRef = (0,
|
|
7230
|
+
const requestSeqRef = (0, import_react9.useRef)(0);
|
|
7231
|
+
const openPageRef = (0, import_react9.useRef)(openPage);
|
|
7258
7232
|
openPageRef.current = openPage;
|
|
7259
|
-
(0,
|
|
7233
|
+
(0, import_react9.useEffect)(() => {
|
|
7260
7234
|
async function handleBackupStatusChanged(event) {
|
|
7261
7235
|
const detail = event?.detail;
|
|
7262
7236
|
console.log("[BACKUP STATUS] changed:", detail);
|
|
@@ -7288,12 +7262,12 @@ function useBackupStatusChanges() {
|
|
|
7288
7262
|
};
|
|
7289
7263
|
}, []);
|
|
7290
7264
|
}
|
|
7291
|
-
var
|
|
7265
|
+
var import_react9;
|
|
7292
7266
|
var init_useBackupStatusChanges = __esm({
|
|
7293
7267
|
"src/internal/hooks/useBackupStatusChanges.ts"() {
|
|
7294
7268
|
init_SessionContext();
|
|
7295
7269
|
init_useOpenPage();
|
|
7296
|
-
|
|
7270
|
+
import_react9 = require("react");
|
|
7297
7271
|
init_vaultClient();
|
|
7298
7272
|
}
|
|
7299
7273
|
});
|
|
@@ -7303,7 +7277,7 @@ function useDetectMaxScrollHeight() {
|
|
|
7303
7277
|
const page = useLayoutDataStore((state) => state.page);
|
|
7304
7278
|
const setIsMobileView = useLayoutStore((state) => state.setIsMobileView);
|
|
7305
7279
|
const setMaxScrollHeight = useLayoutStore((state) => state.setMaxScrollHeight);
|
|
7306
|
-
const onResize = (0,
|
|
7280
|
+
const onResize = (0, import_react10.useCallback)(
|
|
7307
7281
|
(0, import_lodash_es2.debounce)(({ width, height }) => {
|
|
7308
7282
|
const headerHeight = page === "auth" /* AUTH */ || page === "keyshare-restore" /* KEYSHARE_RESTORE */ ? 0 : 116;
|
|
7309
7283
|
const limContentHeight = height * 0.92 - headerHeight - 57;
|
|
@@ -7312,18 +7286,18 @@ function useDetectMaxScrollHeight() {
|
|
|
7312
7286
|
}, DEBOUNCE_DELAY),
|
|
7313
7287
|
[page, setMaxScrollHeight, setIsMobileView]
|
|
7314
7288
|
);
|
|
7315
|
-
(0,
|
|
7289
|
+
(0, import_react10.useEffect)(() => {
|
|
7316
7290
|
const obs = new ResizeObserver(([entry]) => onResize(entry.contentRect));
|
|
7317
7291
|
const doc = window.document.getElementsByTagName("html")[0];
|
|
7318
7292
|
if (doc) obs.observe(doc);
|
|
7319
7293
|
return () => obs.disconnect();
|
|
7320
7294
|
}, [onResize]);
|
|
7321
7295
|
}
|
|
7322
|
-
var import_lodash_es2,
|
|
7296
|
+
var import_lodash_es2, import_react10, DEBOUNCE_DELAY;
|
|
7323
7297
|
var init_useDetectMaxScrollHeight = __esm({
|
|
7324
7298
|
"src/internal/hooks/useDetectMaxScrollHeight.ts"() {
|
|
7325
7299
|
import_lodash_es2 = require("lodash-es");
|
|
7326
|
-
|
|
7300
|
+
import_react10 = require("react");
|
|
7327
7301
|
init_constants();
|
|
7328
7302
|
init_useLayoutDataStore();
|
|
7329
7303
|
init_useLayoutStore();
|
|
@@ -7335,7 +7309,7 @@ var init_useDetectMaxScrollHeight = __esm({
|
|
|
7335
7309
|
function useListenIframeAuthEvents() {
|
|
7336
7310
|
const setPage = useLayoutDataStore((state) => state.setPage);
|
|
7337
7311
|
const setIsIframeReady = useSession((state) => state.setIsIframeReady);
|
|
7338
|
-
const handleIframeMessage = (0,
|
|
7312
|
+
const handleIframeMessage = (0, import_react11.useCallback)(
|
|
7339
7313
|
(event) => {
|
|
7340
7314
|
const type = event.data?.type?.startsWith?.("LUMIA_PASSPORT_") ? event.data.type.replace("LUMIA_PASSPORT_", "IFRAME_MSG_") : event.data?.type;
|
|
7341
7315
|
if (type === "IFRAME_MSG_IFRAME_READY") {
|
|
@@ -7351,36 +7325,36 @@ function useListenIframeAuthEvents() {
|
|
|
7351
7325
|
},
|
|
7352
7326
|
[setPage, setIsIframeReady]
|
|
7353
7327
|
);
|
|
7354
|
-
(0,
|
|
7328
|
+
(0, import_react11.useEffect)(() => {
|
|
7355
7329
|
window.addEventListener("message", handleIframeMessage);
|
|
7356
7330
|
return () => window.removeEventListener("message", handleIframeMessage);
|
|
7357
7331
|
}, [handleIframeMessage]);
|
|
7358
7332
|
}
|
|
7359
|
-
var
|
|
7333
|
+
var import_react11;
|
|
7360
7334
|
var init_useListenIframeAuthEvents = __esm({
|
|
7361
7335
|
"src/internal/hooks/useListenIframeAuthEvents.ts"() {
|
|
7362
7336
|
init_SessionContext();
|
|
7363
|
-
|
|
7337
|
+
import_react11 = require("react");
|
|
7364
7338
|
init_useLayoutDataStore();
|
|
7365
7339
|
}
|
|
7366
7340
|
});
|
|
7367
7341
|
|
|
7368
7342
|
// src/internal/components/Expandable/hooks/useExpandable.ts
|
|
7369
|
-
var
|
|
7343
|
+
var import_react12, DEFERRED_DELAY, useExpandable;
|
|
7370
7344
|
var init_useExpandable = __esm({
|
|
7371
7345
|
"src/internal/components/Expandable/hooks/useExpandable.ts"() {
|
|
7372
|
-
|
|
7346
|
+
import_react12 = require("react");
|
|
7373
7347
|
DEFERRED_DELAY = 100;
|
|
7374
7348
|
useExpandable = (props) => {
|
|
7375
7349
|
const { isExpanded = false, initHeight = 0, minHeight = 0 } = props;
|
|
7376
|
-
const expandableRef = (0,
|
|
7377
|
-
const contentRef = (0,
|
|
7378
|
-
(0,
|
|
7350
|
+
const expandableRef = (0, import_react12.useRef)(null);
|
|
7351
|
+
const contentRef = (0, import_react12.useRef)(null);
|
|
7352
|
+
(0, import_react12.useEffect)(() => {
|
|
7379
7353
|
if (!expandableRef.current) return;
|
|
7380
7354
|
expandableRef.current.style.setProperty("--ui-kit-expandable-h", `${initHeight}px )`);
|
|
7381
7355
|
}, []);
|
|
7382
|
-
const expandableHeightTimerRef = (0,
|
|
7383
|
-
const setExpandableHeight = (0,
|
|
7356
|
+
const expandableHeightTimerRef = (0, import_react12.useRef)(null);
|
|
7357
|
+
const setExpandableHeight = (0, import_react12.useCallback)((minHeight2, isExpanded2) => {
|
|
7384
7358
|
if (expandableHeightTimerRef.current) clearTimeout(expandableHeightTimerRef.current);
|
|
7385
7359
|
expandableHeightTimerRef.current = setTimeout(() => {
|
|
7386
7360
|
if (!contentRef.current || !expandableRef.current) return;
|
|
@@ -7391,7 +7365,7 @@ var init_useExpandable = __esm({
|
|
|
7391
7365
|
expandableHeightTimerRef.current = null;
|
|
7392
7366
|
}, DEFERRED_DELAY);
|
|
7393
7367
|
}, []);
|
|
7394
|
-
(0,
|
|
7368
|
+
(0, import_react12.useEffect)(() => {
|
|
7395
7369
|
if (!contentRef.current || !expandableRef.current) return;
|
|
7396
7370
|
const resizeObs = new ResizeObserver(() => setExpandableHeight(minHeight, isExpanded));
|
|
7397
7371
|
const domMutationObs = new MutationObserver(() => setExpandableHeight(minHeight, isExpanded));
|
|
@@ -7411,17 +7385,17 @@ var init_useExpandable = __esm({
|
|
|
7411
7385
|
});
|
|
7412
7386
|
|
|
7413
7387
|
// src/internal/components/Expandable/Expandable.tsx
|
|
7414
|
-
var
|
|
7388
|
+
var import_react13, import_jsx_runtime6, Expandable;
|
|
7415
7389
|
var init_Expandable = __esm({
|
|
7416
7390
|
"src/internal/components/Expandable/Expandable.tsx"() {
|
|
7417
7391
|
init_utils();
|
|
7418
|
-
|
|
7392
|
+
import_react13 = require("react");
|
|
7419
7393
|
init_useExpandable();
|
|
7420
7394
|
import_jsx_runtime6 = require("react/jsx-runtime");
|
|
7421
|
-
Expandable = (0,
|
|
7395
|
+
Expandable = (0, import_react13.forwardRef)((props, ref) => {
|
|
7422
7396
|
const { children, className, contentClassName, minHeight, divProps } = props;
|
|
7423
7397
|
const { expandableRef, contentRef } = useExpandable(props);
|
|
7424
|
-
(0,
|
|
7398
|
+
(0, import_react13.useImperativeHandle)(ref, () => expandableRef.current);
|
|
7425
7399
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
7426
7400
|
"div",
|
|
7427
7401
|
{
|
|
@@ -9660,18 +9634,18 @@ var init_useActivityLog = __esm({
|
|
|
9660
9634
|
|
|
9661
9635
|
// src/internal/components/ActivityLogMenu/useActivityLogMenuParams.ts
|
|
9662
9636
|
function useActivityLogMenuParams() {
|
|
9663
|
-
(0,
|
|
9637
|
+
(0, import_react14.useEffect)(() => {
|
|
9664
9638
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
9665
9639
|
if (!pageParams || !(0, import_lodash_es5.keys)(pageParams).length) return;
|
|
9666
9640
|
setTimeout(() => useActivityLogFilters.setState(pageParams), 0);
|
|
9667
9641
|
setPageParams(null);
|
|
9668
9642
|
}, []);
|
|
9669
9643
|
}
|
|
9670
|
-
var import_lodash_es5,
|
|
9644
|
+
var import_lodash_es5, import_react14;
|
|
9671
9645
|
var init_useActivityLogMenuParams = __esm({
|
|
9672
9646
|
"src/internal/components/ActivityLogMenu/useActivityLogMenuParams.ts"() {
|
|
9673
9647
|
import_lodash_es5 = require("lodash-es");
|
|
9674
|
-
|
|
9648
|
+
import_react14 = require("react");
|
|
9675
9649
|
init_useLayoutDataStore();
|
|
9676
9650
|
init_useActivityLogFilters();
|
|
9677
9651
|
}
|
|
@@ -9729,10 +9703,10 @@ var init_ActivityLogMenu2 = __esm({
|
|
|
9729
9703
|
});
|
|
9730
9704
|
|
|
9731
9705
|
// src/internal/components/ui/highlight.tsx
|
|
9732
|
-
var
|
|
9706
|
+
var import_react15, import_jsx_runtime10, CARD_STYLES, Highlight;
|
|
9733
9707
|
var init_highlight = __esm({
|
|
9734
9708
|
"src/internal/components/ui/highlight.tsx"() {
|
|
9735
|
-
|
|
9709
|
+
import_react15 = require("react");
|
|
9736
9710
|
init_utils();
|
|
9737
9711
|
import_jsx_runtime10 = require("react/jsx-runtime");
|
|
9738
9712
|
CARD_STYLES = {
|
|
@@ -9741,7 +9715,7 @@ var init_highlight = __esm({
|
|
|
9741
9715
|
warning: "text-[var(--ui-kit-warning)] bg-[var(--ui-kit-bg-warning)]",
|
|
9742
9716
|
error: "text-[var(--ui-kit-error)] bg-[var(--ui-kit-bg-error)]"
|
|
9743
9717
|
};
|
|
9744
|
-
Highlight = (0,
|
|
9718
|
+
Highlight = (0, import_react15.forwardRef)((props, ref) => {
|
|
9745
9719
|
const { type = "info", children, className, ...rest } = props;
|
|
9746
9720
|
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
9747
9721
|
"div",
|
|
@@ -9967,7 +9941,7 @@ function PassKeyStep(props) {
|
|
|
9967
9941
|
const setIsLoading = useSession((st) => st.setIsLoading);
|
|
9968
9942
|
const autoCloseOnSuccess = !recoveryUserId;
|
|
9969
9943
|
const { passkeyStatus, setStep, setPasskeyStatus, setAlert, setEmail, setFailedType } = useAuthStore();
|
|
9970
|
-
const onPasskeyRegister = (0,
|
|
9944
|
+
const onPasskeyRegister = (0, import_react16.useCallback)(async () => {
|
|
9971
9945
|
setAlert(null);
|
|
9972
9946
|
setPasskeyStatus("registering passkey...");
|
|
9973
9947
|
setIsLoading(true);
|
|
@@ -10026,7 +10000,7 @@ function PassKeyStep(props) {
|
|
|
10026
10000
|
setIsLoading(false);
|
|
10027
10001
|
}
|
|
10028
10002
|
}, [onAuthSuccess, setPage]);
|
|
10029
|
-
const onPasskeyAuth = (0,
|
|
10003
|
+
const onPasskeyAuth = (0, import_react16.useCallback)(async () => {
|
|
10030
10004
|
setAlert(null);
|
|
10031
10005
|
setPasskeyStatus("checking available passkeys...");
|
|
10032
10006
|
setIsLoading(true);
|
|
@@ -10144,14 +10118,14 @@ function PassKeyStep(props) {
|
|
|
10144
10118
|
] })
|
|
10145
10119
|
] });
|
|
10146
10120
|
}
|
|
10147
|
-
var import_lucide_react7,
|
|
10121
|
+
var import_lucide_react7, import_react16, import_jsx_runtime18;
|
|
10148
10122
|
var init_PassKeyStep = __esm({
|
|
10149
10123
|
"src/internal/components/AuthMenu/PassKeyStep.tsx"() {
|
|
10150
10124
|
init_ProviderContext();
|
|
10151
10125
|
init_SessionContext();
|
|
10152
10126
|
init_i18n();
|
|
10153
10127
|
import_lucide_react7 = require("lucide-react");
|
|
10154
|
-
|
|
10128
|
+
import_react16 = require("react");
|
|
10155
10129
|
init_icons();
|
|
10156
10130
|
init_auth();
|
|
10157
10131
|
init_useLayoutDataStore();
|
|
@@ -10163,16 +10137,16 @@ var init_PassKeyStep = __esm({
|
|
|
10163
10137
|
});
|
|
10164
10138
|
|
|
10165
10139
|
// src/internal/components/ui/input.tsx
|
|
10166
|
-
var
|
|
10140
|
+
var import_react17, import_jsx_runtime19, Input;
|
|
10167
10141
|
var init_input = __esm({
|
|
10168
10142
|
"src/internal/components/ui/input.tsx"() {
|
|
10169
|
-
|
|
10143
|
+
import_react17 = __toESM(require("react"), 1);
|
|
10170
10144
|
init_utils();
|
|
10171
10145
|
import_jsx_runtime19 = require("react/jsx-runtime");
|
|
10172
|
-
Input =
|
|
10146
|
+
Input = import_react17.default.forwardRef((props, ref) => {
|
|
10173
10147
|
const { className, disabled, error, Icon: Icon2, element, inputClassName, ...inputProps } = props;
|
|
10174
|
-
const internalRef = (0,
|
|
10175
|
-
(0,
|
|
10148
|
+
const internalRef = (0, import_react17.useRef)(null);
|
|
10149
|
+
(0, import_react17.useImperativeHandle)(ref, () => internalRef.current);
|
|
10176
10150
|
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: cn2("w-full min-w-0 flex flex-col gap-1", className), children: [
|
|
10177
10151
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
10178
10152
|
"div",
|
|
@@ -10242,9 +10216,9 @@ var init_emailChallenge = __esm({
|
|
|
10242
10216
|
function Email() {
|
|
10243
10217
|
const { callbacksRef } = useProviderConfig();
|
|
10244
10218
|
const { t } = useT();
|
|
10245
|
-
const focusRef = (0,
|
|
10246
|
-
const inputRef = (0,
|
|
10247
|
-
const buttonRef = (0,
|
|
10219
|
+
const focusRef = (0, import_react18.useRef)(null);
|
|
10220
|
+
const inputRef = (0, import_react18.useRef)(null);
|
|
10221
|
+
const buttonRef = (0, import_react18.useRef)(null);
|
|
10248
10222
|
const isLoading = useSession((st) => st.isLoading);
|
|
10249
10223
|
const setIsLoading = useSession((st) => st.setIsLoading);
|
|
10250
10224
|
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
@@ -10308,7 +10282,7 @@ function Email() {
|
|
|
10308
10282
|
}
|
|
10309
10283
|
onSendVerificationCode(email);
|
|
10310
10284
|
};
|
|
10311
|
-
(0,
|
|
10285
|
+
(0, import_react18.useEffect)(() => {
|
|
10312
10286
|
if (!focusRef.current || !isMobileView) return;
|
|
10313
10287
|
focusRef.current?.focus();
|
|
10314
10288
|
setTimeout(() => {
|
|
@@ -10370,7 +10344,7 @@ function Email() {
|
|
|
10370
10344
|
)
|
|
10371
10345
|
] });
|
|
10372
10346
|
}
|
|
10373
|
-
var import_react_query5, import_lucide_react8,
|
|
10347
|
+
var import_react_query5, import_lucide_react8, import_react18, import_jsx_runtime20;
|
|
10374
10348
|
var init_Email = __esm({
|
|
10375
10349
|
"src/internal/components/AuthMenu/SignInStep/Email.tsx"() {
|
|
10376
10350
|
init_initial();
|
|
@@ -10379,7 +10353,7 @@ var init_Email = __esm({
|
|
|
10379
10353
|
init_i18n();
|
|
10380
10354
|
import_react_query5 = require("@tanstack/react-query");
|
|
10381
10355
|
import_lucide_react8 = require("lucide-react");
|
|
10382
|
-
|
|
10356
|
+
import_react18 = require("react");
|
|
10383
10357
|
init_useLayoutStore();
|
|
10384
10358
|
init_projectId();
|
|
10385
10359
|
init_button();
|
|
@@ -10544,7 +10518,7 @@ function Social(props) {
|
|
|
10544
10518
|
const { t } = useT();
|
|
10545
10519
|
const isLoading = useSession((st) => st.isLoading);
|
|
10546
10520
|
const setIsLoading = useSession((st) => st.setIsLoading);
|
|
10547
|
-
const onSocialAuth = (0,
|
|
10521
|
+
const onSocialAuth = (0, import_react19.useCallback)(
|
|
10548
10522
|
async (providerId) => {
|
|
10549
10523
|
const { setStep, setEmail, setFailedType, setAlert, setPasskeyStatus } = useAuthStore.getState();
|
|
10550
10524
|
const normalizedProviderId = providerId.toLowerCase();
|
|
@@ -10816,7 +10790,7 @@ function Social(props) {
|
|
|
10816
10790
|
}
|
|
10817
10791
|
);
|
|
10818
10792
|
}
|
|
10819
|
-
var
|
|
10793
|
+
var import_react19, import_jsx_runtime21, SUPPORTED_PROVIDERS, SOCIAL_ICONS, fetchTokensFromRefreshEndpoint, enrichLoginResponseWithTokens;
|
|
10820
10794
|
var init_Social = __esm({
|
|
10821
10795
|
"src/internal/components/AuthMenu/SignInStep/Social.tsx"() {
|
|
10822
10796
|
init_assets();
|
|
@@ -10825,7 +10799,7 @@ var init_Social = __esm({
|
|
|
10825
10799
|
init_SessionContext();
|
|
10826
10800
|
init_i18n();
|
|
10827
10801
|
init_useLayoutDataStore();
|
|
10828
|
-
|
|
10802
|
+
import_react19 = require("react");
|
|
10829
10803
|
init_auth();
|
|
10830
10804
|
init_constants();
|
|
10831
10805
|
init_utils();
|
|
@@ -10990,7 +10964,7 @@ function SignInStep(props) {
|
|
|
10990
10964
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react9.UserCircle, { className: "w-6 h-6" }),
|
|
10991
10965
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "font-bold text-xl leading-6", children: t("passport:auth.signin") })
|
|
10992
10966
|
] }),
|
|
10993
|
-
enabledSigninMethods.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
10967
|
+
enabledSigninMethods.map((kind, idx) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react20.Fragment, { children: [
|
|
10994
10968
|
idx > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center h-4", children: [
|
|
10995
10969
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { style: { borderTop: "1px solid var(--ui-kit-bd)" }, className: "flex-1" }),
|
|
10996
10970
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "text-[10px] px-2 flex-none leading-4", children: t("passport:auth.orSeparator") }),
|
|
@@ -11014,13 +10988,13 @@ function SignInStep(props) {
|
|
|
11014
10988
|
] })
|
|
11015
10989
|
] });
|
|
11016
10990
|
}
|
|
11017
|
-
var import_lucide_react9,
|
|
10991
|
+
var import_lucide_react9, import_react20, import_jsx_runtime23, TERMS_OF_SERVICE_URL;
|
|
11018
10992
|
var init_SignInStep = __esm({
|
|
11019
10993
|
"src/internal/components/AuthMenu/SignInStep/SignInStep.tsx"() {
|
|
11020
10994
|
init_ProviderContext();
|
|
11021
10995
|
init_i18n();
|
|
11022
10996
|
import_lucide_react9 = require("lucide-react");
|
|
11023
|
-
|
|
10997
|
+
import_react20 = require("react");
|
|
11024
10998
|
init_button();
|
|
11025
10999
|
init_Email();
|
|
11026
11000
|
init_Social();
|
|
@@ -11051,14 +11025,14 @@ var init_constants5 = __esm({
|
|
|
11051
11025
|
function useAuthMenuHandlers() {
|
|
11052
11026
|
const { config, callbacksRef } = useProviderConfig();
|
|
11053
11027
|
const qc = (0, import_react_query6.useQueryClient)();
|
|
11054
|
-
const pendingLoginResponseRef = (0,
|
|
11055
|
-
const [telegramCleanup, setTelegramCleanup] = (0,
|
|
11028
|
+
const pendingLoginResponseRef = (0, import_react21.useRef)(null);
|
|
11029
|
+
const [telegramCleanup, setTelegramCleanup] = (0, import_react21.useState)(null);
|
|
11056
11030
|
const usePaymaster = useSession((st) => st.usePaymaster);
|
|
11057
11031
|
const publicClient = useSession((st) => st.publicClient);
|
|
11058
11032
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
11059
11033
|
const setStep = useAuthStore((st) => st.setStep);
|
|
11060
11034
|
const setAlert = useAuthStore((st) => st.setAlert);
|
|
11061
|
-
const createSessionWithKeyshare = (0,
|
|
11035
|
+
const createSessionWithKeyshare = (0, import_react21.useCallback)(
|
|
11062
11036
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
11063
11037
|
const { setStatus } = useSession.getState();
|
|
11064
11038
|
try {
|
|
@@ -11100,7 +11074,7 @@ function useAuthMenuHandlers() {
|
|
|
11100
11074
|
},
|
|
11101
11075
|
[usePaymaster, activeChainId]
|
|
11102
11076
|
);
|
|
11103
|
-
const onAuthSuccess = (0,
|
|
11077
|
+
const onAuthSuccess = (0, import_react21.useCallback)(async () => {
|
|
11104
11078
|
const {
|
|
11105
11079
|
//
|
|
11106
11080
|
setSession,
|
|
@@ -11208,7 +11182,7 @@ function useAuthMenuHandlers() {
|
|
|
11208
11182
|
setStep("signin");
|
|
11209
11183
|
}
|
|
11210
11184
|
}, [qc, setStep, setAlert, createSessionWithKeyshare]);
|
|
11211
|
-
const goBackToSignIn = (0,
|
|
11185
|
+
const goBackToSignIn = (0, import_react21.useCallback)(() => {
|
|
11212
11186
|
setStep("signin");
|
|
11213
11187
|
setAlert(null);
|
|
11214
11188
|
if (telegramCleanup) {
|
|
@@ -11222,13 +11196,13 @@ function useAuthMenuHandlers() {
|
|
|
11222
11196
|
goBackToSignIn
|
|
11223
11197
|
};
|
|
11224
11198
|
}
|
|
11225
|
-
var import_react_query6,
|
|
11199
|
+
var import_react_query6, import_react21;
|
|
11226
11200
|
var init_useAuthMenuHanders = __esm({
|
|
11227
11201
|
"src/internal/components/AuthMenu/useAuthMenuHanders.ts"() {
|
|
11228
11202
|
init_ProviderContext();
|
|
11229
11203
|
init_SessionContext();
|
|
11230
11204
|
import_react_query6 = require("@tanstack/react-query");
|
|
11231
|
-
|
|
11205
|
+
import_react21 = require("react");
|
|
11232
11206
|
init_auth();
|
|
11233
11207
|
init_useLayoutDataStore();
|
|
11234
11208
|
init_useLayoutStore();
|
|
@@ -11238,11 +11212,11 @@ var init_useAuthMenuHanders = __esm({
|
|
|
11238
11212
|
});
|
|
11239
11213
|
|
|
11240
11214
|
// src/internal/components/AuthMenu/VerifyStep/VerificationCodeInput.tsx
|
|
11241
|
-
var
|
|
11215
|
+
var import_react22, import_jsx_runtime24, getRemainingSeconds, VerificationCodeInput;
|
|
11242
11216
|
var init_VerificationCodeInput = __esm({
|
|
11243
11217
|
"src/internal/components/AuthMenu/VerifyStep/VerificationCodeInput.tsx"() {
|
|
11244
11218
|
init_i18n();
|
|
11245
|
-
|
|
11219
|
+
import_react22 = require("react");
|
|
11246
11220
|
init_utils();
|
|
11247
11221
|
init_button();
|
|
11248
11222
|
init_useAuthStore();
|
|
@@ -11252,8 +11226,8 @@ var init_VerificationCodeInput = __esm({
|
|
|
11252
11226
|
const { onVerifyCode, onResendCode, isLoading, expiresAt } = props;
|
|
11253
11227
|
const { t } = useT();
|
|
11254
11228
|
const setAlert = useAuthStore((st) => st.setAlert);
|
|
11255
|
-
const [timeLeft, setTimeLeft] = (0,
|
|
11256
|
-
(0,
|
|
11229
|
+
const [timeLeft, setTimeLeft] = (0, import_react22.useState)(() => getRemainingSeconds(expiresAt));
|
|
11230
|
+
(0, import_react22.useEffect)(() => {
|
|
11257
11231
|
let intervalId;
|
|
11258
11232
|
const syncTimeLeft = () => {
|
|
11259
11233
|
const remaining = getRemainingSeconds(expiresAt);
|
|
@@ -11274,10 +11248,10 @@ var init_VerificationCodeInput = __esm({
|
|
|
11274
11248
|
document.removeEventListener("visibilitychange", syncTimeLeft);
|
|
11275
11249
|
};
|
|
11276
11250
|
}, [expiresAt]);
|
|
11277
|
-
const lastSubmittedRef = (0,
|
|
11278
|
-
const inputsRef = (0,
|
|
11279
|
-
const [digits, setDigits] = (0,
|
|
11280
|
-
(0,
|
|
11251
|
+
const lastSubmittedRef = (0, import_react22.useRef)(null);
|
|
11252
|
+
const inputsRef = (0, import_react22.useRef)([]);
|
|
11253
|
+
const [digits, setDigits] = (0, import_react22.useState)(["", "", "", "", "", ""]);
|
|
11254
|
+
(0, import_react22.useEffect)(() => {
|
|
11281
11255
|
const code = digits.join("");
|
|
11282
11256
|
if (code.length === 6 && digits.every((d) => d !== "") && !isLoading) {
|
|
11283
11257
|
if (lastSubmittedRef.current !== code) {
|
|
@@ -11286,7 +11260,7 @@ var init_VerificationCodeInput = __esm({
|
|
|
11286
11260
|
}
|
|
11287
11261
|
}
|
|
11288
11262
|
}, [digits, isLoading, onVerifyCode]);
|
|
11289
|
-
(0,
|
|
11263
|
+
(0, import_react22.useEffect)(() => {
|
|
11290
11264
|
const t2 = setTimeout(() => {
|
|
11291
11265
|
inputsRef.current[0]?.focus();
|
|
11292
11266
|
}, 0);
|
|
@@ -11411,7 +11385,7 @@ function VerifyStep(props) {
|
|
|
11411
11385
|
setEmailChallenge,
|
|
11412
11386
|
setAlert
|
|
11413
11387
|
} = useAuthStore();
|
|
11414
|
-
const [resendCount, setResendCount] = (0,
|
|
11388
|
+
const [resendCount, setResendCount] = (0, import_react23.useState)(0);
|
|
11415
11389
|
const { mutate: onVerifyCode, isPending: isCodeVerifying } = (0, import_react_query7.useMutation)({
|
|
11416
11390
|
mutationFn: async (code) => {
|
|
11417
11391
|
setIsLoading(true);
|
|
@@ -11563,7 +11537,7 @@ function VerifyStep(props) {
|
|
|
11563
11537
|
)
|
|
11564
11538
|
] });
|
|
11565
11539
|
}
|
|
11566
|
-
var import_react_query7, import_lucide_react10,
|
|
11540
|
+
var import_react_query7, import_lucide_react10, import_react23, import_jsx_runtime25;
|
|
11567
11541
|
var init_VerifyStep = __esm({
|
|
11568
11542
|
"src/internal/components/AuthMenu/VerifyStep/VerifyStep.tsx"() {
|
|
11569
11543
|
init_initial();
|
|
@@ -11572,7 +11546,7 @@ var init_VerifyStep = __esm({
|
|
|
11572
11546
|
init_i18n();
|
|
11573
11547
|
import_react_query7 = require("@tanstack/react-query");
|
|
11574
11548
|
import_lucide_react10 = require("lucide-react");
|
|
11575
|
-
|
|
11549
|
+
import_react23 = require("react");
|
|
11576
11550
|
init_icons();
|
|
11577
11551
|
init_projectId();
|
|
11578
11552
|
init_button();
|
|
@@ -11591,13 +11565,13 @@ var init_VerifyStep2 = __esm({
|
|
|
11591
11565
|
});
|
|
11592
11566
|
|
|
11593
11567
|
// src/internal/components/AuthMenu/AuthMenu.tsx
|
|
11594
|
-
var import_lucide_react11,
|
|
11568
|
+
var import_lucide_react11, import_react24, import_jsx_runtime26, AuthMenu;
|
|
11595
11569
|
var init_AuthMenu = __esm({
|
|
11596
11570
|
"src/internal/components/AuthMenu/AuthMenu.tsx"() {
|
|
11597
11571
|
init_SessionContext();
|
|
11598
11572
|
init_useT();
|
|
11599
11573
|
import_lucide_react11 = require("lucide-react");
|
|
11600
|
-
|
|
11574
|
+
import_react24 = require("react");
|
|
11601
11575
|
init_auth();
|
|
11602
11576
|
init_constants();
|
|
11603
11577
|
init_useLayoutDataStore();
|
|
@@ -11619,7 +11593,7 @@ var init_AuthMenu = __esm({
|
|
|
11619
11593
|
const step = useAuthStore((st) => st.step);
|
|
11620
11594
|
const alert2 = useAuthStore((st) => st.alert);
|
|
11621
11595
|
const { pendingLoginResponseRef, onAuthSuccess, goBackToSignIn } = useAuthMenuHandlers();
|
|
11622
|
-
(0,
|
|
11596
|
+
(0, import_react24.useEffect)(() => {
|
|
11623
11597
|
if (!pendingWalletLogin) return;
|
|
11624
11598
|
const loginResponse = pendingWalletLogin;
|
|
11625
11599
|
useLayoutDataStore.getState().setPendingWalletLogin(null);
|
|
@@ -11629,7 +11603,7 @@ var init_AuthMenu = __esm({
|
|
|
11629
11603
|
onAuthSuccess();
|
|
11630
11604
|
});
|
|
11631
11605
|
}, [pendingWalletLogin]);
|
|
11632
|
-
(0,
|
|
11606
|
+
(0, import_react24.useEffect)(() => {
|
|
11633
11607
|
useLayoutDataStore.getState().setTransitionPageHeight(DEFAULT_AUTH_MENU_HEIGHT);
|
|
11634
11608
|
return () => {
|
|
11635
11609
|
const { setStep, setPasskeyStatus, setEmail, setEmailChallenge, setAlert } = useAuthStore.getState();
|
|
@@ -11646,7 +11620,7 @@ var init_AuthMenu = __esm({
|
|
|
11646
11620
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: "Initializing wallet..." })
|
|
11647
11621
|
] });
|
|
11648
11622
|
}
|
|
11649
|
-
const stepContent = (0,
|
|
11623
|
+
const stepContent = (0, import_react24.useMemo)(
|
|
11650
11624
|
() => ({
|
|
11651
11625
|
"loading": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(LoadingStep, {}),
|
|
11652
11626
|
"failed": /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(AuthFailedStep, {}),
|
|
@@ -11843,7 +11817,7 @@ function getTooltipYPos(params) {
|
|
|
11843
11817
|
function OnboardingOverlay() {
|
|
11844
11818
|
const { t } = useT();
|
|
11845
11819
|
const page = useLayoutDataStore((st) => st.page);
|
|
11846
|
-
(0,
|
|
11820
|
+
(0, import_react25.useEffect)(() => {
|
|
11847
11821
|
setTimeout(() => {
|
|
11848
11822
|
if (!page) {
|
|
11849
11823
|
useOnboardingStore.getState().setMountIntoNode(document.body);
|
|
@@ -11861,7 +11835,7 @@ function OnboardingOverlay() {
|
|
|
11861
11835
|
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
11862
11836
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
11863
11837
|
const { elRect, mountIntoNode } = useOnboardingStore();
|
|
11864
|
-
const [continueCountdown, setContinueCountdown] = (0,
|
|
11838
|
+
const [continueCountdown, setContinueCountdown] = (0, import_react25.useState)(null);
|
|
11865
11839
|
const {
|
|
11866
11840
|
actions: tourStepActions = [],
|
|
11867
11841
|
waitSecs = null,
|
|
@@ -11869,7 +11843,7 @@ function OnboardingOverlay() {
|
|
|
11869
11843
|
description,
|
|
11870
11844
|
forced = false
|
|
11871
11845
|
} = onboarder.getCurrentStep() || {};
|
|
11872
|
-
const position = (0,
|
|
11846
|
+
const position = (0, import_react25.useMemo)(() => {
|
|
11873
11847
|
const posParams = {
|
|
11874
11848
|
x: elRect.x,
|
|
11875
11849
|
y: elRect.y,
|
|
@@ -11879,7 +11853,7 @@ function OnboardingOverlay() {
|
|
|
11879
11853
|
};
|
|
11880
11854
|
return { ...getTooltipXPos(posParams), ...getTooltipYPos(posParams) };
|
|
11881
11855
|
}, [elRect, isMobileView]);
|
|
11882
|
-
(0,
|
|
11856
|
+
(0, import_react25.useEffect)(() => {
|
|
11883
11857
|
if (!waitSecs) return;
|
|
11884
11858
|
setContinueCountdown(waitSecs);
|
|
11885
11859
|
const countdownInterval = setInterval(() => {
|
|
@@ -12021,12 +11995,12 @@ function OnboardingOverlay() {
|
|
|
12021
11995
|
mountIntoNode
|
|
12022
11996
|
);
|
|
12023
11997
|
}
|
|
12024
|
-
var import_lucide_react12,
|
|
11998
|
+
var import_lucide_react12, import_react25, import_react_dom2, import_jsx_runtime27, EXPAND, TOOLTIP_MIN_WIDTH, TOP_POS_OFFSET;
|
|
12025
11999
|
var init_OnboardingOverlay = __esm({
|
|
12026
12000
|
"src/internal/components/Onboarding/OnboardingOverlay.tsx"() {
|
|
12027
12001
|
init_i18n();
|
|
12028
12002
|
import_lucide_react12 = require("lucide-react");
|
|
12029
|
-
|
|
12003
|
+
import_react25 = require("react");
|
|
12030
12004
|
import_react_dom2 = require("react-dom");
|
|
12031
12005
|
init_useLayoutDataStore();
|
|
12032
12006
|
init_useLayoutStore();
|
|
@@ -12043,15 +12017,15 @@ var init_OnboardingOverlay = __esm({
|
|
|
12043
12017
|
|
|
12044
12018
|
// src/internal/components/Onboarding/useOnboardingTouirAvailable.ts
|
|
12045
12019
|
function useOnboardingTourAvailable(isAvailable) {
|
|
12046
|
-
(0,
|
|
12020
|
+
(0, import_react26.useEffect)(() => {
|
|
12047
12021
|
useOnboardingStore.getState().setIsTourAvailable(isAvailable);
|
|
12048
12022
|
return () => useOnboardingStore.getState().setIsTourAvailable(false);
|
|
12049
12023
|
}, [isAvailable]);
|
|
12050
12024
|
}
|
|
12051
|
-
var
|
|
12025
|
+
var import_react26;
|
|
12052
12026
|
var init_useOnboardingTouirAvailable = __esm({
|
|
12053
12027
|
"src/internal/components/Onboarding/useOnboardingTouirAvailable.ts"() {
|
|
12054
|
-
|
|
12028
|
+
import_react26 = require("react");
|
|
12055
12029
|
init_useOnboardingStore();
|
|
12056
12030
|
}
|
|
12057
12031
|
});
|
|
@@ -12067,17 +12041,17 @@ var init_Onboarding = __esm({
|
|
|
12067
12041
|
});
|
|
12068
12042
|
|
|
12069
12043
|
// src/internal/components/ui/switch.tsx
|
|
12070
|
-
var
|
|
12044
|
+
var import_react27, import_jsx_runtime28, Switch;
|
|
12071
12045
|
var init_switch = __esm({
|
|
12072
12046
|
"src/internal/components/ui/switch.tsx"() {
|
|
12073
|
-
|
|
12047
|
+
import_react27 = require("react");
|
|
12074
12048
|
init_useLayoutStore();
|
|
12075
12049
|
init_utils();
|
|
12076
12050
|
import_jsx_runtime28 = require("react/jsx-runtime");
|
|
12077
|
-
Switch = (0,
|
|
12051
|
+
Switch = (0, import_react27.forwardRef)((props, ref) => {
|
|
12078
12052
|
const { className, labels, ...inputProps } = props;
|
|
12079
12053
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
12080
|
-
const [labelW, setLabelW] = (0,
|
|
12054
|
+
const [labelW, setLabelW] = (0, import_react27.useState)(0);
|
|
12081
12055
|
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
12082
12056
|
"div",
|
|
12083
12057
|
{
|
|
@@ -12618,7 +12592,7 @@ var init_priceFormatter = __esm({
|
|
|
12618
12592
|
|
|
12619
12593
|
// src/internal/components/BuyMenu/useBuyMenuStore.ts
|
|
12620
12594
|
function useBuyMenuParams() {
|
|
12621
|
-
(0,
|
|
12595
|
+
(0, import_react28.useEffect)(() => {
|
|
12622
12596
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
12623
12597
|
if (!pageParams || !(0, import_lodash_es7.keys)(pageParams).length) return;
|
|
12624
12598
|
const { amount, crypto: crypto2, onRampWidgetRedirected } = pageParams || {};
|
|
@@ -12634,11 +12608,11 @@ function useBuyMenuParams() {
|
|
|
12634
12608
|
setPageParams(null);
|
|
12635
12609
|
}, []);
|
|
12636
12610
|
}
|
|
12637
|
-
var import_lodash_es7,
|
|
12611
|
+
var import_lodash_es7, import_react28, import_zustand7, import_middleware2, DEFAULT_MENU_SWITCHES, DEFAULT_AMOUNT, DEFAULT_PROVIDER, useBuyMenuStore;
|
|
12638
12612
|
var init_useBuyMenuStore = __esm({
|
|
12639
12613
|
"src/internal/components/BuyMenu/useBuyMenuStore.ts"() {
|
|
12640
12614
|
import_lodash_es7 = require("lodash-es");
|
|
12641
|
-
|
|
12615
|
+
import_react28 = require("react");
|
|
12642
12616
|
import_zustand7 = require("zustand");
|
|
12643
12617
|
import_middleware2 = require("zustand/middleware");
|
|
12644
12618
|
init_useLayoutDataStore();
|
|
@@ -12757,13 +12731,13 @@ function CryptoSelector(props) {
|
|
|
12757
12731
|
const { coins } = props;
|
|
12758
12732
|
const { t } = useT();
|
|
12759
12733
|
const chainConfig = useSession((st) => st.chainConfig);
|
|
12760
|
-
const [searchValue, setSearchValue] = (0,
|
|
12761
|
-
const [target, setTarget] = (0,
|
|
12762
|
-
const setSearchDebounced = (0,
|
|
12734
|
+
const [searchValue, setSearchValue] = (0, import_react29.useState)("");
|
|
12735
|
+
const [target, setTarget] = (0, import_react29.useState)("");
|
|
12736
|
+
const setSearchDebounced = (0, import_react29.useCallback)(
|
|
12763
12737
|
(0, import_lodash_es8.debounce)((value) => setTarget(value), 1e3),
|
|
12764
12738
|
[]
|
|
12765
12739
|
);
|
|
12766
|
-
const filteredCoins = (0,
|
|
12740
|
+
const filteredCoins = (0, import_react29.useMemo)(() => {
|
|
12767
12741
|
const sorted = [...coins].sort((a, b) => {
|
|
12768
12742
|
const aIdx = POPULAR_CRYPTOS.indexOf(a.symbol.toUpperCase());
|
|
12769
12743
|
const bIdx = POPULAR_CRYPTOS.indexOf(b.symbol.toUpperCase());
|
|
@@ -12869,7 +12843,7 @@ function CryptoSelectorTrigger(props) {
|
|
|
12869
12843
|
}
|
|
12870
12844
|
);
|
|
12871
12845
|
}
|
|
12872
|
-
var import_lodash_es8, import_lucide_react13,
|
|
12846
|
+
var import_lodash_es8, import_lucide_react13, import_react29, import_jsx_runtime41, POPULAR_CRYPTOS;
|
|
12873
12847
|
var init_CryptoSelector = __esm({
|
|
12874
12848
|
"src/internal/components/BuyMenu/components/CryptoSelector.tsx"() {
|
|
12875
12849
|
init_tokens();
|
|
@@ -12878,7 +12852,7 @@ var init_CryptoSelector = __esm({
|
|
|
12878
12852
|
init_i18n();
|
|
12879
12853
|
import_lodash_es8 = require("lodash-es");
|
|
12880
12854
|
import_lucide_react13 = require("lucide-react");
|
|
12881
|
-
|
|
12855
|
+
import_react29 = require("react");
|
|
12882
12856
|
init_priceFormatter();
|
|
12883
12857
|
init_button();
|
|
12884
12858
|
init_highlight();
|
|
@@ -12980,13 +12954,13 @@ function FiatSelector(props) {
|
|
|
12980
12954
|
const { fiats } = props;
|
|
12981
12955
|
const { t, i18n } = useT();
|
|
12982
12956
|
const locale = i18n.resolvedLanguage || "en";
|
|
12983
|
-
const [searchValue, setSearchValue] = (0,
|
|
12984
|
-
const [target, setTarget] = (0,
|
|
12985
|
-
const setSearchDebounced = (0,
|
|
12957
|
+
const [searchValue, setSearchValue] = (0, import_react30.useState)("");
|
|
12958
|
+
const [target, setTarget] = (0, import_react30.useState)("");
|
|
12959
|
+
const setSearchDebounced = (0, import_react30.useCallback)(
|
|
12986
12960
|
(0, import_lodash_es9.debounce)((value) => setTarget(value), 1e3),
|
|
12987
12961
|
[]
|
|
12988
12962
|
);
|
|
12989
|
-
const filteredFiats = (0,
|
|
12963
|
+
const filteredFiats = (0, import_react30.useMemo)(() => {
|
|
12990
12964
|
const sorted = [...fiats].sort((a, b) => {
|
|
12991
12965
|
const aIdx = POPULAR_FIATS.indexOf(a.ticker.toUpperCase());
|
|
12992
12966
|
const bIdx = POPULAR_FIATS.indexOf(b.ticker.toUpperCase());
|
|
@@ -13051,13 +13025,13 @@ function FiatSelectorTrigger(props) {
|
|
|
13051
13025
|
}
|
|
13052
13026
|
);
|
|
13053
13027
|
}
|
|
13054
|
-
var import_lodash_es9, import_lucide_react14,
|
|
13028
|
+
var import_lodash_es9, import_lucide_react14, import_react30, import_jsx_runtime43, POPULAR_FIATS;
|
|
13055
13029
|
var init_FiatSelector = __esm({
|
|
13056
13030
|
"src/internal/components/BuyMenu/components/FiatSelector.tsx"() {
|
|
13057
13031
|
init_i18n();
|
|
13058
13032
|
import_lodash_es9 = require("lodash-es");
|
|
13059
13033
|
import_lucide_react14 = require("lucide-react");
|
|
13060
|
-
|
|
13034
|
+
import_react30 = require("react");
|
|
13061
13035
|
init_button();
|
|
13062
13036
|
init_highlight();
|
|
13063
13037
|
init_input();
|
|
@@ -13749,7 +13723,7 @@ function BinanceTxHistory() {
|
|
|
13749
13723
|
txStatuses: SHOW_STATUSES
|
|
13750
13724
|
})
|
|
13751
13725
|
});
|
|
13752
|
-
const txList = (0,
|
|
13726
|
+
const txList = (0, import_react31.useMemo)(
|
|
13753
13727
|
() => historyData?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
13754
13728
|
[historyData]
|
|
13755
13729
|
);
|
|
@@ -13774,7 +13748,7 @@ function BinanceTxHistory() {
|
|
|
13774
13748
|
)
|
|
13775
13749
|
] });
|
|
13776
13750
|
}
|
|
13777
|
-
var import_react_query9, import_dayjs2, import_lucide_react17,
|
|
13751
|
+
var import_react_query9, import_dayjs2, import_lucide_react17, import_react31, import_jsx_runtime46, TRANSACTIONS_PAGESIZE, SHOW_STATUSES;
|
|
13778
13752
|
var init_BinanceTxHistory = __esm({
|
|
13779
13753
|
"src/internal/components/BuyMenu/binance/BinanceTxHistory.tsx"() {
|
|
13780
13754
|
init_tokens();
|
|
@@ -13784,7 +13758,7 @@ var init_BinanceTxHistory = __esm({
|
|
|
13784
13758
|
import_react_query9 = require("@tanstack/react-query");
|
|
13785
13759
|
import_dayjs2 = __toESM(require("dayjs"), 1);
|
|
13786
13760
|
import_lucide_react17 = require("lucide-react");
|
|
13787
|
-
|
|
13761
|
+
import_react31 = require("react");
|
|
13788
13762
|
init_priceFormatter();
|
|
13789
13763
|
init_badge();
|
|
13790
13764
|
init_button();
|
|
@@ -13801,8 +13775,8 @@ var init_BinanceTxHistory = __esm({
|
|
|
13801
13775
|
// src/internal/components/BuyMenu/binance/useBinanceSseTracing.ts
|
|
13802
13776
|
function useBinanceSseTxTracing(walletAddress) {
|
|
13803
13777
|
const qc = (0, import_react_query10.useQueryClient)();
|
|
13804
|
-
const debounceRef = (0,
|
|
13805
|
-
(0,
|
|
13778
|
+
const debounceRef = (0, import_react32.useRef)(null);
|
|
13779
|
+
(0, import_react32.useEffect)(() => {
|
|
13806
13780
|
if (!walletAddress) return;
|
|
13807
13781
|
const iframeManager = getIframeManager();
|
|
13808
13782
|
if (!iframeManager) return;
|
|
@@ -13824,11 +13798,11 @@ function useBinanceSseTxTracing(walletAddress) {
|
|
|
13824
13798
|
};
|
|
13825
13799
|
}, [walletAddress, qc]);
|
|
13826
13800
|
}
|
|
13827
|
-
var import_react_query10,
|
|
13801
|
+
var import_react_query10, import_react32;
|
|
13828
13802
|
var init_useBinanceSseTracing = __esm({
|
|
13829
13803
|
"src/internal/components/BuyMenu/binance/useBinanceSseTracing.ts"() {
|
|
13830
13804
|
import_react_query10 = require("@tanstack/react-query");
|
|
13831
|
-
|
|
13805
|
+
import_react32 = require("react");
|
|
13832
13806
|
init_iframe_manager();
|
|
13833
13807
|
init_queryKeys();
|
|
13834
13808
|
init_api2();
|
|
@@ -13896,7 +13870,7 @@ function Binance() {
|
|
|
13896
13870
|
});
|
|
13897
13871
|
const paymentModes = paymentModesData?.data?.paymentMethods || [];
|
|
13898
13872
|
const selectedPaymentMode = paymentModes?.find((el) => getPayMethodID(el) === paymentMode) || null;
|
|
13899
|
-
(0,
|
|
13873
|
+
(0, import_react33.useEffect)(() => {
|
|
13900
13874
|
useBuyMenuStore.getState().setMinAmount(Number(selectedPaymentMode?.fiatMinLimit || "0"));
|
|
13901
13875
|
}, [selectedPaymentMode]);
|
|
13902
13876
|
const { mutate: estimateQuote, isPending: isQuoteEstimating } = (0, import_react_query11.useMutation)({
|
|
@@ -13924,22 +13898,22 @@ function Binance() {
|
|
|
13924
13898
|
}
|
|
13925
13899
|
});
|
|
13926
13900
|
const availableFiats = (tradingPairsData?.data?.fiatCurrencies || []).map((ticker) => ({ ticker }));
|
|
13927
|
-
(0,
|
|
13901
|
+
(0, import_react33.useEffect)(() => {
|
|
13928
13902
|
if (!!selectedFiat || !availableFiats?.length) return;
|
|
13929
13903
|
const targetFiat = availableFiats.find((item) => PREFERRED_FIATS.includes(item.ticker)) || availableFiats[0];
|
|
13930
13904
|
useBuyMenuStore.getState().setSelectedFiat(targetFiat.ticker);
|
|
13931
13905
|
}, [availableFiats, selectedFiat]);
|
|
13932
|
-
(0,
|
|
13906
|
+
(0, import_react33.useEffect)(() => {
|
|
13933
13907
|
if (!!selectedCrypto || !networkAvailableCryptoList?.length) return;
|
|
13934
13908
|
const targetCrypto = networkAvailableCryptoList.find((item) => PREFERRED_CRYPTOS.includes(item.cryptoCurrency)) || networkAvailableCryptoList[0];
|
|
13935
13909
|
useBuyMenuStore.getState().setSelectedCrypto(targetCrypto.cryptoCurrency);
|
|
13936
13910
|
}, [networkAvailableCryptoList, selectedCrypto]);
|
|
13937
|
-
(0,
|
|
13911
|
+
(0, import_react33.useEffect)(() => {
|
|
13938
13912
|
if (!!paymentMode || !paymentModes.length) return;
|
|
13939
13913
|
const targetPaymentMode = paymentModes.find((item) => item.payMethodCode === PREFERRED_PAYMENT_METHOD) || paymentModes[0];
|
|
13940
13914
|
useBinanceStore.getState().setPaymentMode(getPayMethodID(targetPaymentMode));
|
|
13941
13915
|
}, [paymentModes]);
|
|
13942
|
-
(0,
|
|
13916
|
+
(0, import_react33.useEffect)(() => {
|
|
13943
13917
|
return () => {
|
|
13944
13918
|
useBinanceStore.getState().setPaymentMode(null);
|
|
13945
13919
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.binanceTradingPairs] });
|
|
@@ -14068,7 +14042,7 @@ function Binance() {
|
|
|
14068
14042
|
}
|
|
14069
14043
|
);
|
|
14070
14044
|
}
|
|
14071
|
-
var import_react_query11, import_lucide_react18,
|
|
14045
|
+
var import_react_query11, import_lucide_react18, import_react33, import_jsx_runtime47, PREFERRED_PAYMENT_METHOD, PREFERRED_FIATS, PREFERRED_CRYPTOS;
|
|
14072
14046
|
var init_Binance = __esm({
|
|
14073
14047
|
"src/internal/components/BuyMenu/binance/Binance.tsx"() {
|
|
14074
14048
|
init_utils();
|
|
@@ -14076,7 +14050,7 @@ var init_Binance = __esm({
|
|
|
14076
14050
|
init_i18n();
|
|
14077
14051
|
import_react_query11 = require("@tanstack/react-query");
|
|
14078
14052
|
import_lucide_react18 = require("lucide-react");
|
|
14079
|
-
|
|
14053
|
+
import_react33 = require("react");
|
|
14080
14054
|
init_Onboarding();
|
|
14081
14055
|
init_button();
|
|
14082
14056
|
init_highlight();
|
|
@@ -14351,7 +14325,7 @@ function FinchPayTxHistoryItem(props) {
|
|
|
14351
14325
|
function FinchPayTxHistory() {
|
|
14352
14326
|
const { t } = useT();
|
|
14353
14327
|
const walletAddress = useSession((st) => st.address);
|
|
14354
|
-
const [cursor, setCursor] = (0,
|
|
14328
|
+
const [cursor, setCursor] = (0, import_react34.useState)(1);
|
|
14355
14329
|
const {
|
|
14356
14330
|
data: txData,
|
|
14357
14331
|
isLoading: isTxDataLoading,
|
|
@@ -14373,7 +14347,7 @@ function FinchPayTxHistory() {
|
|
|
14373
14347
|
const pageCount = loadedPages[loadedPages.length - 1]?.pageCount || 1;
|
|
14374
14348
|
const txList = loadedPages.map((p) => p.data)[cursor - 1] || [];
|
|
14375
14349
|
console.log("[FINCHPAY] txList", txData);
|
|
14376
|
-
const handleNextPage = (0,
|
|
14350
|
+
const handleNextPage = (0, import_react34.useCallback)(
|
|
14377
14351
|
async (curCursor, curPageParams) => {
|
|
14378
14352
|
const maxLoadedPage = Math.max(...curPageParams);
|
|
14379
14353
|
if (curCursor !== maxLoadedPage) {
|
|
@@ -14428,7 +14402,7 @@ function FinchPayTxHistory() {
|
|
|
14428
14402
|
] })
|
|
14429
14403
|
] });
|
|
14430
14404
|
}
|
|
14431
|
-
var import_react_query13, import_dayjs3, import_lucide_react20,
|
|
14405
|
+
var import_react_query13, import_dayjs3, import_lucide_react20, import_react34, import_jsx_runtime49, TRANSACTIONS_PAGESIZE2;
|
|
14432
14406
|
var init_FinchPayTxHistory = __esm({
|
|
14433
14407
|
"src/internal/components/BuyMenu/finchpay/FinchPayTxHistory.tsx"() {
|
|
14434
14408
|
init_utils();
|
|
@@ -14437,7 +14411,7 @@ var init_FinchPayTxHistory = __esm({
|
|
|
14437
14411
|
import_react_query13 = require("@tanstack/react-query");
|
|
14438
14412
|
import_dayjs3 = __toESM(require("dayjs"), 1);
|
|
14439
14413
|
import_lucide_react20 = require("lucide-react");
|
|
14440
|
-
|
|
14414
|
+
import_react34 = require("react");
|
|
14441
14415
|
init_priceFormatter();
|
|
14442
14416
|
init_badge();
|
|
14443
14417
|
init_button();
|
|
@@ -14464,8 +14438,8 @@ var init_networks = __esm({
|
|
|
14464
14438
|
// src/internal/components/BuyMenu/finchpay/useFinchpaySseTxTracing.ts
|
|
14465
14439
|
function useFinchpaySseTxTracing(walletAddress) {
|
|
14466
14440
|
const qc = (0, import_react_query14.useQueryClient)();
|
|
14467
|
-
const debounceRef = (0,
|
|
14468
|
-
(0,
|
|
14441
|
+
const debounceRef = (0, import_react35.useRef)(null);
|
|
14442
|
+
(0, import_react35.useEffect)(() => {
|
|
14469
14443
|
if (!walletAddress) return;
|
|
14470
14444
|
const iframeManager = getIframeManager();
|
|
14471
14445
|
if (!iframeManager) return;
|
|
@@ -14487,11 +14461,11 @@ function useFinchpaySseTxTracing(walletAddress) {
|
|
|
14487
14461
|
};
|
|
14488
14462
|
}, [walletAddress, qc]);
|
|
14489
14463
|
}
|
|
14490
|
-
var import_react_query14,
|
|
14464
|
+
var import_react_query14, import_react35;
|
|
14491
14465
|
var init_useFinchpaySseTxTracing = __esm({
|
|
14492
14466
|
"src/internal/components/BuyMenu/finchpay/useFinchpaySseTxTracing.ts"() {
|
|
14493
14467
|
import_react_query14 = require("@tanstack/react-query");
|
|
14494
|
-
|
|
14468
|
+
import_react35 = require("react");
|
|
14495
14469
|
init_iframe_manager();
|
|
14496
14470
|
init_queryKeys();
|
|
14497
14471
|
init_api3();
|
|
@@ -14589,7 +14563,7 @@ function FinchPay() {
|
|
|
14589
14563
|
})
|
|
14590
14564
|
});
|
|
14591
14565
|
const minimum = Number(limitsData?.min_amount || "0");
|
|
14592
|
-
(0,
|
|
14566
|
+
(0, import_react36.useEffect)(() => {
|
|
14593
14567
|
if (minimum <= 0) return;
|
|
14594
14568
|
useBuyMenuStore.getState().setMinAmount(minimum);
|
|
14595
14569
|
}, [minimum]);
|
|
@@ -14617,23 +14591,23 @@ function FinchPay() {
|
|
|
14617
14591
|
// defaults to CARD estimation, widgetUrl
|
|
14618
14592
|
})
|
|
14619
14593
|
});
|
|
14620
|
-
(0,
|
|
14594
|
+
(0, import_react36.useEffect)(() => {
|
|
14621
14595
|
const { error: errorTitle, message: errorMessage } = handleErrors([currenciesError, limitsError, estimateError]);
|
|
14622
14596
|
if (!errorTitle && !errorMessage) return;
|
|
14623
14597
|
console.error(`[BuyModal][Binance] ${errorTitle}: ${errorMessage}`);
|
|
14624
14598
|
useBuyMenuStore.getState().setError(errorMessage);
|
|
14625
14599
|
}, [currenciesError, limitsError, estimateError]);
|
|
14626
|
-
(0,
|
|
14600
|
+
(0, import_react36.useEffect)(() => {
|
|
14627
14601
|
if (!!selectedFiat || currenciesData.fiats.length === 0) return;
|
|
14628
14602
|
const fallbackFiat = currenciesData.fiats[0];
|
|
14629
14603
|
const targetFiat = currenciesData.fiats.find((f) => f.ticker.toUpperCase() === "USD") || fallbackFiat;
|
|
14630
14604
|
useBuyMenuStore.getState().setSelectedFiat(targetFiat.ticker);
|
|
14631
14605
|
}, [currenciesData, selectedFiat]);
|
|
14632
|
-
(0,
|
|
14606
|
+
(0, import_react36.useEffect)(() => {
|
|
14633
14607
|
if (!!selectedCrypto || currenciesData.currentNetworkCoins.length === 0) return;
|
|
14634
14608
|
useBuyMenuStore.getState().setSelectedCrypto(currenciesData.currentNetworkCoins[0].ticker);
|
|
14635
14609
|
}, [currenciesData, selectedCrypto]);
|
|
14636
|
-
(0,
|
|
14610
|
+
(0, import_react36.useEffect)(() => {
|
|
14637
14611
|
return () => {
|
|
14638
14612
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.finchPayCurrencies] });
|
|
14639
14613
|
qc.resetQueries({ queryKey: [QUERY_KEYS2.finchPayLimits] });
|
|
@@ -14755,7 +14729,7 @@ function FinchPay() {
|
|
|
14755
14729
|
)
|
|
14756
14730
|
] });
|
|
14757
14731
|
}
|
|
14758
|
-
var import_react_query15, import_lucide_react21,
|
|
14732
|
+
var import_react_query15, import_lucide_react21, import_react36, import_jsx_runtime50;
|
|
14759
14733
|
var init_FinchPay = __esm({
|
|
14760
14734
|
"src/internal/components/BuyMenu/finchpay/FinchPay.tsx"() {
|
|
14761
14735
|
init_priceFormatter();
|
|
@@ -14764,7 +14738,7 @@ var init_FinchPay = __esm({
|
|
|
14764
14738
|
init_i18n();
|
|
14765
14739
|
import_react_query15 = require("@tanstack/react-query");
|
|
14766
14740
|
import_lucide_react21 = require("lucide-react");
|
|
14767
|
-
|
|
14741
|
+
import_react36 = require("react");
|
|
14768
14742
|
init_button();
|
|
14769
14743
|
init_highlight();
|
|
14770
14744
|
init_input();
|
|
@@ -14893,20 +14867,20 @@ var init_ProviderSelector = __esm({
|
|
|
14893
14867
|
});
|
|
14894
14868
|
|
|
14895
14869
|
// src/internal/components/BuyMenu/useHandleInputAmount.ts
|
|
14896
|
-
var
|
|
14870
|
+
var import_react37, ON_INPUT_QUERY_DELAY, useHandleInputAmount;
|
|
14897
14871
|
var init_useHandleInputAmount = __esm({
|
|
14898
14872
|
"src/internal/components/BuyMenu/useHandleInputAmount.ts"() {
|
|
14899
|
-
|
|
14873
|
+
import_react37 = require("react");
|
|
14900
14874
|
init_contants();
|
|
14901
14875
|
init_useBuyMenuStore();
|
|
14902
14876
|
ON_INPUT_QUERY_DELAY = 1500;
|
|
14903
14877
|
useHandleInputAmount = () => {
|
|
14904
|
-
const lastRampProviderRef = (0,
|
|
14878
|
+
const lastRampProviderRef = (0, import_react37.useRef)(DEFAULT_PROVIDER2);
|
|
14905
14879
|
const rampProvider = useBuyMenuStore((st) => st.rampProvider);
|
|
14906
14880
|
const srcInputAmount = useBuyMenuStore((st) => st.srcInputAmount);
|
|
14907
14881
|
const minAmount = useBuyMenuStore((st) => st.minAmount);
|
|
14908
|
-
const queryAmountTimer = (0,
|
|
14909
|
-
(0,
|
|
14882
|
+
const queryAmountTimer = (0, import_react37.useRef)(null);
|
|
14883
|
+
(0, import_react37.useEffect)(() => {
|
|
14910
14884
|
if (queryAmountTimer.current) clearTimeout(queryAmountTimer.current);
|
|
14911
14885
|
queryAmountTimer.current = setTimeout(() => {
|
|
14912
14886
|
const checkedValue = Math.ceil(Math.max(Number(srcInputAmount), Number(minAmount)));
|
|
@@ -14914,7 +14888,7 @@ var init_useHandleInputAmount = __esm({
|
|
|
14914
14888
|
useBuyMenuStore.getState().setSrcQueryAmount(checkedValue);
|
|
14915
14889
|
}, ON_INPUT_QUERY_DELAY);
|
|
14916
14890
|
}, [minAmount, srcInputAmount]);
|
|
14917
|
-
(0,
|
|
14891
|
+
(0, import_react37.useEffect)(() => {
|
|
14918
14892
|
if (lastRampProviderRef.current === rampProvider) return;
|
|
14919
14893
|
const {
|
|
14920
14894
|
setIsProviderSummary,
|
|
@@ -15408,10 +15382,10 @@ function ChainsMenu() {
|
|
|
15408
15382
|
const { t } = useT();
|
|
15409
15383
|
const config = useProviderConfig().config;
|
|
15410
15384
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
15411
|
-
const [isTestnets, setIsTestnets] = (0,
|
|
15412
|
-
const [nextChainId, setNextChainId] = (0,
|
|
15385
|
+
const [isTestnets, setIsTestnets] = (0, import_react38.useState)(false);
|
|
15386
|
+
const [nextChainId, setNextChainId] = (0, import_react38.useState)(null);
|
|
15413
15387
|
useOnboardingTourAvailable(true);
|
|
15414
|
-
const visibleNetworks = (0,
|
|
15388
|
+
const visibleNetworks = (0, import_react38.useMemo)(() => {
|
|
15415
15389
|
return NETWORK_OPTIONS.filter(
|
|
15416
15390
|
(option) => option.isActive && (isTestnets ? true : import_read15.SUPPORTED_MAINNETS.includes(option.chainId))
|
|
15417
15391
|
);
|
|
@@ -15478,7 +15452,7 @@ function ChainsMenu() {
|
|
|
15478
15452
|
)) })
|
|
15479
15453
|
] });
|
|
15480
15454
|
}
|
|
15481
|
-
var import_core3, import_read15, import_react_query16, import_lucide_react24,
|
|
15455
|
+
var import_core3, import_read15, import_react_query16, import_lucide_react24, import_react38, import_jsx_runtime60;
|
|
15482
15456
|
var init_ChainsMenu = __esm({
|
|
15483
15457
|
"src/internal/components/ChainsMenu/ChainsMenu.tsx"() {
|
|
15484
15458
|
init_networks3();
|
|
@@ -15489,7 +15463,7 @@ var init_ChainsMenu = __esm({
|
|
|
15489
15463
|
import_read15 = require("@embarkai/core/read");
|
|
15490
15464
|
import_react_query16 = require("@tanstack/react-query");
|
|
15491
15465
|
import_lucide_react24 = require("lucide-react");
|
|
15492
|
-
|
|
15466
|
+
import_react38 = require("react");
|
|
15493
15467
|
init_resolve_paymaster();
|
|
15494
15468
|
init_useLayoutDataStore();
|
|
15495
15469
|
init_Expandable2();
|
|
@@ -15866,16 +15840,16 @@ function useLinkedProfiles() {
|
|
|
15866
15840
|
}
|
|
15867
15841
|
});
|
|
15868
15842
|
const { profiles = [], avatar = null } = data || {};
|
|
15869
|
-
const refresh = (0,
|
|
15843
|
+
const refresh = (0, import_react39.useCallback)(async () => {
|
|
15870
15844
|
await qc.invalidateQueries({ queryKey: [LINKED_PROFILES_QUERY_KEY, address] });
|
|
15871
15845
|
}, [qc, address]);
|
|
15872
15846
|
return { profiles, avatar, isLoading, isFetching, error, refresh };
|
|
15873
15847
|
}
|
|
15874
|
-
var import_react_query17,
|
|
15848
|
+
var import_react_query17, import_react39, LINKED_PROFILES_QUERY_KEY;
|
|
15875
15849
|
var init_linkedProfiles = __esm({
|
|
15876
15850
|
"src/modules/linkedProfiles.ts"() {
|
|
15877
15851
|
import_react_query17 = require("@tanstack/react-query");
|
|
15878
|
-
|
|
15852
|
+
import_react39 = require("react");
|
|
15879
15853
|
init_SessionContext();
|
|
15880
15854
|
init_auth();
|
|
15881
15855
|
init_common();
|
|
@@ -16613,7 +16587,7 @@ function useLinkSocial() {
|
|
|
16613
16587
|
} = useProviderConfig();
|
|
16614
16588
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
16615
16589
|
const { providerType, linkIsLoading, setProviderType, setAlert, setLinkIsLoading } = useManageWalletStore();
|
|
16616
|
-
const handleLinkSocialProvider =
|
|
16590
|
+
const handleLinkSocialProvider = import_react40.default.useCallback(
|
|
16617
16591
|
async (providerIdRaw) => {
|
|
16618
16592
|
const providerKey = providerIdRaw.toLowerCase();
|
|
16619
16593
|
const normalizedKey = providerKey === "twitter" ? "x" : providerKey;
|
|
@@ -16671,8 +16645,8 @@ function useLinkSocial() {
|
|
|
16671
16645
|
},
|
|
16672
16646
|
[config.social?.providers]
|
|
16673
16647
|
);
|
|
16674
|
-
const [socialLinkStarted, setSocialLinkStarted] =
|
|
16675
|
-
(0,
|
|
16648
|
+
const [socialLinkStarted, setSocialLinkStarted] = import_react40.default.useState(false);
|
|
16649
|
+
(0, import_react40.useEffect)(() => {
|
|
16676
16650
|
const key = providerType?.toLowerCase();
|
|
16677
16651
|
console.log("[useLinkSocial] Effect triggered:", { key, linkIsLoading, socialLinkStarted });
|
|
16678
16652
|
if (key && key !== "telegram" && key !== "email" && key !== "passkey" && key !== "wallet") {
|
|
@@ -16686,7 +16660,7 @@ function useLinkSocial() {
|
|
|
16686
16660
|
}
|
|
16687
16661
|
}, [providerType, linkIsLoading, socialLinkStarted, handleLinkSocialProvider]);
|
|
16688
16662
|
}
|
|
16689
|
-
var import_react_query22,
|
|
16663
|
+
var import_react_query22, import_react40;
|
|
16690
16664
|
var init_useLinkSocial = __esm({
|
|
16691
16665
|
"src/internal/components/ManageWalletMenu/hooks/useLinkSocial.ts"() {
|
|
16692
16666
|
init_useLayoutDataStore();
|
|
@@ -16694,7 +16668,7 @@ var init_useLinkSocial = __esm({
|
|
|
16694
16668
|
init_SessionContext();
|
|
16695
16669
|
init_linkedProfiles();
|
|
16696
16670
|
import_react_query22 = require("@tanstack/react-query");
|
|
16697
|
-
|
|
16671
|
+
import_react40 = __toESM(require("react"), 1);
|
|
16698
16672
|
init_auth();
|
|
16699
16673
|
init_telegramBrowser();
|
|
16700
16674
|
init_useProvidersList();
|
|
@@ -16762,7 +16736,7 @@ function useLinkTelegram() {
|
|
|
16762
16736
|
const address = useSession((st) => st.address);
|
|
16763
16737
|
const { providerType, linkIsLoading, setLinkIsLoading, setProviderType, setAlert } = useManageWalletStore();
|
|
16764
16738
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
16765
|
-
const handleLinkTelegram = (0,
|
|
16739
|
+
const handleLinkTelegram = (0, import_react41.useCallback)(async () => {
|
|
16766
16740
|
try {
|
|
16767
16741
|
if (shouldBlockSocialAuthInTelegram("telegram")) {
|
|
16768
16742
|
setAlert(buildTelegramBrowserRestriction("Telegram", "linking"));
|
|
@@ -16809,8 +16783,8 @@ function useLinkTelegram() {
|
|
|
16809
16783
|
setLinkIsLoading(false);
|
|
16810
16784
|
}
|
|
16811
16785
|
}, [config.social?.providers]);
|
|
16812
|
-
const [telegramLinkStarted, setTelegramLinkStarted] = (0,
|
|
16813
|
-
(0,
|
|
16786
|
+
const [telegramLinkStarted, setTelegramLinkStarted] = (0, import_react41.useState)(false);
|
|
16787
|
+
(0, import_react41.useEffect)(() => {
|
|
16814
16788
|
console.log("[useLinkTelegram] Effect triggered:", { providerType, linkIsLoading, telegramLinkStarted });
|
|
16815
16789
|
if (providerType === "telegram" && !linkIsLoading && !telegramLinkStarted) {
|
|
16816
16790
|
console.log("[useLinkTelegram] Starting Telegram link flow");
|
|
@@ -16818,20 +16792,20 @@ function useLinkTelegram() {
|
|
|
16818
16792
|
handleLinkTelegram();
|
|
16819
16793
|
}
|
|
16820
16794
|
}, [providerType, handleLinkTelegram, linkIsLoading, telegramLinkStarted]);
|
|
16821
|
-
(0,
|
|
16795
|
+
(0, import_react41.useEffect)(() => {
|
|
16822
16796
|
if (providerType !== "telegram") {
|
|
16823
16797
|
setTelegramLinkStarted(false);
|
|
16824
16798
|
}
|
|
16825
16799
|
}, [providerType]);
|
|
16826
16800
|
}
|
|
16827
|
-
var import_react_query23,
|
|
16801
|
+
var import_react_query23, import_react41;
|
|
16828
16802
|
var init_useLinkTelegram = __esm({
|
|
16829
16803
|
"src/internal/components/ManageWalletMenu/hooks/useLinkTelegram.ts"() {
|
|
16830
16804
|
init_ProviderContext();
|
|
16831
16805
|
init_SessionContext();
|
|
16832
16806
|
init_linkedProfiles();
|
|
16833
16807
|
import_react_query23 = require("@tanstack/react-query");
|
|
16834
|
-
|
|
16808
|
+
import_react41 = require("react");
|
|
16835
16809
|
init_telegram2();
|
|
16836
16810
|
init_useLayoutDataStore();
|
|
16837
16811
|
init_telegramBrowser();
|
|
@@ -17031,7 +17005,7 @@ function ManageWalletMenu() {
|
|
|
17031
17005
|
} = useManageWalletStore();
|
|
17032
17006
|
const configuredProviders = getConfiguredProviders(config.current);
|
|
17033
17007
|
const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
|
|
17034
|
-
const renderProviders = (0,
|
|
17008
|
+
const renderProviders = (0, import_react42.useMemo)(() => {
|
|
17035
17009
|
const normalizeProviderName = (name) => {
|
|
17036
17010
|
if (name === "x") return "twitter";
|
|
17037
17011
|
return name;
|
|
@@ -17156,7 +17130,7 @@ function ManageWalletMenu() {
|
|
|
17156
17130
|
] })
|
|
17157
17131
|
] });
|
|
17158
17132
|
}
|
|
17159
|
-
var import_lodash_es11, import_lucide_react31,
|
|
17133
|
+
var import_lodash_es11, import_lucide_react31, import_react42, import_jsx_runtime72, POSSIBLE_PROVIDERS, MULTI_PROVIDERS;
|
|
17160
17134
|
var init_ManageWallet = __esm({
|
|
17161
17135
|
"src/internal/components/ManageWalletMenu/ManageWallet.tsx"() {
|
|
17162
17136
|
init_useLayoutDataStore();
|
|
@@ -17165,7 +17139,7 @@ var init_ManageWallet = __esm({
|
|
|
17165
17139
|
init_i18n();
|
|
17166
17140
|
import_lodash_es11 = require("lodash-es");
|
|
17167
17141
|
import_lucide_react31 = require("lucide-react");
|
|
17168
|
-
|
|
17142
|
+
import_react42 = require("react");
|
|
17169
17143
|
init_constants();
|
|
17170
17144
|
init_telegramBrowser();
|
|
17171
17145
|
init_Expandable2();
|
|
@@ -17203,7 +17177,7 @@ function UnlinkProviderMenu() {
|
|
|
17203
17177
|
const { t } = useT();
|
|
17204
17178
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
17205
17179
|
const { confirmUnlink, setConfirmUnlink, setAlert } = useManageWalletStore();
|
|
17206
|
-
const [confirmInput, setConfirmInput] = (0,
|
|
17180
|
+
const [confirmInput, setConfirmInput] = (0, import_react43.useState)("");
|
|
17207
17181
|
const { mutate: handleUnlinkProvider, isPending: isProviderUnlinking } = (0, import_react_query24.useMutation)({
|
|
17208
17182
|
mutationFn: async () => {
|
|
17209
17183
|
if (!confirmUnlink) {
|
|
@@ -17285,7 +17259,7 @@ function UnlinkProviderMenu() {
|
|
|
17285
17259
|
] })
|
|
17286
17260
|
] });
|
|
17287
17261
|
}
|
|
17288
|
-
var import_react_query24, import_lucide_react32,
|
|
17262
|
+
var import_react_query24, import_lucide_react32, import_react43, import_wagmi2, import_jsx_runtime73;
|
|
17289
17263
|
var init_UnlinkProviderMenu = __esm({
|
|
17290
17264
|
"src/internal/components/ManageWalletMenu/UnlinkProviderMenu.tsx"() {
|
|
17291
17265
|
init_useLayoutDataStore();
|
|
@@ -17295,7 +17269,7 @@ var init_UnlinkProviderMenu = __esm({
|
|
|
17295
17269
|
init_linkedProfiles();
|
|
17296
17270
|
import_react_query24 = require("@tanstack/react-query");
|
|
17297
17271
|
import_lucide_react32 = require("lucide-react");
|
|
17298
|
-
|
|
17272
|
+
import_react43 = require("react");
|
|
17299
17273
|
import_wagmi2 = require("wagmi");
|
|
17300
17274
|
init_auth();
|
|
17301
17275
|
init_useExternalWalletStore();
|
|
@@ -17336,8 +17310,8 @@ var init_ManageWalletMenu = __esm({
|
|
|
17336
17310
|
|
|
17337
17311
|
// src/internal/components/ConnectExternalWalletMenu/useConnectExternalWalletMenuParams.ts
|
|
17338
17312
|
function useConnectExternalWalletMenuParams() {
|
|
17339
|
-
const paramsRef = (0,
|
|
17340
|
-
(0,
|
|
17313
|
+
const paramsRef = (0, import_react44.useRef)(null);
|
|
17314
|
+
(0, import_react44.useEffect)(() => {
|
|
17341
17315
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
17342
17316
|
if (!pageParams || !(0, import_lodash_es12.keys)(pageParams).length) return;
|
|
17343
17317
|
paramsRef.current = pageParams;
|
|
@@ -17345,11 +17319,11 @@ function useConnectExternalWalletMenuParams() {
|
|
|
17345
17319
|
}, []);
|
|
17346
17320
|
return paramsRef;
|
|
17347
17321
|
}
|
|
17348
|
-
var import_lodash_es12,
|
|
17322
|
+
var import_lodash_es12, import_react44;
|
|
17349
17323
|
var init_useConnectExternalWalletMenuParams = __esm({
|
|
17350
17324
|
"src/internal/components/ConnectExternalWalletMenu/useConnectExternalWalletMenuParams.ts"() {
|
|
17351
17325
|
import_lodash_es12 = require("lodash-es");
|
|
17352
|
-
|
|
17326
|
+
import_react44 = require("react");
|
|
17353
17327
|
init_useLayoutDataStore();
|
|
17354
17328
|
}
|
|
17355
17329
|
});
|
|
@@ -17360,18 +17334,18 @@ function hasInjectedWallet() {
|
|
|
17360
17334
|
return mipdStore.getProviders().length > 0 || !!window.ethereum;
|
|
17361
17335
|
}
|
|
17362
17336
|
function useHasInjectedWallet() {
|
|
17363
|
-
return (0,
|
|
17337
|
+
return (0, import_react45.useSyncExternalStore)(
|
|
17364
17338
|
(onStoreChange) => mipdStore?.subscribe(onStoreChange) ?? (() => {
|
|
17365
17339
|
}),
|
|
17366
17340
|
hasInjectedWallet,
|
|
17367
17341
|
() => false
|
|
17368
17342
|
);
|
|
17369
17343
|
}
|
|
17370
|
-
var import_mipd,
|
|
17344
|
+
var import_mipd, import_react45, mipdStore;
|
|
17371
17345
|
var init_useHasInjectedWallet = __esm({
|
|
17372
17346
|
"src/internal/components/ConnectExternalWalletMenu/useHasInjectedWallet.ts"() {
|
|
17373
17347
|
import_mipd = require("mipd");
|
|
17374
|
-
|
|
17348
|
+
import_react45 = require("react");
|
|
17375
17349
|
mipdStore = typeof window !== "undefined" ? (0, import_mipd.createStore)() : void 0;
|
|
17376
17350
|
}
|
|
17377
17351
|
});
|
|
@@ -17399,7 +17373,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17399
17373
|
const { mutateAsync: signMessageAsync } = (0, import_wagmi3.useSignMessage)();
|
|
17400
17374
|
const { mutateAsync: switchChainAsync } = (0, import_wagmi3.useSwitchChain)();
|
|
17401
17375
|
const { mutateAsync: switchConnectionAsync } = (0, import_wagmi3.useSwitchConnection)();
|
|
17402
|
-
const [isPreparingConnect, setIsPreparingConnect] = (0,
|
|
17376
|
+
const [isPreparingConnect, setIsPreparingConnect] = (0, import_react46.useState)(false);
|
|
17403
17377
|
const signOnSupportedChain = async (params) => {
|
|
17404
17378
|
const { connector, account, message } = params;
|
|
17405
17379
|
const signOnce = async (viaFallback = false) => {
|
|
@@ -17425,7 +17399,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17425
17399
|
queryKey: [PROVIDERS_QUERY_KEY, embarkAiAddress],
|
|
17426
17400
|
queryFn: async () => getLinkedProviders()
|
|
17427
17401
|
});
|
|
17428
|
-
const [connectError, setConnectError] = (0,
|
|
17402
|
+
const [connectError, setConnectError] = (0, import_react46.useState)(null);
|
|
17429
17403
|
const { mutateAsync: onLinkingComplete } = (0, import_react_query25.useMutation)({
|
|
17430
17404
|
mutationFn: async (success) => {
|
|
17431
17405
|
useManageWalletStore.getState().setProviderType(null);
|
|
@@ -17579,7 +17553,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17579
17553
|
}, 100);
|
|
17580
17554
|
await dropFailedConnectorSession(error, connector, wagmiConfig3);
|
|
17581
17555
|
}
|
|
17582
|
-
const visibleConnectors = (0,
|
|
17556
|
+
const visibleConnectors = (0, import_react46.useMemo)(() => {
|
|
17583
17557
|
const seen = /* @__PURE__ */ new Set();
|
|
17584
17558
|
const unique = connectors.filter((connector) => {
|
|
17585
17559
|
const skipConnector = seen.has(connector.uid);
|
|
@@ -17597,7 +17571,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17597
17571
|
(connector) => allowed.includes(connector.id.toLowerCase()) || allowed.includes(connector.name.toLowerCase())
|
|
17598
17572
|
);
|
|
17599
17573
|
}, [connectors, allowedWallets, hasInjectedWallet2]);
|
|
17600
|
-
const getInstructionSteps = (0,
|
|
17574
|
+
const getInstructionSteps = (0, import_react46.useCallback)(() => {
|
|
17601
17575
|
const connectFlowType = getConnectFlowType({
|
|
17602
17576
|
isEmbarkAI: !!embarkAiAddress,
|
|
17603
17577
|
connectFlow: menuParams.current?.connectFlowType || "auth"
|
|
@@ -17661,14 +17635,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17661
17635
|
} finally {
|
|
17662
17636
|
setIsPreparingConnect(false);
|
|
17663
17637
|
}
|
|
17664
|
-
|
|
17665
|
-
case (connector.id === "metaMaskSDK" && !hasInjectedWallet2):
|
|
17666
|
-
closeEmbarkAI();
|
|
17667
|
-
break;
|
|
17668
|
-
default:
|
|
17669
|
-
useLayoutStore.getState().setIsDialogForced(true);
|
|
17670
|
-
break;
|
|
17671
|
-
}
|
|
17638
|
+
useLayoutStore.getState().setIsDialogForced(true);
|
|
17672
17639
|
try {
|
|
17673
17640
|
await connect({ connector });
|
|
17674
17641
|
} catch {
|
|
@@ -17712,7 +17679,7 @@ function ConnectExternalWalletMenu() {
|
|
|
17712
17679
|
] })
|
|
17713
17680
|
] });
|
|
17714
17681
|
}
|
|
17715
|
-
var import_react_query25, import_lucide_react33,
|
|
17682
|
+
var import_react_query25, import_lucide_react33, import_react46, import_wagmi3, import_chains, import_jsx_runtime74, SIGN_FALLBACK_CHAIN_ID;
|
|
17716
17683
|
var init_ConnectExternalWalletMenu = __esm({
|
|
17717
17684
|
"src/internal/components/ConnectExternalWalletMenu/ConnectExternalWalletMenu.tsx"() {
|
|
17718
17685
|
init_ProviderContext();
|
|
@@ -17724,7 +17691,7 @@ var init_ConnectExternalWalletMenu = __esm({
|
|
|
17724
17691
|
init_linkedProfiles();
|
|
17725
17692
|
import_react_query25 = require("@tanstack/react-query");
|
|
17726
17693
|
import_lucide_react33 = require("lucide-react");
|
|
17727
|
-
|
|
17694
|
+
import_react46 = require("react");
|
|
17728
17695
|
import_wagmi3 = require("wagmi");
|
|
17729
17696
|
import_chains = require("wagmi/chains");
|
|
17730
17697
|
init_common();
|
|
@@ -17750,67 +17717,74 @@ function useExternalWalletConnnect(options) {
|
|
|
17750
17717
|
const walletMode = config.current?.wallet?.mode;
|
|
17751
17718
|
const wagmiConfig3 = (0, import_wagmi4.useConfig)();
|
|
17752
17719
|
const connectors = (0, import_wagmi4.useConnectors)();
|
|
17753
|
-
const
|
|
17754
|
-
const { mutate: connect, ...restUseConnect } = (0, import_wagmi4.useConnect)(
|
|
17755
|
-
|
|
17756
|
-
|
|
17757
|
-
|
|
17758
|
-
|
|
17759
|
-
|
|
17760
|
-
|
|
17761
|
-
|
|
17762
|
-
connectorName: connector.name || "Unknown Wallet"
|
|
17763
|
-
});
|
|
17764
|
-
onSuccess?.({ connected: true, address: signingWalletAddress });
|
|
17765
|
-
useLayoutStore.getState().setIsDialogForced(false);
|
|
17766
|
-
},
|
|
17767
|
-
onError: async (error, { connector }) => {
|
|
17768
|
-
await dropFailedConnectorSession(error, connector, wagmiConfig3);
|
|
17769
|
-
onError?.({
|
|
17770
|
-
connected: false,
|
|
17771
|
-
connector: connector?.name || "Unknown Wallet",
|
|
17772
|
-
error
|
|
17773
|
-
});
|
|
17774
|
-
useLayoutStore.getState().setIsDialogForced(false);
|
|
17775
|
-
}
|
|
17776
|
-
}
|
|
17777
|
-
});
|
|
17778
|
-
const disconnectExternalWallet = (0, import_react48.useCallback)(() => {
|
|
17779
|
-
try {
|
|
17780
|
-
disconnect();
|
|
17781
|
-
} catch {
|
|
17782
|
-
return;
|
|
17783
|
-
}
|
|
17784
|
-
useExternalWalletStore.getState().clearExternalWallet();
|
|
17785
|
-
}, [disconnect]);
|
|
17786
|
-
const connectExternalWallet = (0, import_react48.useCallback)(
|
|
17720
|
+
const connections = (0, import_wagmi4.useConnections)();
|
|
17721
|
+
const { mutate: connect, mutateAsync: connectAsync, ...restUseConnect } = (0, import_wagmi4.useConnect)();
|
|
17722
|
+
const { mutateAsync: disconnectAsync } = (0, import_wagmi4.useDisconnect)();
|
|
17723
|
+
const disconnectExternalWallet = (0, import_react47.useCallback)(async () => {
|
|
17724
|
+
await disconnectAsync();
|
|
17725
|
+
const { externalAddress, clearExternalWallet } = useExternalWalletStore.getState();
|
|
17726
|
+
if (!!externalAddress) clearExternalWallet();
|
|
17727
|
+
}, [disconnectAsync]);
|
|
17728
|
+
const connectExternalWallet = (0, import_react47.useCallback)(
|
|
17787
17729
|
async (walletConnectorType) => {
|
|
17788
|
-
disconnectExternalWallet();
|
|
17789
17730
|
const connector = connectors.find((c) => c.id === walletConnectorType);
|
|
17790
17731
|
if (!connector) {
|
|
17791
|
-
console.
|
|
17732
|
+
console.warn("[useExternalWalletConnect] Connector not found for:", walletConnectorType);
|
|
17792
17733
|
return;
|
|
17793
17734
|
}
|
|
17735
|
+
const existingConnection = connections.find((c) => c.connector.uid === connector.uid);
|
|
17736
|
+
if (!!existingConnection?.connector) {
|
|
17737
|
+
console.warn("[useExternalWalletConnect] Disconnecting existing connection");
|
|
17738
|
+
await disconnectExternalWallet();
|
|
17739
|
+
}
|
|
17794
17740
|
useLayoutStore.getState().setIsDialogForced(true);
|
|
17795
17741
|
try {
|
|
17796
|
-
|
|
17797
|
-
|
|
17742
|
+
connect(
|
|
17743
|
+
{ connector },
|
|
17744
|
+
{
|
|
17745
|
+
onSuccess: (connectionData, { connector: connector2 }) => {
|
|
17746
|
+
const { chainId, accounts } = connectionData;
|
|
17747
|
+
const signingWalletAddress = accounts[0];
|
|
17748
|
+
useExternalWalletStore.getState().setExternalWallet({
|
|
17749
|
+
address: signingWalletAddress,
|
|
17750
|
+
chainId,
|
|
17751
|
+
connectorName: connector2.name || "Unknown Wallet"
|
|
17752
|
+
});
|
|
17753
|
+
onSuccess?.({ connected: true, address: signingWalletAddress });
|
|
17754
|
+
setTimeout(() => useLayoutStore.getState().setIsDialogForced(false), 100);
|
|
17755
|
+
},
|
|
17756
|
+
onError: async (error, { connector: connector2 }) => {
|
|
17757
|
+
await dropFailedConnectorSession(error, connector2, wagmiConfig3);
|
|
17758
|
+
onError?.({
|
|
17759
|
+
connected: false,
|
|
17760
|
+
connector: connector2?.name || "Unknown Wallet",
|
|
17761
|
+
error
|
|
17762
|
+
});
|
|
17763
|
+
setTimeout(() => useLayoutStore.getState().setIsDialogForced(false), 100);
|
|
17764
|
+
}
|
|
17765
|
+
}
|
|
17766
|
+
);
|
|
17767
|
+
} catch (connectionError) {
|
|
17768
|
+
console.warn("[useExternalWalletConnect] Error:", connectionError);
|
|
17769
|
+
return;
|
|
17798
17770
|
}
|
|
17799
17771
|
},
|
|
17800
|
-
[connectors]
|
|
17772
|
+
[connections, connectors, onSuccess, onError]
|
|
17801
17773
|
);
|
|
17802
17774
|
return {
|
|
17803
17775
|
isAvailable: walletMode === "direct" || walletMode === "both",
|
|
17804
17776
|
mutate: connectExternalWallet,
|
|
17777
|
+
mutateAsync: connectExternalWallet,
|
|
17805
17778
|
disconnect: disconnectExternalWallet,
|
|
17806
|
-
...restUseConnect
|
|
17779
|
+
...(0, import_lodash_es13.omit)(restUseConnect, ["mutate", "mutateAsync"])
|
|
17807
17780
|
};
|
|
17808
17781
|
}
|
|
17809
|
-
var
|
|
17782
|
+
var import_lodash_es13, import_react47, import_wagmi4;
|
|
17810
17783
|
var init_useExternalWalletConnect = __esm({
|
|
17811
17784
|
"src/internal/components/ConnectExternalWalletMenu/useExternalWalletConnect.ts"() {
|
|
17812
17785
|
init_ProviderContext();
|
|
17813
|
-
|
|
17786
|
+
import_lodash_es13 = require("lodash-es");
|
|
17787
|
+
import_react47 = require("react");
|
|
17814
17788
|
import_wagmi4 = require("wagmi");
|
|
17815
17789
|
init_useLayoutStore();
|
|
17816
17790
|
init_connect_errors();
|
|
@@ -17903,8 +17877,8 @@ function getErrorMessage(err) {
|
|
|
17903
17877
|
function DeviceLinkScreen() {
|
|
17904
17878
|
const setPage = useLayoutDataStore((s) => s.setPage);
|
|
17905
17879
|
const { mutate: link, isPending } = useLinkDevice();
|
|
17906
|
-
const [code, setCode] = (0,
|
|
17907
|
-
const [error, setError] = (0,
|
|
17880
|
+
const [code, setCode] = (0, import_react48.useState)("");
|
|
17881
|
+
const [error, setError] = (0, import_react48.useState)(null);
|
|
17908
17882
|
const isValid = code.length === 6 && VALID_CHARS.test(code);
|
|
17909
17883
|
function handleCodeChange(value) {
|
|
17910
17884
|
const upper = value.toUpperCase().slice(0, 6);
|
|
@@ -17946,11 +17920,11 @@ function DeviceLinkScreen() {
|
|
|
17946
17920
|
/* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { variant: "default", size: "large", className: "w-full", disabled: !isValid || isPending, onClick: handleLink, children: isPending ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react34.Loader2, { className: "w-4 h-4 animate-spin" }) : "Link" })
|
|
17947
17921
|
] });
|
|
17948
17922
|
}
|
|
17949
|
-
var import_lucide_react34,
|
|
17923
|
+
var import_lucide_react34, import_react48, import_jsx_runtime75, VALID_CHARS;
|
|
17950
17924
|
var init_DeviceLinkScreen = __esm({
|
|
17951
17925
|
"src/internal/components/DevicesMenu/DeviceLinkScreen.tsx"() {
|
|
17952
17926
|
import_lucide_react34 = require("lucide-react");
|
|
17953
|
-
|
|
17927
|
+
import_react48 = require("react");
|
|
17954
17928
|
init_devices();
|
|
17955
17929
|
init_useLayoutDataStore();
|
|
17956
17930
|
init_Expandable2();
|
|
@@ -18489,19 +18463,19 @@ function DeviceManageScreen() {
|
|
|
18489
18463
|
const userId = session?.mpcUserId || "";
|
|
18490
18464
|
const deviceId = pageParams?.deviceId;
|
|
18491
18465
|
const deviceName = pageParams?.deviceName;
|
|
18492
|
-
const guardianRef = (0,
|
|
18493
|
-
const [screen, setScreen] = (0,
|
|
18494
|
-
const [actionState, setActionState] = (0,
|
|
18495
|
-
const [password, setPassword] = (0,
|
|
18496
|
-
const [statusMessage, setStatusMessage] = (0,
|
|
18497
|
-
const [errorMessage, setErrorMessage] = (0,
|
|
18498
|
-
const [waitingConfirm, setWaitingConfirm] = (0,
|
|
18499
|
-
(0,
|
|
18466
|
+
const guardianRef = (0, import_react49.useRef)(null);
|
|
18467
|
+
const [screen, setScreen] = (0, import_react49.useState)({ step: "connecting" });
|
|
18468
|
+
const [actionState, setActionState] = (0, import_react49.useState)(null);
|
|
18469
|
+
const [password, setPassword] = (0, import_react49.useState)("");
|
|
18470
|
+
const [statusMessage, setStatusMessage] = (0, import_react49.useState)(null);
|
|
18471
|
+
const [errorMessage, setErrorMessage] = (0, import_react49.useState)(null);
|
|
18472
|
+
const [waitingConfirm, setWaitingConfirm] = (0, import_react49.useState)(false);
|
|
18473
|
+
(0, import_react49.useEffect)(() => {
|
|
18500
18474
|
if (!statusMessage) return;
|
|
18501
18475
|
const t = setTimeout(() => setStatusMessage(null), 3e3);
|
|
18502
18476
|
return () => clearTimeout(t);
|
|
18503
18477
|
}, [statusMessage]);
|
|
18504
|
-
(0,
|
|
18478
|
+
(0, import_react49.useEffect)(() => {
|
|
18505
18479
|
if (!deviceId || !isWebSerialAvailable()) {
|
|
18506
18480
|
setScreen({ step: "error", message: "WebSerial not available" });
|
|
18507
18481
|
return;
|
|
@@ -18533,7 +18507,7 @@ function DeviceManageScreen() {
|
|
|
18533
18507
|
guardianRef.current?.close();
|
|
18534
18508
|
};
|
|
18535
18509
|
}, [deviceId]);
|
|
18536
|
-
const refreshList = (0,
|
|
18510
|
+
const refreshList = (0, import_react49.useCallback)(async () => {
|
|
18537
18511
|
const guardian = guardianRef.current;
|
|
18538
18512
|
if (!guardian || screen.step !== "connected") return;
|
|
18539
18513
|
try {
|
|
@@ -18542,7 +18516,7 @@ function DeviceManageScreen() {
|
|
|
18542
18516
|
} catch {
|
|
18543
18517
|
}
|
|
18544
18518
|
}, [screen]);
|
|
18545
|
-
const handleBackup = (0,
|
|
18519
|
+
const handleBackup = (0, import_react49.useCallback)(async () => {
|
|
18546
18520
|
const guardian = guardianRef.current;
|
|
18547
18521
|
const iframe6 = getIframeManager();
|
|
18548
18522
|
if (!guardian || !iframe6 || !userId) return;
|
|
@@ -18566,7 +18540,7 @@ function DeviceManageScreen() {
|
|
|
18566
18540
|
setActionState(null);
|
|
18567
18541
|
}
|
|
18568
18542
|
}, [password, userId, refreshList]);
|
|
18569
|
-
const handleOverwrite = (0,
|
|
18543
|
+
const handleOverwrite = (0, import_react49.useCallback)(async () => {
|
|
18570
18544
|
const guardian = guardianRef.current;
|
|
18571
18545
|
const iframe6 = getIframeManager();
|
|
18572
18546
|
if (!guardian || !iframe6 || !userId) return;
|
|
@@ -18586,7 +18560,7 @@ function DeviceManageScreen() {
|
|
|
18586
18560
|
setActionState(null);
|
|
18587
18561
|
}
|
|
18588
18562
|
}, [password, userId, refreshList]);
|
|
18589
|
-
const handleDelete = (0,
|
|
18563
|
+
const handleDelete = (0, import_react49.useCallback)(
|
|
18590
18564
|
async (keyshareId) => {
|
|
18591
18565
|
const guardian = guardianRef.current;
|
|
18592
18566
|
if (!guardian) return;
|
|
@@ -18773,12 +18747,12 @@ function DeviceManageScreen() {
|
|
|
18773
18747
|
] })
|
|
18774
18748
|
] });
|
|
18775
18749
|
}
|
|
18776
|
-
var import_lucide_react35,
|
|
18750
|
+
var import_lucide_react35, import_react49, import_jsx_runtime76;
|
|
18777
18751
|
var init_DeviceManageScreen = __esm({
|
|
18778
18752
|
"src/internal/components/DevicesMenu/DeviceManageScreen.tsx"() {
|
|
18779
18753
|
init_SessionContext();
|
|
18780
18754
|
import_lucide_react35 = require("lucide-react");
|
|
18781
|
-
|
|
18755
|
+
import_react49 = require("react");
|
|
18782
18756
|
init_guardian_backup();
|
|
18783
18757
|
init_useLayoutDataStore();
|
|
18784
18758
|
init_iframe_manager();
|
|
@@ -18797,11 +18771,11 @@ function DeviceRestoreScreen() {
|
|
|
18797
18771
|
const keyshareId = pageParams?.keyshareId;
|
|
18798
18772
|
const deviceId = pageParams?.deviceId;
|
|
18799
18773
|
const deviceName = pageParams?.deviceName;
|
|
18800
|
-
const [password, setPassword] = (0,
|
|
18801
|
-
const [isWorking, setIsWorking] = (0,
|
|
18802
|
-
const [statusMessage, setStatusMessage] = (0,
|
|
18803
|
-
const [errorMessage, setErrorMessage] = (0,
|
|
18804
|
-
const handleRestore = (0,
|
|
18774
|
+
const [password, setPassword] = (0, import_react50.useState)("");
|
|
18775
|
+
const [isWorking, setIsWorking] = (0, import_react50.useState)(false);
|
|
18776
|
+
const [statusMessage, setStatusMessage] = (0, import_react50.useState)(null);
|
|
18777
|
+
const [errorMessage, setErrorMessage] = (0, import_react50.useState)(null);
|
|
18778
|
+
const handleRestore = (0, import_react50.useCallback)(async () => {
|
|
18805
18779
|
if (!password || !keyshareId || !userId) return;
|
|
18806
18780
|
const iframe6 = getIframeManager();
|
|
18807
18781
|
if (!iframe6) {
|
|
@@ -18881,12 +18855,12 @@ function DeviceRestoreScreen() {
|
|
|
18881
18855
|
errorMessage && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] p-2 text-center", children: errorMessage })
|
|
18882
18856
|
] });
|
|
18883
18857
|
}
|
|
18884
|
-
var import_lucide_react36,
|
|
18858
|
+
var import_lucide_react36, import_react50, import_jsx_runtime77;
|
|
18885
18859
|
var init_DeviceRestoreScreen = __esm({
|
|
18886
18860
|
"src/internal/components/DevicesMenu/DeviceRestoreScreen.tsx"() {
|
|
18887
18861
|
init_SessionContext();
|
|
18888
18862
|
import_lucide_react36 = require("lucide-react");
|
|
18889
|
-
|
|
18863
|
+
import_react50 = require("react");
|
|
18890
18864
|
init_guardian_backup();
|
|
18891
18865
|
init_useLayoutDataStore();
|
|
18892
18866
|
init_iframe_manager();
|
|
@@ -18906,8 +18880,8 @@ function truncateAddress(address) {
|
|
|
18906
18880
|
return `${address.slice(0, 6)}...${address.slice(-4)}`;
|
|
18907
18881
|
}
|
|
18908
18882
|
function DeviceRow({ device }) {
|
|
18909
|
-
const [confirmingUnlink, setConfirmingUnlink] = (0,
|
|
18910
|
-
const [unlinkError, setUnlinkError] = (0,
|
|
18883
|
+
const [confirmingUnlink, setConfirmingUnlink] = (0, import_react51.useState)(false);
|
|
18884
|
+
const [unlinkError, setUnlinkError] = (0, import_react51.useState)(null);
|
|
18911
18885
|
const { mutate: unlink, isPending } = useUnlinkDevice();
|
|
18912
18886
|
if (confirmingUnlink) {
|
|
18913
18887
|
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "flex flex-col gap-2 p-3 rounded-lg bg-[var(--ui-kit-bg)]", children: [
|
|
@@ -19008,11 +18982,11 @@ function DevicesMenu() {
|
|
|
19008
18982
|
] })
|
|
19009
18983
|
] });
|
|
19010
18984
|
}
|
|
19011
|
-
var import_lucide_react37,
|
|
18985
|
+
var import_lucide_react37, import_react51, import_jsx_runtime78;
|
|
19012
18986
|
var init_DevicesMenu = __esm({
|
|
19013
18987
|
"src/internal/components/DevicesMenu/DevicesMenu.tsx"() {
|
|
19014
18988
|
import_lucide_react37 = require("lucide-react");
|
|
19015
|
-
|
|
18989
|
+
import_react51 = require("react");
|
|
19016
18990
|
init_devices();
|
|
19017
18991
|
init_guardian_backup();
|
|
19018
18992
|
init_useLayoutDataStore();
|
|
@@ -19072,7 +19046,7 @@ function useOnRestoreSuccess() {
|
|
|
19072
19046
|
setStatus
|
|
19073
19047
|
} = useSession();
|
|
19074
19048
|
const { setError, setSuccess } = useRestoreStore();
|
|
19075
|
-
const createSessionWithKeyshare = (0,
|
|
19049
|
+
const createSessionWithKeyshare = (0, import_react52.useCallback)(
|
|
19076
19050
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
19077
19051
|
try {
|
|
19078
19052
|
try {
|
|
@@ -19113,7 +19087,7 @@ function useOnRestoreSuccess() {
|
|
|
19113
19087
|
},
|
|
19114
19088
|
[setStatus, usePaymaster, activeChainId, publicClient]
|
|
19115
19089
|
);
|
|
19116
|
-
const onRestoreSuccess = (0,
|
|
19090
|
+
const onRestoreSuccess = (0, import_react52.useCallback)(async () => {
|
|
19117
19091
|
const { verifyToken: verifyToken2, jwtTokenManager: jwtTokenManager4 } = await Promise.resolve().then(() => (init_auth(), auth_exports));
|
|
19118
19092
|
const verify = await verifyToken2();
|
|
19119
19093
|
const hasServerKeyshare = verify?.hasKeyshare ?? jwtTokenManager4.getHasKeyshare() ?? false;
|
|
@@ -19179,12 +19153,12 @@ function useOnRestoreSuccess() {
|
|
|
19179
19153
|
]);
|
|
19180
19154
|
return { onRestoreSuccess };
|
|
19181
19155
|
}
|
|
19182
|
-
var
|
|
19156
|
+
var import_react52;
|
|
19183
19157
|
var init_useOnRestoreSuccess = __esm({
|
|
19184
19158
|
"src/internal/components/KeyshareRestoreMenu/hooks/useOnRestoreSuccess.ts"() {
|
|
19185
19159
|
init_ProviderContext();
|
|
19186
19160
|
init_SessionContext();
|
|
19187
|
-
|
|
19161
|
+
import_react52 = require("react");
|
|
19188
19162
|
init_useLayoutDataStore();
|
|
19189
19163
|
init_useLayoutStore();
|
|
19190
19164
|
init_useRestoreStore();
|
|
@@ -19447,7 +19421,7 @@ function useCreateBackup() {
|
|
|
19447
19421
|
const usePasskey = useRestoreStore((st) => st.usePasskey);
|
|
19448
19422
|
const restorePassword = useRestoreStore((st) => st.restorePassword);
|
|
19449
19423
|
const selectedCloudProvider = useRestoreStore((st) => st.selectedCloudProvider);
|
|
19450
|
-
(0,
|
|
19424
|
+
(0, import_react53.useEffect)(() => {
|
|
19451
19425
|
if (!hasServerVault) {
|
|
19452
19426
|
useRestoreStore.getState().setMethod("server");
|
|
19453
19427
|
useLayoutStore.getState().setIsDialogForced(true);
|
|
@@ -19455,7 +19429,7 @@ function useCreateBackup() {
|
|
|
19455
19429
|
}, [hasServerVault]);
|
|
19456
19430
|
const recoveryUserId = useSession((st) => st.recoveryUserId);
|
|
19457
19431
|
const passportUserId = session?.mpcUserId || recoveryUserId || "";
|
|
19458
|
-
const onBackupSuccess = (0,
|
|
19432
|
+
const onBackupSuccess = (0, import_react53.useCallback)((method) => {
|
|
19459
19433
|
console.log(`[EMBARKAI BACKUP] ${method} backup created successfully`);
|
|
19460
19434
|
if (method !== "server") return;
|
|
19461
19435
|
const { setIsDialogForced } = useLayoutStore.getState();
|
|
@@ -19628,12 +19602,12 @@ function useCreateBackup() {
|
|
|
19628
19602
|
createPasskey
|
|
19629
19603
|
};
|
|
19630
19604
|
}
|
|
19631
|
-
var import_react_query27,
|
|
19605
|
+
var import_react_query27, import_react53;
|
|
19632
19606
|
var init_useCreateBackup = __esm({
|
|
19633
19607
|
"src/internal/components/KeyshareRestoreMenu/hooks/useCreateBackup.ts"() {
|
|
19634
19608
|
init_SessionContext();
|
|
19635
19609
|
import_react_query27 = require("@tanstack/react-query");
|
|
19636
|
-
|
|
19610
|
+
import_react53 = require("react");
|
|
19637
19611
|
init_auth();
|
|
19638
19612
|
init_useLayoutDataStore();
|
|
19639
19613
|
init_useLayoutStore();
|
|
@@ -19770,7 +19744,7 @@ function useValidateFileBackup() {
|
|
|
19770
19744
|
const restoreFile = useRestoreStore((st) => st.restoreFile);
|
|
19771
19745
|
const setError = useRestoreStore((st) => st.setError);
|
|
19772
19746
|
const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
|
|
19773
|
-
(0,
|
|
19747
|
+
(0, import_react54.useEffect)(() => {
|
|
19774
19748
|
if (!restoreFile) {
|
|
19775
19749
|
return;
|
|
19776
19750
|
}
|
|
@@ -19791,10 +19765,10 @@ function useValidateFileBackup() {
|
|
|
19791
19765
|
reader.readAsText(restoreFile);
|
|
19792
19766
|
}, [restoreFile]);
|
|
19793
19767
|
}
|
|
19794
|
-
var
|
|
19768
|
+
var import_react54;
|
|
19795
19769
|
var init_useValidateFileBackup = __esm({
|
|
19796
19770
|
"src/internal/components/KeyshareRestoreMenu/hooks/useValidateFileBackup.ts"() {
|
|
19797
|
-
|
|
19771
|
+
import_react54 = require("react");
|
|
19798
19772
|
init_useRestoreStore();
|
|
19799
19773
|
}
|
|
19800
19774
|
});
|
|
@@ -19822,7 +19796,7 @@ function MethodSelector(props) {
|
|
|
19822
19796
|
setError,
|
|
19823
19797
|
setSuccess
|
|
19824
19798
|
} = useRestoreStore();
|
|
19825
|
-
const recoveryRenderMethods = (0,
|
|
19799
|
+
const recoveryRenderMethods = (0, import_react55.useMemo)(() => {
|
|
19826
19800
|
const methodsWithBackupData = getRecoveryRenderMethods(mode).map((mt) => {
|
|
19827
19801
|
let data = null;
|
|
19828
19802
|
switch (true) {
|
|
@@ -19837,7 +19811,7 @@ function MethodSelector(props) {
|
|
|
19837
19811
|
return methodsWithBackupData;
|
|
19838
19812
|
}, [mode, serverRecoveryStatus]);
|
|
19839
19813
|
if (!!selectedRecoveryMethod) return null;
|
|
19840
|
-
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
19814
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_react55.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
19841
19815
|
"div",
|
|
19842
19816
|
{
|
|
19843
19817
|
style: { gridTemplateColumns: `repeat(${recoveryRenderMethods.length}, minmax(0, 1fr))` },
|
|
@@ -19871,12 +19845,12 @@ function MethodSelector(props) {
|
|
|
19871
19845
|
}
|
|
19872
19846
|
) });
|
|
19873
19847
|
}
|
|
19874
|
-
var import_lucide_react38,
|
|
19848
|
+
var import_lucide_react38, import_react55, import_jsx_runtime79, getRecoveryRenderMethods;
|
|
19875
19849
|
var init_MethodSelector = __esm({
|
|
19876
19850
|
"src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx"() {
|
|
19877
19851
|
init_useT();
|
|
19878
19852
|
import_lucide_react38 = require("lucide-react");
|
|
19879
|
-
|
|
19853
|
+
import_react55 = require("react");
|
|
19880
19854
|
init_icons();
|
|
19881
19855
|
init_guardian_backup();
|
|
19882
19856
|
init_button();
|
|
@@ -20012,7 +19986,7 @@ function PasswordPasskey(props) {
|
|
|
20012
19986
|
onCreatePasskey
|
|
20013
19987
|
} = props;
|
|
20014
19988
|
const hasServerVault = useSession((st) => st.hasServerVault);
|
|
20015
|
-
const actionRef = (0,
|
|
19989
|
+
const actionRef = (0, import_react56.useRef)(null);
|
|
20016
19990
|
const {
|
|
20017
19991
|
showPassword,
|
|
20018
19992
|
restorePassword,
|
|
@@ -20026,7 +20000,7 @@ function PasswordPasskey(props) {
|
|
|
20026
20000
|
} = useRestoreStore();
|
|
20027
20001
|
const { config } = useProviderConfig();
|
|
20028
20002
|
const isPasskeyEnabled = config.current.passkey.enabled;
|
|
20029
|
-
(0,
|
|
20003
|
+
(0, import_react56.useEffect)(() => {
|
|
20030
20004
|
if (!isPasskeyEnabled && usePasskey) setUsePasskey(false);
|
|
20031
20005
|
}, [isPasskeyEnabled, usePasskey]);
|
|
20032
20006
|
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, { children: [
|
|
@@ -20190,7 +20164,7 @@ function PasswordPasskey(props) {
|
|
|
20190
20164
|
] })
|
|
20191
20165
|
] });
|
|
20192
20166
|
}
|
|
20193
|
-
var import_lucide_react39,
|
|
20167
|
+
var import_lucide_react39, import_react56, import_jsx_runtime80;
|
|
20194
20168
|
var init_PasswordPasskey = __esm({
|
|
20195
20169
|
"src/internal/components/KeyshareRestoreMenu/components/PasswordPasskey.tsx"() {
|
|
20196
20170
|
init_ProviderContext();
|
|
@@ -20198,7 +20172,7 @@ var init_PasswordPasskey = __esm({
|
|
|
20198
20172
|
init_i18n();
|
|
20199
20173
|
init_utils();
|
|
20200
20174
|
import_lucide_react39 = require("lucide-react");
|
|
20201
|
-
|
|
20175
|
+
import_react56 = require("react");
|
|
20202
20176
|
init_icons();
|
|
20203
20177
|
init_Onboarding();
|
|
20204
20178
|
init_button();
|
|
@@ -20375,7 +20349,7 @@ function Server(props) {
|
|
|
20375
20349
|
const usePasskey = useRestoreStore((st) => st.usePasskey);
|
|
20376
20350
|
const setUsePasskey = useRestoreStore((st) => st.setUsePasskey);
|
|
20377
20351
|
const serverRecoveryStatus = qc.getQueryData([CHECK_BACKUP_QUERY_KEY, address]);
|
|
20378
|
-
(0,
|
|
20352
|
+
(0, import_react57.useEffect)(() => {
|
|
20379
20353
|
if (mode === "backup" || !serverRecoveryStatus?.created?.encryptionMethod) return;
|
|
20380
20354
|
setUsePasskey(serverRecoveryStatus.created.encryptionMethod === "passkey");
|
|
20381
20355
|
}, [mode, serverRecoveryStatus, setUsePasskey]);
|
|
@@ -20418,7 +20392,7 @@ function Server(props) {
|
|
|
20418
20392
|
)
|
|
20419
20393
|
] });
|
|
20420
20394
|
}
|
|
20421
|
-
var import_react_query29, import_dayjs4, import_lucide_react42,
|
|
20395
|
+
var import_react_query29, import_dayjs4, import_lucide_react42, import_react57, import_jsx_runtime83;
|
|
20422
20396
|
var init_Server = __esm({
|
|
20423
20397
|
"src/internal/components/KeyshareRestoreMenu/methods/Server.tsx"() {
|
|
20424
20398
|
init_SessionContext();
|
|
@@ -20427,7 +20401,7 @@ var init_Server = __esm({
|
|
|
20427
20401
|
import_react_query29 = require("@tanstack/react-query");
|
|
20428
20402
|
import_dayjs4 = __toESM(require("dayjs"), 1);
|
|
20429
20403
|
import_lucide_react42 = require("lucide-react");
|
|
20430
|
-
|
|
20404
|
+
import_react57 = require("react");
|
|
20431
20405
|
init_Onboarding();
|
|
20432
20406
|
init_highlight();
|
|
20433
20407
|
init_PasswordPasskey();
|
|
@@ -20591,7 +20565,7 @@ function Cloud2(props) {
|
|
|
20591
20565
|
return availableProviders.map((p) => ({ id: p.id, name: p.name, available: p.isAvailable() }));
|
|
20592
20566
|
}
|
|
20593
20567
|
});
|
|
20594
|
-
(0,
|
|
20568
|
+
(0, import_react58.useEffect)(() => {
|
|
20595
20569
|
if (isCloudProvidersLoading) return;
|
|
20596
20570
|
if (!!cloudProvidersError) {
|
|
20597
20571
|
console.error("[KeyshareBackup] Failed to load cloud providers:", cloudProvidersError);
|
|
@@ -20655,13 +20629,13 @@ function Cloud2(props) {
|
|
|
20655
20629
|
)
|
|
20656
20630
|
] });
|
|
20657
20631
|
}
|
|
20658
|
-
var import_react_query30, import_lucide_react44,
|
|
20632
|
+
var import_react_query30, import_lucide_react44, import_react58, import_jsx_runtime85;
|
|
20659
20633
|
var init_Cloud = __esm({
|
|
20660
20634
|
"src/internal/components/KeyshareRestoreMenu/methods/Cloud.tsx"() {
|
|
20661
20635
|
init_SessionContext();
|
|
20662
20636
|
import_react_query30 = require("@tanstack/react-query");
|
|
20663
20637
|
import_lucide_react44 = require("lucide-react");
|
|
20664
|
-
|
|
20638
|
+
import_react58 = require("react");
|
|
20665
20639
|
init_button();
|
|
20666
20640
|
init_select();
|
|
20667
20641
|
init_PasswordPasskey();
|
|
@@ -20678,8 +20652,8 @@ function Guardian(props) {
|
|
|
20678
20652
|
const session = useSession((st) => st.session);
|
|
20679
20653
|
const recoveryUserId = useSession((st) => st.recoveryUserId);
|
|
20680
20654
|
const { onRestoreSuccess } = useOnRestoreSuccess();
|
|
20681
|
-
const [isWorking, setIsWorking] = (0,
|
|
20682
|
-
const [step, setStep] = (0,
|
|
20655
|
+
const [isWorking, setIsWorking] = (0, import_react59.useState)(false);
|
|
20656
|
+
const [step, setStep] = (0, import_react59.useState)("idle");
|
|
20683
20657
|
const handleGuardianBackup = async () => {
|
|
20684
20658
|
if (!restorePassword) {
|
|
20685
20659
|
setError("Please enter a password");
|
|
@@ -20808,11 +20782,11 @@ function Guardian(props) {
|
|
|
20808
20782
|
] })
|
|
20809
20783
|
] });
|
|
20810
20784
|
}
|
|
20811
|
-
var
|
|
20785
|
+
var import_react59, import_lucide_react45, import_jsx_runtime86;
|
|
20812
20786
|
var init_Guardian = __esm({
|
|
20813
20787
|
"src/internal/components/KeyshareRestoreMenu/methods/Guardian.tsx"() {
|
|
20814
20788
|
init_SessionContext();
|
|
20815
|
-
|
|
20789
|
+
import_react59 = require("react");
|
|
20816
20790
|
import_lucide_react45 = require("lucide-react");
|
|
20817
20791
|
init_iframe_manager();
|
|
20818
20792
|
init_guardian_backup();
|
|
@@ -20835,7 +20809,7 @@ var init_methods = __esm({
|
|
|
20835
20809
|
});
|
|
20836
20810
|
|
|
20837
20811
|
// src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx
|
|
20838
|
-
var import_react_query31, import_lucide_react46,
|
|
20812
|
+
var import_react_query31, import_lucide_react46, import_react60, import_wagmi5, import_jsx_runtime87, RESTORE_COMPONENTS, KeyshareRestoreMenu;
|
|
20839
20813
|
var init_KeyshareRestoreMenu = __esm({
|
|
20840
20814
|
"src/internal/components/KeyshareRestoreMenu/KeyshareRestoreMenu.tsx"() {
|
|
20841
20815
|
init_ProviderContext();
|
|
@@ -20843,7 +20817,7 @@ var init_KeyshareRestoreMenu = __esm({
|
|
|
20843
20817
|
init_i18n();
|
|
20844
20818
|
import_react_query31 = require("@tanstack/react-query");
|
|
20845
20819
|
import_lucide_react46 = require("lucide-react");
|
|
20846
|
-
|
|
20820
|
+
import_react60 = require("react");
|
|
20847
20821
|
import_wagmi5 = require("wagmi");
|
|
20848
20822
|
init_useLayoutDataStore();
|
|
20849
20823
|
init_useLayoutStore();
|
|
@@ -20873,7 +20847,7 @@ var init_KeyshareRestoreMenu = __esm({
|
|
|
20873
20847
|
const error = useRestoreStore((st) => st.error);
|
|
20874
20848
|
const success = useRestoreStore((st) => st.success);
|
|
20875
20849
|
const currentRestoreMethod = useRestoreStore((st) => st.method);
|
|
20876
|
-
(0,
|
|
20850
|
+
(0, import_react60.useEffect)(() => {
|
|
20877
20851
|
const { setIsDialogForced } = useLayoutStore.getState();
|
|
20878
20852
|
const { setRestorePassword, setRestoreFile, setShowPassword, setUsePasskey, setMethod } = useRestoreStore.getState();
|
|
20879
20853
|
setIsDialogForced(true);
|
|
@@ -20912,7 +20886,7 @@ var init_KeyshareRestoreMenu = __esm({
|
|
|
20912
20886
|
queryFn: async () => await getShareRecoveryStats()
|
|
20913
20887
|
});
|
|
20914
20888
|
const hasServerBackup = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
|
|
20915
|
-
(0,
|
|
20889
|
+
(0, import_react60.useEffect)(() => {
|
|
20916
20890
|
if (!!hasServerBackup) useRestoreStore.getState().setMethod("server");
|
|
20917
20891
|
}, [hasServerBackup]);
|
|
20918
20892
|
const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query31.useMutation)({
|
|
@@ -21059,7 +21033,7 @@ function KeyshareBackupMenu() {
|
|
|
21059
21033
|
const usePasskey = useRestoreStore((st) => st.usePasskey);
|
|
21060
21034
|
const error = useRestoreStore((st) => st.error);
|
|
21061
21035
|
const success = useRestoreStore((st) => st.success);
|
|
21062
|
-
(0,
|
|
21036
|
+
(0, import_react61.useEffect)(() => {
|
|
21063
21037
|
const { setSuccess, setError, setRestorePassword, setRestoreFile, setShowPassword, setUsePasskey, setMethod } = useRestoreStore.getState();
|
|
21064
21038
|
return () => {
|
|
21065
21039
|
setSuccess(null);
|
|
@@ -21079,7 +21053,7 @@ function KeyshareBackupMenu() {
|
|
|
21079
21053
|
});
|
|
21080
21054
|
useOnboardingTourAvailable(!isRecoveryLoading && currentBackupMethod === "server" && !usePasskey);
|
|
21081
21055
|
const hasRecoveryData2 = serverRecoveryStatus?.created || serverRecoveryStatus?.devices?.length > 0;
|
|
21082
|
-
(0,
|
|
21056
|
+
(0, import_react61.useEffect)(() => {
|
|
21083
21057
|
if (!!hasRecoveryData2) useRestoreStore.getState().setMethod("server");
|
|
21084
21058
|
}, [hasRecoveryData2]);
|
|
21085
21059
|
const {
|
|
@@ -21198,14 +21172,14 @@ function KeyshareBackupMenu() {
|
|
|
21198
21172
|
] })
|
|
21199
21173
|
] });
|
|
21200
21174
|
}
|
|
21201
|
-
var import_react_query32, import_lucide_react47,
|
|
21175
|
+
var import_react_query32, import_lucide_react47, import_react61, import_jsx_runtime88, COMPONENTS;
|
|
21202
21176
|
var init_KeyshareBackupMenu = __esm({
|
|
21203
21177
|
"src/internal/components/KeyshareRestoreMenu/KeyshareBackupMenu.tsx"() {
|
|
21204
21178
|
init_SessionContext();
|
|
21205
21179
|
init_i18n();
|
|
21206
21180
|
import_react_query32 = require("@tanstack/react-query");
|
|
21207
21181
|
import_lucide_react47 = require("lucide-react");
|
|
21208
|
-
|
|
21182
|
+
import_react61 = require("react");
|
|
21209
21183
|
init_useLayoutDataStore();
|
|
21210
21184
|
init_vaultClient();
|
|
21211
21185
|
init_Expandable2();
|
|
@@ -21333,13 +21307,13 @@ var init_SumsubIframeManager = __esm({
|
|
|
21333
21307
|
function useSumsubIframe({ iframeUrl }) {
|
|
21334
21308
|
const config = useProviderConfig().config;
|
|
21335
21309
|
const { colorMode } = useColorMode();
|
|
21336
|
-
const iframeRef = (0,
|
|
21337
|
-
const [isLoading, setIsLoading] = (0,
|
|
21338
|
-
const [error, setError] = (0,
|
|
21339
|
-
const [height, setHeight] = (0,
|
|
21340
|
-
const [status, setStatus] = (0,
|
|
21310
|
+
const iframeRef = (0, import_react62.useRef)(null);
|
|
21311
|
+
const [isLoading, setIsLoading] = (0, import_react62.useState)(true);
|
|
21312
|
+
const [error, setError] = (0, import_react62.useState)(null);
|
|
21313
|
+
const [height, setHeight] = (0, import_react62.useState)(0);
|
|
21314
|
+
const [status, setStatus] = (0, import_react62.useState)("");
|
|
21341
21315
|
const levelName = config.current?.kyc?.options?.levelName;
|
|
21342
|
-
(0,
|
|
21316
|
+
(0, import_react62.useEffect)(() => {
|
|
21343
21317
|
setError(null);
|
|
21344
21318
|
setIsLoading(true);
|
|
21345
21319
|
setStatus("Preparing verification...");
|
|
@@ -21380,12 +21354,12 @@ function useSumsubIframe({ iframeUrl }) {
|
|
|
21380
21354
|
status
|
|
21381
21355
|
};
|
|
21382
21356
|
}
|
|
21383
|
-
var
|
|
21357
|
+
var import_react62;
|
|
21384
21358
|
var init_useSumsubIframe = __esm({
|
|
21385
21359
|
"src/internal/components/KYC/useSumsubIframe.ts"() {
|
|
21386
21360
|
init_ProviderContext();
|
|
21387
21361
|
init_useColorMode();
|
|
21388
|
-
|
|
21362
|
+
import_react62 = require("react");
|
|
21389
21363
|
init_sumsub();
|
|
21390
21364
|
init_SumsubIframeManager();
|
|
21391
21365
|
}
|
|
@@ -21593,11 +21567,11 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
|
|
|
21593
21567
|
const activeChainConfig = useSession((st) => st.chainConfig);
|
|
21594
21568
|
const resolvedChainId = chainId ?? activeChainId;
|
|
21595
21569
|
const shouldUseActiveClient = !chainId || chainId === activeChainId;
|
|
21596
|
-
const chainConfig = (0,
|
|
21570
|
+
const chainConfig = (0, import_react63.useMemo)(() => {
|
|
21597
21571
|
if (shouldUseActiveClient) return activeChainConfig;
|
|
21598
21572
|
return (0, import_read16.getChainConfig)(chainId);
|
|
21599
21573
|
}, [activeChainConfig, chainId, shouldUseActiveClient]);
|
|
21600
|
-
const publicClient = (0,
|
|
21574
|
+
const publicClient = (0, import_react63.useMemo)(() => {
|
|
21601
21575
|
if (shouldUseActiveClient) return activePublicClient;
|
|
21602
21576
|
if (!chainId) return activePublicClient;
|
|
21603
21577
|
try {
|
|
@@ -21614,12 +21588,12 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
|
|
|
21614
21588
|
resolvedChainId
|
|
21615
21589
|
};
|
|
21616
21590
|
}
|
|
21617
|
-
var import_read16,
|
|
21591
|
+
var import_read16, import_react63, publicClientByChainId;
|
|
21618
21592
|
var init_useResolvedPublicClient = __esm({
|
|
21619
21593
|
"src/internal/hooks/useResolvedPublicClient.ts"() {
|
|
21620
21594
|
init_SessionContext();
|
|
21621
21595
|
import_read16 = require("@embarkai/core/read");
|
|
21622
|
-
|
|
21596
|
+
import_react63 = require("react");
|
|
21623
21597
|
publicClientByChainId = /* @__PURE__ */ new Map();
|
|
21624
21598
|
}
|
|
21625
21599
|
});
|
|
@@ -21683,7 +21657,7 @@ var init_useNativeBalance = __esm({
|
|
|
21683
21657
|
function useWatchTokens(options) {
|
|
21684
21658
|
const { address, chainId, enabled, publicClient } = options;
|
|
21685
21659
|
const { config } = useProviderConfig();
|
|
21686
|
-
const watchTokens = (0,
|
|
21660
|
+
const watchTokens = (0, import_react64.useMemo)(() => {
|
|
21687
21661
|
const allWatchTokens = config.current.watchTokens;
|
|
21688
21662
|
const tokensForChain = chainId ? allWatchTokens?.[chainId] || [] : [];
|
|
21689
21663
|
return tokensForChain;
|
|
@@ -21751,12 +21725,12 @@ function useWatchTokens(options) {
|
|
|
21751
21725
|
}
|
|
21752
21726
|
});
|
|
21753
21727
|
}
|
|
21754
|
-
var import_react_query35,
|
|
21728
|
+
var import_react_query35, import_react64, import_viem8;
|
|
21755
21729
|
var init_useWatchTokens = __esm({
|
|
21756
21730
|
"src/internal/hooks/useBlockscoutAssets/useWatchTokens.ts"() {
|
|
21757
21731
|
init_ProviderContext();
|
|
21758
21732
|
import_react_query35 = require("@tanstack/react-query");
|
|
21759
|
-
|
|
21733
|
+
import_react64 = require("react");
|
|
21760
21734
|
import_viem8 = require("viem");
|
|
21761
21735
|
init_constants6();
|
|
21762
21736
|
}
|
|
@@ -21905,11 +21879,11 @@ function useBlockscoutAssets(options) {
|
|
|
21905
21879
|
tokenBalancesQueryKey: customTokenBalancesQueryKey
|
|
21906
21880
|
} = useProviderConfig().config?.current?.portfolio || {};
|
|
21907
21881
|
const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
|
|
21908
|
-
const blockscoutClient = (0,
|
|
21882
|
+
const blockscoutClient = (0, import_react65.useMemo)(
|
|
21909
21883
|
() => blockscoutApiUrl ? (0, import_core4.createBlockscoutClient)({ baseUrl: blockscoutApiUrl }) : null,
|
|
21910
21884
|
[blockscoutApiUrl]
|
|
21911
21885
|
);
|
|
21912
|
-
const lastRefreshRef = (0,
|
|
21886
|
+
const lastRefreshRef = (0, import_react65.useRef)(0);
|
|
21913
21887
|
const {
|
|
21914
21888
|
data: watchTokenAssets = [],
|
|
21915
21889
|
isLoading: watchTokensLoading,
|
|
@@ -21981,7 +21955,7 @@ function useBlockscoutAssets(options) {
|
|
|
21981
21955
|
queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", resolvedChainId, blockscoutApiUrl, address],
|
|
21982
21956
|
queryFn: () => blockscoutClient.getNfts(address)
|
|
21983
21957
|
});
|
|
21984
|
-
const erc20TokenAddresses = (0,
|
|
21958
|
+
const erc20TokenAddresses = (0, import_react65.useMemo)(() => {
|
|
21985
21959
|
if (!blockscoutItems) return [];
|
|
21986
21960
|
return blockscoutItems.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
|
|
21987
21961
|
}, [blockscoutItems]);
|
|
@@ -22026,7 +22000,7 @@ function useBlockscoutAssets(options) {
|
|
|
22026
22000
|
// 1 minute
|
|
22027
22001
|
// gcTime: BLOCKSCOUT_QUERY_GC_TIME,
|
|
22028
22002
|
});
|
|
22029
|
-
const assets = (0,
|
|
22003
|
+
const assets = (0, import_react65.useMemo)(() => {
|
|
22030
22004
|
const result = [];
|
|
22031
22005
|
const addedAddresses = /* @__PURE__ */ new Set();
|
|
22032
22006
|
if (nativeBalanceData) {
|
|
@@ -22120,7 +22094,7 @@ function useBlockscoutAssets(options) {
|
|
|
22120
22094
|
watchTokenAssets,
|
|
22121
22095
|
chainConfig
|
|
22122
22096
|
]);
|
|
22123
|
-
const nativeBalance = (0,
|
|
22097
|
+
const nativeBalance = (0, import_react65.useMemo)(() => {
|
|
22124
22098
|
if (!nativeBalanceData) return null;
|
|
22125
22099
|
return {
|
|
22126
22100
|
value: nativeBalanceData.value,
|
|
@@ -22128,11 +22102,11 @@ function useBlockscoutAssets(options) {
|
|
|
22128
22102
|
symbol: nativeBalanceData.symbol
|
|
22129
22103
|
};
|
|
22130
22104
|
}, [nativeBalanceData]);
|
|
22131
|
-
const error = (0,
|
|
22105
|
+
const error = (0, import_react65.useMemo)(() => {
|
|
22132
22106
|
if (!blockscoutError) return null;
|
|
22133
22107
|
return createError(blockscoutError);
|
|
22134
22108
|
}, [blockscoutError]);
|
|
22135
|
-
const refreshBalances = (0,
|
|
22109
|
+
const refreshBalances = (0, import_react65.useCallback)(async () => {
|
|
22136
22110
|
const now = Date.now();
|
|
22137
22111
|
if (now - lastRefreshRef.current < BLOCKSCOUT_REFRESH_DEBOUNCE) {
|
|
22138
22112
|
return;
|
|
@@ -22148,7 +22122,7 @@ function useBlockscoutAssets(options) {
|
|
|
22148
22122
|
qc.invalidateQueries({ queryKey: [WATCH_TOKENS_QUERY_KEY] })
|
|
22149
22123
|
]);
|
|
22150
22124
|
}, [qc, customTokenBalancesQueryKey]);
|
|
22151
|
-
const getTokenBalance = (0,
|
|
22125
|
+
const getTokenBalance = (0, import_react65.useCallback)(
|
|
22152
22126
|
(tokenAddress) => {
|
|
22153
22127
|
return assets.find((a) => a.address?.toLowerCase() === tokenAddress.toLowerCase()) || null;
|
|
22154
22128
|
},
|
|
@@ -22167,13 +22141,13 @@ function useBlockscoutAssets(options) {
|
|
|
22167
22141
|
lastUpdated: dataUpdatedAt || null
|
|
22168
22142
|
};
|
|
22169
22143
|
}
|
|
22170
|
-
var import_core4, import_react_query36,
|
|
22144
|
+
var import_core4, import_react_query36, import_react65;
|
|
22171
22145
|
var init_useBlockscoutAssets = __esm({
|
|
22172
22146
|
"src/internal/hooks/useBlockscoutAssets/useBlockscoutAssets.ts"() {
|
|
22173
22147
|
init_ProviderContext();
|
|
22174
22148
|
import_core4 = require("@embarkai/core");
|
|
22175
22149
|
import_react_query36 = require("@tanstack/react-query");
|
|
22176
|
-
|
|
22150
|
+
import_react65 = require("react");
|
|
22177
22151
|
init_initial();
|
|
22178
22152
|
init_constants();
|
|
22179
22153
|
init_useResolvedPublicClient();
|
|
@@ -22293,9 +22267,9 @@ function SecurityTokenBadge() {
|
|
|
22293
22267
|
}
|
|
22294
22268
|
function PortfolioItemImage(props) {
|
|
22295
22269
|
const { asset } = props;
|
|
22296
|
-
const [logoError, setLogoError] = (0,
|
|
22297
|
-
const [nftImageError, setNftImageError] = (0,
|
|
22298
|
-
const resolvedImage = (0,
|
|
22270
|
+
const [logoError, setLogoError] = (0, import_react66.useState)(false);
|
|
22271
|
+
const [nftImageError, setNftImageError] = (0, import_react66.useState)(false);
|
|
22272
|
+
const resolvedImage = (0, import_react66.useMemo)(() => {
|
|
22299
22273
|
const isNft = isNftAsset(asset);
|
|
22300
22274
|
const nftImage = getNftImage(asset);
|
|
22301
22275
|
const isSecurity = isSecurityToken(asset);
|
|
@@ -22450,13 +22424,13 @@ function PortfolioItem(props) {
|
|
|
22450
22424
|
}
|
|
22451
22425
|
);
|
|
22452
22426
|
}
|
|
22453
|
-
var import_react_query37, import_lucide_react51,
|
|
22427
|
+
var import_react_query37, import_lucide_react51, import_react66, import_viem11, import_jsx_runtime94, PORTFOLIO_ASSET_RATE_QUERY_KEY;
|
|
22454
22428
|
var init_PortfolioItem = __esm({
|
|
22455
22429
|
"src/internal/components/PortfolioMenu/PortfolioItem.tsx"() {
|
|
22456
22430
|
init_ProviderContext();
|
|
22457
22431
|
import_react_query37 = require("@tanstack/react-query");
|
|
22458
22432
|
import_lucide_react51 = require("lucide-react");
|
|
22459
|
-
|
|
22433
|
+
import_react66 = require("react");
|
|
22460
22434
|
import_viem11 = require("viem");
|
|
22461
22435
|
init_tokens();
|
|
22462
22436
|
init_base3();
|
|
@@ -22488,7 +22462,7 @@ function PortfolioMenu() {
|
|
|
22488
22462
|
enabled: !!address
|
|
22489
22463
|
});
|
|
22490
22464
|
const shownProjectAssets = projectAssets.filter((asset) => !asset.hideInPortfolio);
|
|
22491
|
-
const refreshAllAssetsBalances = (0,
|
|
22465
|
+
const refreshAllAssetsBalances = (0, import_react67.useCallback)(() => {
|
|
22492
22466
|
Promise.all(shownProjectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
|
|
22493
22467
|
refreshBlockscoutBalances();
|
|
22494
22468
|
}, [qc, shownProjectAssets, refreshBlockscoutBalances]);
|
|
@@ -22534,7 +22508,7 @@ function PortfolioMenu() {
|
|
|
22534
22508
|
blockscoutError && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Highlight, { type: "error", children: blockscoutError?.message })
|
|
22535
22509
|
] });
|
|
22536
22510
|
}
|
|
22537
|
-
var import_react_query38, import_lucide_react52,
|
|
22511
|
+
var import_react_query38, import_lucide_react52, import_react67, import_jsx_runtime95;
|
|
22538
22512
|
var init_PortfolioMenu = __esm({
|
|
22539
22513
|
"src/internal/components/PortfolioMenu/PortfolioMenu.tsx"() {
|
|
22540
22514
|
init_ProviderContext();
|
|
@@ -22542,7 +22516,7 @@ var init_PortfolioMenu = __esm({
|
|
|
22542
22516
|
init_i18n();
|
|
22543
22517
|
import_react_query38 = require("@tanstack/react-query");
|
|
22544
22518
|
import_lucide_react52 = require("lucide-react");
|
|
22545
|
-
|
|
22519
|
+
import_react67 = require("react");
|
|
22546
22520
|
init_useBlockscoutAssets2();
|
|
22547
22521
|
init_useLayoutDataStore();
|
|
22548
22522
|
init_Expandable2();
|
|
@@ -22853,7 +22827,7 @@ var init_useNicknameStore = __esm({
|
|
|
22853
22827
|
function useNicknameAvailability(currentNickname) {
|
|
22854
22828
|
const { t } = useT();
|
|
22855
22829
|
const nicknameValue = useNicknameStore((st) => st.nicknameValue);
|
|
22856
|
-
(0,
|
|
22830
|
+
(0, import_react68.useEffect)(() => {
|
|
22857
22831
|
if (!currentNickname) return;
|
|
22858
22832
|
useNicknameStore.getState().setNicknameValue(currentNickname);
|
|
22859
22833
|
}, [currentNickname]);
|
|
@@ -22874,8 +22848,8 @@ function useNicknameAvailability(currentNickname) {
|
|
|
22874
22848
|
useNicknameStore.getState().setError(error?.message || "Failed to check nickname availability");
|
|
22875
22849
|
}
|
|
22876
22850
|
});
|
|
22877
|
-
const debouncedCheckAvailability = (0,
|
|
22878
|
-
(0,
|
|
22851
|
+
const debouncedCheckAvailability = (0, import_react68.useCallback)((0, import_lodash_es14.debounce)(checkAvailability, DEBOUNCE_MS), [checkAvailability]);
|
|
22852
|
+
(0, import_react68.useEffect)(() => {
|
|
22879
22853
|
if (!currentNickname) return;
|
|
22880
22854
|
const normalizedInputValue = normalizeNickname(nicknameValue);
|
|
22881
22855
|
const { valid: isNicknameValid } = validateNickname(nicknameValue);
|
|
@@ -22889,13 +22863,13 @@ function useNicknameAvailability(currentNickname) {
|
|
|
22889
22863
|
}, [nicknameValue, currentNickname, debouncedCheckAvailability]);
|
|
22890
22864
|
return { isCheckingAvailability };
|
|
22891
22865
|
}
|
|
22892
|
-
var import_react_query39,
|
|
22866
|
+
var import_react_query39, import_lodash_es14, import_react68, DEBOUNCE_MS;
|
|
22893
22867
|
var init_useNicknameAvailability = __esm({
|
|
22894
22868
|
"src/internal/components/NicknameMenu/useNicknameAvailability.ts"() {
|
|
22895
22869
|
init_i18n();
|
|
22896
22870
|
import_react_query39 = require("@tanstack/react-query");
|
|
22897
|
-
|
|
22898
|
-
|
|
22871
|
+
import_lodash_es14 = require("lodash-es");
|
|
22872
|
+
import_react68 = require("react");
|
|
22899
22873
|
init_nickname();
|
|
22900
22874
|
init_nickname_errors();
|
|
22901
22875
|
init_nickname_validation();
|
|
@@ -22916,9 +22890,9 @@ function NicknameEditForm(props) {
|
|
|
22916
22890
|
const nicknameValue = useNicknameStore((st) => st.nicknameValue);
|
|
22917
22891
|
const nicknameAvailability = useNicknameStore((st) => st.availability);
|
|
22918
22892
|
const { isCheckingAvailability } = useNicknameAvailability(nicknameInfo ? nicknameInfo.handle : "");
|
|
22919
|
-
const [isNicknameCopied, setIsNicknameCopied] = (0,
|
|
22920
|
-
const exitTimerRef = (0,
|
|
22921
|
-
(0,
|
|
22893
|
+
const [isNicknameCopied, setIsNicknameCopied] = (0, import_react69.useState)(false);
|
|
22894
|
+
const exitTimerRef = (0, import_react69.useRef)(null);
|
|
22895
|
+
(0, import_react69.useEffect)(() => () => {
|
|
22922
22896
|
if (exitTimerRef.current) clearTimeout(exitTimerRef.current);
|
|
22923
22897
|
}, []);
|
|
22924
22898
|
const { mutate: changeNickname2, isPending: isNicknameChanging } = (0, import_react_query40.useMutation)({
|
|
@@ -22952,7 +22926,7 @@ function NicknameEditForm(props) {
|
|
|
22952
22926
|
);
|
|
22953
22927
|
}
|
|
22954
22928
|
});
|
|
22955
|
-
const handleNicknameInputChange = (0,
|
|
22929
|
+
const handleNicknameInputChange = (0, import_react69.useCallback)(
|
|
22956
22930
|
(e) => {
|
|
22957
22931
|
const { error, setError, setNicknameValue } = useNicknameStore.getState();
|
|
22958
22932
|
const nextInputValue = e.target.value;
|
|
@@ -22966,7 +22940,7 @@ function NicknameEditForm(props) {
|
|
|
22966
22940
|
},
|
|
22967
22941
|
[t]
|
|
22968
22942
|
);
|
|
22969
|
-
const handleSubmit = (0,
|
|
22943
|
+
const handleSubmit = (0, import_react69.useCallback)(
|
|
22970
22944
|
(e) => {
|
|
22971
22945
|
const { nicknameValue: nicknameValue2, setError } = useNicknameStore.getState();
|
|
22972
22946
|
if (!canChange) {
|
|
@@ -23058,7 +23032,7 @@ function NicknameEditForm(props) {
|
|
|
23058
23032
|
!!canChange && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)("span", { className: "w-full flex items-center leadding-4 text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:nicknameMenu.hint") })
|
|
23059
23033
|
] });
|
|
23060
23034
|
}
|
|
23061
|
-
var import_react_query40, import_lucide_react55,
|
|
23035
|
+
var import_react_query40, import_lucide_react55, import_react69, import_jsx_runtime98;
|
|
23062
23036
|
var init_NicknameEditForm = __esm({
|
|
23063
23037
|
"src/internal/components/NicknameMenu/NicknameEditForm.tsx"() {
|
|
23064
23038
|
init_ProviderContext();
|
|
@@ -23066,7 +23040,7 @@ var init_NicknameEditForm = __esm({
|
|
|
23066
23040
|
init_i18n();
|
|
23067
23041
|
import_react_query40 = require("@tanstack/react-query");
|
|
23068
23042
|
import_lucide_react55 = require("lucide-react");
|
|
23069
|
-
|
|
23043
|
+
import_react69 = require("react");
|
|
23070
23044
|
init_icons();
|
|
23071
23045
|
init_nickname();
|
|
23072
23046
|
init_profile();
|
|
@@ -23102,7 +23076,7 @@ function NicknameMenu() {
|
|
|
23102
23076
|
queryFn: async () => await getNicknameInfo()
|
|
23103
23077
|
});
|
|
23104
23078
|
const resolvedError = nicknameError || nicknameInfoError?.message || null;
|
|
23105
|
-
(0,
|
|
23079
|
+
(0, import_react70.useEffect)(() => () => useNicknameStore.getState().reset(), []);
|
|
23106
23080
|
return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
|
|
23107
23081
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] ", children: [
|
|
23108
23082
|
/* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
@@ -23169,7 +23143,7 @@ function NicknameMenu() {
|
|
|
23169
23143
|
!!resolvedError?.length && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(Highlight, { type: "error", children: resolvedError })
|
|
23170
23144
|
] });
|
|
23171
23145
|
}
|
|
23172
|
-
var import_react_query41, import_dayjs5, import_lucide_react56,
|
|
23146
|
+
var import_react_query41, import_dayjs5, import_lucide_react56, import_react70, import_jsx_runtime99;
|
|
23173
23147
|
var init_NicknameMenu = __esm({
|
|
23174
23148
|
"src/internal/components/NicknameMenu/NicknameMenu.tsx"() {
|
|
23175
23149
|
init_SessionContext();
|
|
@@ -23178,7 +23152,7 @@ var init_NicknameMenu = __esm({
|
|
|
23178
23152
|
import_react_query41 = require("@tanstack/react-query");
|
|
23179
23153
|
import_dayjs5 = __toESM(require("dayjs"), 1);
|
|
23180
23154
|
import_lucide_react56 = require("lucide-react");
|
|
23181
|
-
|
|
23155
|
+
import_react70 = require("react");
|
|
23182
23156
|
init_nickname();
|
|
23183
23157
|
init_profile();
|
|
23184
23158
|
init_useLayoutDataStore();
|
|
@@ -23308,12 +23282,12 @@ function ReceiveMenu() {
|
|
|
23308
23282
|
queryKey: [QUERY_KEYS.nicknameInfo, address],
|
|
23309
23283
|
queryFn: async () => await getNicknameInfo()
|
|
23310
23284
|
});
|
|
23311
|
-
const [qrCodeUrl, setQrCodeUrl] = (0,
|
|
23312
|
-
const [isAddressCopied, setAddressCopied] = (0,
|
|
23313
|
-
const [isNicknameCopied, setNicknameCopied] = (0,
|
|
23314
|
-
const [fingerprintCopied, setFingerprintCopied] = (0,
|
|
23285
|
+
const [qrCodeUrl, setQrCodeUrl] = (0, import_react71.useState)("");
|
|
23286
|
+
const [isAddressCopied, setAddressCopied] = (0, import_react71.useState)(false);
|
|
23287
|
+
const [isNicknameCopied, setNicknameCopied] = (0, import_react71.useState)(false);
|
|
23288
|
+
const [fingerprintCopied, setFingerprintCopied] = (0, import_react71.useState)(false);
|
|
23315
23289
|
useOnboardingTourAvailable(true);
|
|
23316
|
-
const fingerprint = (0,
|
|
23290
|
+
const fingerprint = (0, import_react71.useMemo)(() => {
|
|
23317
23291
|
if (!session?.ownerAddress) return null;
|
|
23318
23292
|
try {
|
|
23319
23293
|
return generateFingerprint(session.ownerAddress);
|
|
@@ -23321,7 +23295,7 @@ function ReceiveMenu() {
|
|
|
23321
23295
|
return null;
|
|
23322
23296
|
}
|
|
23323
23297
|
}, [session?.ownerAddress]);
|
|
23324
|
-
(0,
|
|
23298
|
+
(0, import_react71.useEffect)(() => {
|
|
23325
23299
|
if (!address) return;
|
|
23326
23300
|
import_qrcode.default.toDataURL(address, {
|
|
23327
23301
|
width: 200,
|
|
@@ -23420,7 +23394,7 @@ function ReceiveMenu() {
|
|
|
23420
23394
|
] })
|
|
23421
23395
|
] });
|
|
23422
23396
|
}
|
|
23423
|
-
var import_react_query42, import_lucide_react57, import_qrcode,
|
|
23397
|
+
var import_react_query42, import_lucide_react57, import_qrcode, import_react71, import_jsx_runtime100;
|
|
23424
23398
|
var init_ReceiveMenu = __esm({
|
|
23425
23399
|
"src/internal/components/ReceiveMenu/ReceiveMenu.tsx"() {
|
|
23426
23400
|
init_SessionContext();
|
|
@@ -23428,7 +23402,7 @@ var init_ReceiveMenu = __esm({
|
|
|
23428
23402
|
import_react_query42 = require("@tanstack/react-query");
|
|
23429
23403
|
import_lucide_react57 = require("lucide-react");
|
|
23430
23404
|
import_qrcode = __toESM(require("qrcode"), 1);
|
|
23431
|
-
|
|
23405
|
+
import_react71 = require("react");
|
|
23432
23406
|
init_nickname();
|
|
23433
23407
|
init_profile();
|
|
23434
23408
|
init_useLayoutDataStore();
|
|
@@ -23808,14 +23782,14 @@ var init_ConnectedApps2 = __esm({
|
|
|
23808
23782
|
});
|
|
23809
23783
|
|
|
23810
23784
|
// src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx
|
|
23811
|
-
var import_lucide_react60,
|
|
23785
|
+
var import_lucide_react60, import_react72, import_jsx_runtime103, KeyshareStatus;
|
|
23812
23786
|
var init_KeyshareStatus = __esm({
|
|
23813
23787
|
"src/internal/components/SecurityMenu/Keyshare/KeyshareStatus.tsx"() {
|
|
23814
23788
|
import_lucide_react60 = require("lucide-react");
|
|
23815
|
-
|
|
23789
|
+
import_react72 = require("react");
|
|
23816
23790
|
init_utils();
|
|
23817
23791
|
import_jsx_runtime103 = require("react/jsx-runtime");
|
|
23818
|
-
KeyshareStatus = (0,
|
|
23792
|
+
KeyshareStatus = (0, import_react72.forwardRef)((props, ref) => {
|
|
23819
23793
|
const { isLoading, content, icon: Icon2, children } = props;
|
|
23820
23794
|
if (isLoading) return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react60.Loader, { className: "w-4 h-4 animate-spin" });
|
|
23821
23795
|
return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)("div", { ref, className: "group relative w-full h-full", children: [
|
|
@@ -24142,10 +24116,10 @@ function updateLimits(patch) {
|
|
|
24142
24116
|
usePolicyForm.setState((st) => ({ ...st, limits: { ...st?.limits, ...patch } }));
|
|
24143
24117
|
}
|
|
24144
24118
|
function useWatchFormData() {
|
|
24145
|
-
const [showFormErrors, setShowFormErrors] = (0,
|
|
24119
|
+
const [showFormErrors, setShowFormErrors] = (0, import_react73.useState)(false);
|
|
24146
24120
|
const formData = usePolicyForm();
|
|
24147
24121
|
const formState = usePolicyFormValidation();
|
|
24148
|
-
(0,
|
|
24122
|
+
(0, import_react73.useEffect)(() => {
|
|
24149
24123
|
if (!formData) return;
|
|
24150
24124
|
setShowFormErrors(false);
|
|
24151
24125
|
const errors = {};
|
|
@@ -24172,7 +24146,7 @@ function useWatchFormData() {
|
|
|
24172
24146
|
}
|
|
24173
24147
|
usePolicyFormValidation.setState(errors, true);
|
|
24174
24148
|
}, [formData]);
|
|
24175
|
-
(0,
|
|
24149
|
+
(0, import_react73.useEffect)(() => () => usePolicyFormValidation.setState({}, true), []);
|
|
24176
24150
|
const formErrorItem = Object.entries(formState).find(([_, value]) => value?.error);
|
|
24177
24151
|
const formErrorMessage = formErrorItem ? `${formErrorItem[0].toUpperCase()}: ${formErrorItem[1]?.error}` : "";
|
|
24178
24152
|
return {
|
|
@@ -24183,10 +24157,10 @@ function useWatchFormData() {
|
|
|
24183
24157
|
setShowFormErrors
|
|
24184
24158
|
};
|
|
24185
24159
|
}
|
|
24186
|
-
var
|
|
24160
|
+
var import_react73, import_zustand14, usePolicyForm, usePolicyFormValidation;
|
|
24187
24161
|
var init_usePolicyForm = __esm({
|
|
24188
24162
|
"src/internal/components/SecurityMenu/UserPolicies/usePolicyForm.ts"() {
|
|
24189
|
-
|
|
24163
|
+
import_react73 = require("react");
|
|
24190
24164
|
import_zustand14 = require("zustand");
|
|
24191
24165
|
init_utils10();
|
|
24192
24166
|
usePolicyForm = (0, import_zustand14.create)(() => null);
|
|
@@ -24217,10 +24191,10 @@ var init_useUserAssetsPolicies = __esm({
|
|
|
24217
24191
|
// src/internal/components/SecurityMenu/UserPolicies/PolicyForm.tsx
|
|
24218
24192
|
function AddressListEditor(props) {
|
|
24219
24193
|
const { label, assets = [], addresses, onChange } = props;
|
|
24220
|
-
const [isAssetSelector, setIsAssetSelector] = (0,
|
|
24221
|
-
const [customAddress, setCustomAddress] = (0,
|
|
24222
|
-
const [customAddressError, setCustomAddressError] = (0,
|
|
24223
|
-
const handleAddress = (0,
|
|
24194
|
+
const [isAssetSelector, setIsAssetSelector] = (0, import_react74.useState)(false);
|
|
24195
|
+
const [customAddress, setCustomAddress] = (0, import_react74.useState)("");
|
|
24196
|
+
const [customAddressError, setCustomAddressError] = (0, import_react74.useState)(null);
|
|
24197
|
+
const handleAddress = (0, import_react74.useCallback)(
|
|
24224
24198
|
(addressToAdd) => {
|
|
24225
24199
|
if (!isValidAddress(addressToAdd)) {
|
|
24226
24200
|
setCustomAddressError("Bad address");
|
|
@@ -24447,14 +24421,14 @@ function PolicyForm() {
|
|
|
24447
24421
|
showFormErrors && formErrorMessage && /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(Highlight, { type: "error", children: formErrorMessage })
|
|
24448
24422
|
] });
|
|
24449
24423
|
}
|
|
24450
|
-
var import_react_query47, import_lucide_react63,
|
|
24424
|
+
var import_react_query47, import_lucide_react63, import_react74, import_jsx_runtime106;
|
|
24451
24425
|
var init_PolicyForm = __esm({
|
|
24452
24426
|
"src/internal/components/SecurityMenu/UserPolicies/PolicyForm.tsx"() {
|
|
24453
24427
|
init_SessionContext();
|
|
24454
24428
|
init_useT();
|
|
24455
24429
|
import_react_query47 = require("@tanstack/react-query");
|
|
24456
24430
|
import_lucide_react63 = require("lucide-react");
|
|
24457
|
-
|
|
24431
|
+
import_react74 = require("react");
|
|
24458
24432
|
init_button();
|
|
24459
24433
|
init_highlight();
|
|
24460
24434
|
init_input();
|
|
@@ -24536,7 +24510,7 @@ function UserPolicies() {
|
|
|
24536
24510
|
const config = useProviderConfig().config;
|
|
24537
24511
|
const mpcUserId = useSession((st) => st.session?.mpcUserId);
|
|
24538
24512
|
const activeChainId = useSession((st) => st.activeChainId);
|
|
24539
|
-
const [isConfirmingDelete, setIsConfirmingDelete] = (0,
|
|
24513
|
+
const [isConfirmingDelete, setIsConfirmingDelete] = (0, import_react75.useState)(false);
|
|
24540
24514
|
const { data: policyView, isLoading: isPolicyLoading } = useUserAssetsPolicies(activeChainId);
|
|
24541
24515
|
const { mutate: cancelPending, isPending: isCancellingPending } = (0, import_react_query48.useMutation)({
|
|
24542
24516
|
mutationFn: async () => {
|
|
@@ -24649,7 +24623,7 @@ function UserPolicies() {
|
|
|
24649
24623
|
] })
|
|
24650
24624
|
] });
|
|
24651
24625
|
}
|
|
24652
|
-
var import_react_query48, import_clsx3, import_lucide_react64,
|
|
24626
|
+
var import_react_query48, import_clsx3, import_lucide_react64, import_react75, import_jsx_runtime107;
|
|
24653
24627
|
var init_UserPolicies = __esm({
|
|
24654
24628
|
"src/internal/components/SecurityMenu/UserPolicies/UserPolicies.tsx"() {
|
|
24655
24629
|
init_ProviderContext();
|
|
@@ -24658,7 +24632,7 @@ var init_UserPolicies = __esm({
|
|
|
24658
24632
|
import_react_query48 = require("@tanstack/react-query");
|
|
24659
24633
|
import_clsx3 = __toESM(require("clsx"), 1);
|
|
24660
24634
|
import_lucide_react64 = require("lucide-react");
|
|
24661
|
-
|
|
24635
|
+
import_react75 = require("react");
|
|
24662
24636
|
init_button();
|
|
24663
24637
|
init_highlight();
|
|
24664
24638
|
init_api4();
|
|
@@ -24683,9 +24657,9 @@ var init_UserPolicies2 = __esm({
|
|
|
24683
24657
|
|
|
24684
24658
|
// src/internal/components/SecurityMenu/useSecurityMenuParams.ts
|
|
24685
24659
|
function useSecurityMenuParams() {
|
|
24686
|
-
(0,
|
|
24660
|
+
(0, import_react76.useEffect)(() => {
|
|
24687
24661
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
24688
|
-
if (!pageParams || !(0,
|
|
24662
|
+
if (!pageParams || !(0, import_lodash_es15.keys)(pageParams).length) return;
|
|
24689
24663
|
const { submenu } = pageParams;
|
|
24690
24664
|
setTimeout(() => {
|
|
24691
24665
|
switch (submenu) {
|
|
@@ -24707,11 +24681,11 @@ function useSecurityMenuParams() {
|
|
|
24707
24681
|
setPageParams(null);
|
|
24708
24682
|
}, []);
|
|
24709
24683
|
}
|
|
24710
|
-
var
|
|
24684
|
+
var import_lodash_es15, import_react76;
|
|
24711
24685
|
var init_useSecurityMenuParams = __esm({
|
|
24712
24686
|
"src/internal/components/SecurityMenu/useSecurityMenuParams.ts"() {
|
|
24713
|
-
|
|
24714
|
-
|
|
24687
|
+
import_lodash_es15 = require("lodash-es");
|
|
24688
|
+
import_react76 = require("react");
|
|
24715
24689
|
init_useLayoutDataStore();
|
|
24716
24690
|
init_UserPolicies2();
|
|
24717
24691
|
init_useSecurityStore();
|
|
@@ -24726,7 +24700,7 @@ function SecurityMenuContent() {
|
|
|
24726
24700
|
const { appToUntrust, showConnectedApps, showAssetsPolicies } = useSecurityStore();
|
|
24727
24701
|
const policyForm = usePolicyForm();
|
|
24728
24702
|
useOnboardingTourAvailable(!showConnectedApps && !showAssetsPolicies);
|
|
24729
|
-
(0,
|
|
24703
|
+
(0, import_react77.useEffect)(() => {
|
|
24730
24704
|
let securityTitle = "";
|
|
24731
24705
|
switch (true) {
|
|
24732
24706
|
case showConnectedApps:
|
|
@@ -24747,7 +24721,7 @@ function SecurityMenuContent() {
|
|
|
24747
24721
|
return () => {
|
|
24748
24722
|
};
|
|
24749
24723
|
}, [t, showConnectedApps, showAssetsPolicies, policyForm]);
|
|
24750
|
-
(0,
|
|
24724
|
+
(0, import_react77.useEffect)(
|
|
24751
24725
|
() => () => {
|
|
24752
24726
|
usePolicyForm.setState(null, true);
|
|
24753
24727
|
useSecurityStore.setState(
|
|
@@ -24841,13 +24815,13 @@ function SecurityMenu() {
|
|
|
24841
24815
|
/* @__PURE__ */ (0, import_jsx_runtime108.jsx)(SecurityMenuContent, {})
|
|
24842
24816
|
] });
|
|
24843
24817
|
}
|
|
24844
|
-
var import_lucide_react65,
|
|
24818
|
+
var import_lucide_react65, import_react77, import_jsx_runtime108;
|
|
24845
24819
|
var init_SecurityMenu = __esm({
|
|
24846
24820
|
"src/internal/components/SecurityMenu/SecurityMenu.tsx"() {
|
|
24847
24821
|
init_ProviderContext();
|
|
24848
24822
|
init_i18n();
|
|
24849
24823
|
import_lucide_react65 = require("lucide-react");
|
|
24850
|
-
|
|
24824
|
+
import_react77 = require("react");
|
|
24851
24825
|
init_useLayoutDataStore();
|
|
24852
24826
|
init_Expandable2();
|
|
24853
24827
|
init_Onboarding();
|
|
@@ -25051,8 +25025,8 @@ var init_SenderSelector = __esm({
|
|
|
25051
25025
|
function useAvailableSenders() {
|
|
25052
25026
|
const address = useSession((st) => st.address);
|
|
25053
25027
|
const { profiles } = useLinkedProfiles();
|
|
25054
|
-
const lastCalcedSenders = (0,
|
|
25055
|
-
(0,
|
|
25028
|
+
const lastCalcedSenders = (0, import_react78.useRef)([]);
|
|
25029
|
+
(0, import_react78.useEffect)(() => {
|
|
25056
25030
|
const sendersAccumulator = [
|
|
25057
25031
|
{
|
|
25058
25032
|
type: "embarkai-wallet",
|
|
@@ -25086,13 +25060,13 @@ function useAvailableSenders() {
|
|
|
25086
25060
|
directWalletProfiles: profiles.filter((p) => p.provider === "wallet")
|
|
25087
25061
|
};
|
|
25088
25062
|
}
|
|
25089
|
-
var
|
|
25063
|
+
var import_react78;
|
|
25090
25064
|
var init_useAvailableSenders = __esm({
|
|
25091
25065
|
"src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts"() {
|
|
25092
25066
|
init_SessionContext();
|
|
25093
25067
|
init_tokens();
|
|
25094
25068
|
init_linkedProfiles();
|
|
25095
|
-
|
|
25069
|
+
import_react78 = require("react");
|
|
25096
25070
|
init_wallets();
|
|
25097
25071
|
init_useBridgeStore();
|
|
25098
25072
|
}
|
|
@@ -25507,18 +25481,18 @@ function useHyperlaneHistory() {
|
|
|
25507
25481
|
getNextPageParam: (lastPage) => lastPage.page < lastPage.pageCount ? lastPage.page + 1 : void 0,
|
|
25508
25482
|
queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
25509
25483
|
});
|
|
25510
|
-
const txList = (0,
|
|
25484
|
+
const txList = (0, import_react79.useMemo)(
|
|
25511
25485
|
() => query?.data?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
25512
25486
|
[query?.data]
|
|
25513
25487
|
);
|
|
25514
25488
|
return { query, txList };
|
|
25515
25489
|
}
|
|
25516
|
-
var import_react_query49,
|
|
25490
|
+
var import_react_query49, import_react79, HYPERLANE_HISTORY_QUERY_KEY, TX_HISTORY_PAGE_SIZE, TX_HISTORY_POLLING_INTERVAL;
|
|
25517
25491
|
var init_useHyperlaneHistory = __esm({
|
|
25518
25492
|
"src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts"() {
|
|
25519
25493
|
init_SessionContext();
|
|
25520
25494
|
import_react_query49 = require("@tanstack/react-query");
|
|
25521
|
-
|
|
25495
|
+
import_react79 = require("react");
|
|
25522
25496
|
init_useLayoutDataStore();
|
|
25523
25497
|
init_useFlowSelector();
|
|
25524
25498
|
init_api5();
|
|
@@ -25550,7 +25524,7 @@ function useBridge() {
|
|
|
25550
25524
|
const address = useSession((st) => st.address);
|
|
25551
25525
|
const { data: walletClient } = (0, import_wagmi6.useWalletClient)();
|
|
25552
25526
|
const { mutateAsync: switchChainAsync } = (0, import_wagmi6.useSwitchChain)();
|
|
25553
|
-
const swapDirection = (0,
|
|
25527
|
+
const swapDirection = (0, import_react80.useCallback)(() => {
|
|
25554
25528
|
const {
|
|
25555
25529
|
// bridgeStep,
|
|
25556
25530
|
originChain,
|
|
@@ -25601,7 +25575,7 @@ function useBridge() {
|
|
|
25601
25575
|
useFlowSelectorStore.getState().setError(error instanceof Error ? error.message : String(error));
|
|
25602
25576
|
}
|
|
25603
25577
|
});
|
|
25604
|
-
const handleQuoteEstimation = (0,
|
|
25578
|
+
const handleQuoteEstimation = (0, import_react80.useCallback)((amnt) => {
|
|
25605
25579
|
const { originChain, destinationChain, bridgeSender } = useBridgeStore.getState();
|
|
25606
25580
|
if (!amnt || !Number(amnt)) {
|
|
25607
25581
|
useBridgeStore.getState().setQuote(null);
|
|
@@ -25736,13 +25710,13 @@ function useBridge() {
|
|
|
25736
25710
|
isAssetBridging
|
|
25737
25711
|
};
|
|
25738
25712
|
}
|
|
25739
|
-
var import_react_query50,
|
|
25713
|
+
var import_react_query50, import_react80, import_wagmi6;
|
|
25740
25714
|
var init_useBridge = __esm({
|
|
25741
25715
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridge.ts"() {
|
|
25742
25716
|
init_SessionContext();
|
|
25743
25717
|
init_i18n();
|
|
25744
25718
|
import_react_query50 = require("@tanstack/react-query");
|
|
25745
|
-
|
|
25719
|
+
import_react80 = require("react");
|
|
25746
25720
|
import_wagmi6 = require("wagmi");
|
|
25747
25721
|
init_useLayoutStore();
|
|
25748
25722
|
init_useExternalWalletStore();
|
|
@@ -25773,7 +25747,7 @@ function useHyperlaneRoutes() {
|
|
|
25773
25747
|
queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
|
|
25774
25748
|
queryFn: async () => await getHyperlaneWarpRoutes()
|
|
25775
25749
|
});
|
|
25776
|
-
(0,
|
|
25750
|
+
(0, import_react81.useEffect)(() => {
|
|
25777
25751
|
if (!errorWarpRoutes) return;
|
|
25778
25752
|
useFlowSelectorStore.getState().setError(errorWarpRoutes.message);
|
|
25779
25753
|
const { resetSelections, setRecipient, setOriginChain, setDestinationChain } = useBridgeStore.getState();
|
|
@@ -25782,7 +25756,7 @@ function useHyperlaneRoutes() {
|
|
|
25782
25756
|
setOriginChain(null);
|
|
25783
25757
|
setDestinationChain(null);
|
|
25784
25758
|
}, [errorWarpRoutes]);
|
|
25785
|
-
(0,
|
|
25759
|
+
(0, import_react81.useEffect)(() => {
|
|
25786
25760
|
if (!!hyperRoute || !hyperlaneWarpRoutes.length) return;
|
|
25787
25761
|
let targetHyperRouteToSelect = hyperlaneWarpRoutes.find((route) => route.routeId === hyperRoute);
|
|
25788
25762
|
if (!targetHyperRouteToSelect) {
|
|
@@ -25807,12 +25781,12 @@ function useHyperlaneRoutes() {
|
|
|
25807
25781
|
}, [hyperRoute, hyperlaneWarpRoutes]);
|
|
25808
25782
|
return { hyperlaneWarpRoutes, isLoadingWarpRoutes };
|
|
25809
25783
|
}
|
|
25810
|
-
var import_react_query51,
|
|
25784
|
+
var import_react_query51, import_react81, HYPERLANE_WARP_ROUTES_QUERY_KEY;
|
|
25811
25785
|
var init_useHyperlaneRoutes = __esm({
|
|
25812
25786
|
"src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts"() {
|
|
25813
25787
|
init_SessionContext();
|
|
25814
25788
|
import_react_query51 = require("@tanstack/react-query");
|
|
25815
|
-
|
|
25789
|
+
import_react81 = require("react");
|
|
25816
25790
|
init_useLayoutDataStore();
|
|
25817
25791
|
init_useFlowSelector();
|
|
25818
25792
|
init_api5();
|
|
@@ -25828,7 +25802,7 @@ function useMenuTitle(warpRoutes) {
|
|
|
25828
25802
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
25829
25803
|
const hyperRoute = useBridgeStore((st) => st.hyperRoute);
|
|
25830
25804
|
const hyperRouteMeta = warpRoutes?.length ? warpRoutes.find((route) => route.routeId === hyperRoute) : null;
|
|
25831
|
-
(0,
|
|
25805
|
+
(0, import_react82.useEffect)(() => {
|
|
25832
25806
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
25833
25807
|
switch (true) {
|
|
25834
25808
|
case bridgeStep === "sender-selector":
|
|
@@ -25856,11 +25830,11 @@ function useMenuTitle(warpRoutes) {
|
|
|
25856
25830
|
}
|
|
25857
25831
|
}, [bridgeStep, hyperRouteMeta, t]);
|
|
25858
25832
|
}
|
|
25859
|
-
var
|
|
25833
|
+
var import_react82;
|
|
25860
25834
|
var init_useMenuTitle = __esm({
|
|
25861
25835
|
"src/internal/components/SendMenu/hyperbridge/hooks/useMenuTitle.ts"() {
|
|
25862
25836
|
init_i18n();
|
|
25863
|
-
|
|
25837
|
+
import_react82 = require("react");
|
|
25864
25838
|
init_useFlowSelector();
|
|
25865
25839
|
init_useBridgeStore();
|
|
25866
25840
|
}
|
|
@@ -26110,7 +26084,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26110
26084
|
};
|
|
26111
26085
|
}
|
|
26112
26086
|
});
|
|
26113
|
-
const refreshRouteTokenBalance = (0,
|
|
26087
|
+
const refreshRouteTokenBalance = (0, import_react83.useCallback)(
|
|
26114
26088
|
(senderWallet) => {
|
|
26115
26089
|
switch (true) {
|
|
26116
26090
|
case senderWallet === "embarkai-wallet":
|
|
@@ -26126,7 +26100,7 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26126
26100
|
},
|
|
26127
26101
|
[refreshBalances, qc]
|
|
26128
26102
|
);
|
|
26129
|
-
(0,
|
|
26103
|
+
(0, import_react83.useEffect)(() => {
|
|
26130
26104
|
if (!!isLoadingWarpRoutes || !bridgeSender || !originChain) return;
|
|
26131
26105
|
switch (bridgeSender) {
|
|
26132
26106
|
case "embarkai-wallet":
|
|
@@ -26157,14 +26131,14 @@ function useBridgeBalance(isLoadingWarpRoutes, hyperlaneWarpRoutes) {
|
|
|
26157
26131
|
isRouteTokenBalanceLoading: isAssetsLoading || isExternalBalanceLoading || isExternalNativeBalanceLoading
|
|
26158
26132
|
};
|
|
26159
26133
|
}
|
|
26160
|
-
var import_core8, import_react_query52,
|
|
26134
|
+
var import_core8, import_react_query52, import_react83, import_viem15, import_wagmi7, EXTERNAL_WALLET_BRIDGING_BALANCE_QUERY, EXTERNAL_WALLET_BRIDGING_NATIVE_BALANCE_QUERY;
|
|
26161
26135
|
var init_useBridgeBalance = __esm({
|
|
26162
26136
|
"src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts"() {
|
|
26163
26137
|
init_SessionContext();
|
|
26164
26138
|
init_i18n();
|
|
26165
26139
|
import_core8 = require("@embarkai/core");
|
|
26166
26140
|
import_react_query52 = require("@tanstack/react-query");
|
|
26167
|
-
|
|
26141
|
+
import_react83 = require("react");
|
|
26168
26142
|
import_viem15 = require("viem");
|
|
26169
26143
|
import_wagmi7 = require("wagmi");
|
|
26170
26144
|
init_useBlockscoutAssets2();
|
|
@@ -26293,7 +26267,7 @@ function SelectStep(props) {
|
|
|
26293
26267
|
variant: "outline",
|
|
26294
26268
|
size: "medium",
|
|
26295
26269
|
className: "bg-[var(--ui-kit-bg)] flex items-center gap-[var(--ui-kit-gap)]",
|
|
26296
|
-
children: selectedWarpRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
|
|
26270
|
+
children: selectedWarpRoute.chainPair.map((chain, chIdx) => /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(import_react84.Fragment, { children: [
|
|
26297
26271
|
chIdx > 0 && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_lucide_react67.ArrowLeftRightIcon, { className: "w-4 h-4 " }),
|
|
26298
26272
|
/* @__PURE__ */ (0, import_jsx_runtime111.jsx)(ResolveChainIcon, { chainName: chain.chainName, className: "w-4 h-4" })
|
|
26299
26273
|
] }, `${selectedWarpRoute.id}-icon-${chain.chainID}-${chIdx}`))
|
|
@@ -26437,13 +26411,13 @@ function SelectStep(props) {
|
|
|
26437
26411
|
)
|
|
26438
26412
|
] });
|
|
26439
26413
|
}
|
|
26440
|
-
var import_lucide_react67,
|
|
26414
|
+
var import_lucide_react67, import_react84, import_jsx_runtime111;
|
|
26441
26415
|
var init_SelectStep = __esm({
|
|
26442
26416
|
"src/internal/components/SendMenu/hyperbridge/steps/SelectStep.tsx"() {
|
|
26443
26417
|
init_tokens();
|
|
26444
26418
|
init_i18n();
|
|
26445
26419
|
import_lucide_react67 = require("lucide-react");
|
|
26446
|
-
|
|
26420
|
+
import_react84 = require("react");
|
|
26447
26421
|
init_priceFormatter();
|
|
26448
26422
|
init_utils();
|
|
26449
26423
|
init_useExternalWalletStore();
|
|
@@ -26494,7 +26468,7 @@ var init_checkbox = __esm({
|
|
|
26494
26468
|
// src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx
|
|
26495
26469
|
function ConfirmStep(props) {
|
|
26496
26470
|
const { isAssetBridging, bridgeAsset, hyperlaneWarpRoutes } = props;
|
|
26497
|
-
const [userConsent, setUserConsent] = (0,
|
|
26471
|
+
const [userConsent, setUserConsent] = (0, import_react85.useState)(false);
|
|
26498
26472
|
const { t } = useT();
|
|
26499
26473
|
const address = useSession((st) => st.address);
|
|
26500
26474
|
const bridgeSender = useBridgeStore((st) => st.bridgeSenders.find((s) => s.type === st.bridgeSender));
|
|
@@ -26610,13 +26584,13 @@ function ConfirmStep(props) {
|
|
|
26610
26584
|
}
|
|
26611
26585
|
);
|
|
26612
26586
|
}
|
|
26613
|
-
var import_lucide_react69,
|
|
26587
|
+
var import_lucide_react69, import_react85, import_jsx_runtime113, P_CN;
|
|
26614
26588
|
var init_ConfirmStep = __esm({
|
|
26615
26589
|
"src/internal/components/SendMenu/hyperbridge/steps/ConfirmStep.tsx"() {
|
|
26616
26590
|
init_SessionContext();
|
|
26617
26591
|
init_i18n();
|
|
26618
26592
|
import_lucide_react69 = require("lucide-react");
|
|
26619
|
-
|
|
26593
|
+
import_react85 = require("react");
|
|
26620
26594
|
init_priceFormatter();
|
|
26621
26595
|
init_utils();
|
|
26622
26596
|
init_Onboarding();
|
|
@@ -26993,7 +26967,7 @@ function SelectAssetRoute(props) {
|
|
|
26993
26967
|
const { hyperlaneWarpRoutes } = props;
|
|
26994
26968
|
const { t } = useT();
|
|
26995
26969
|
const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
|
|
26996
|
-
const tokenList = (0,
|
|
26970
|
+
const tokenList = (0, import_react86.useMemo)(() => {
|
|
26997
26971
|
const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
|
|
26998
26972
|
const uniqueTokens = Array.from(new Set(tokens));
|
|
26999
26973
|
return uniqueTokens.map((symbol) => ({
|
|
@@ -27070,13 +27044,13 @@ function SelectAssetRoute(props) {
|
|
|
27070
27044
|
] })
|
|
27071
27045
|
] });
|
|
27072
27046
|
}
|
|
27073
|
-
var import_lucide_react71,
|
|
27047
|
+
var import_lucide_react71, import_react86, import_jsx_runtime116;
|
|
27074
27048
|
var init_SelectAssetRoute = __esm({
|
|
27075
27049
|
"src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx"() {
|
|
27076
27050
|
init_tokens();
|
|
27077
27051
|
init_i18n();
|
|
27078
27052
|
import_lucide_react71 = require("lucide-react");
|
|
27079
|
-
|
|
27053
|
+
import_react86 = require("react");
|
|
27080
27054
|
init_button();
|
|
27081
27055
|
init_ResolveChainIcon();
|
|
27082
27056
|
init_useBridgeStore();
|
|
@@ -27103,7 +27077,7 @@ function HyperlaneBridge() {
|
|
|
27103
27077
|
const { hyperlaneWarpRoutes, isLoadingWarpRoutes } = useHyperlaneRoutes();
|
|
27104
27078
|
const { directWalletProfiles } = useAvailableSenders();
|
|
27105
27079
|
useMenuTitle(hyperlaneWarpRoutes);
|
|
27106
|
-
(0,
|
|
27080
|
+
(0, import_react87.useEffect)(() => {
|
|
27107
27081
|
return () => {
|
|
27108
27082
|
useBridgeStore.getState().resetSelections();
|
|
27109
27083
|
};
|
|
@@ -27136,10 +27110,10 @@ function HyperlaneBridge() {
|
|
|
27136
27110
|
bridgeStep === "tx-history-details" && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(HistoryDetailsStep, {})
|
|
27137
27111
|
] });
|
|
27138
27112
|
}
|
|
27139
|
-
var
|
|
27113
|
+
var import_react87, import_jsx_runtime117;
|
|
27140
27114
|
var init_HyperlaneBridge = __esm({
|
|
27141
27115
|
"src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx"() {
|
|
27142
|
-
|
|
27116
|
+
import_react87 = require("react");
|
|
27143
27117
|
init_SenderSelector();
|
|
27144
27118
|
init_useAvailableSenders();
|
|
27145
27119
|
init_useBridge();
|
|
@@ -27157,7 +27131,7 @@ function BridgeHistorySwitch(props) {
|
|
|
27157
27131
|
const selectorFlow = useFlowSelectorStore((st) => st.flow);
|
|
27158
27132
|
const isUiLocked = useFlowSelectorStore((st) => st.isUiLocked);
|
|
27159
27133
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
27160
|
-
const lastBridgeStepRef = (0,
|
|
27134
|
+
const lastBridgeStepRef = (0, import_react88.useRef)(null);
|
|
27161
27135
|
if (selectorFlow !== "bridge" || bridgeStep === "confirm" || bridgeStep === "success" || bridgeStep === "sender-selector" || bridgeStep === "select-token" || bridgeStep === "tx-history-details") {
|
|
27162
27136
|
return null;
|
|
27163
27137
|
}
|
|
@@ -27176,10 +27150,10 @@ function BridgeHistorySwitch(props) {
|
|
|
27176
27150
|
}
|
|
27177
27151
|
);
|
|
27178
27152
|
}
|
|
27179
|
-
var
|
|
27153
|
+
var import_react88, import_jsx_runtime118;
|
|
27180
27154
|
var init_HistorySwitch = __esm({
|
|
27181
27155
|
"src/internal/components/SendMenu/hyperbridge/components/HistorySwitch.tsx"() {
|
|
27182
|
-
|
|
27156
|
+
import_react88 = require("react");
|
|
27183
27157
|
init_switch();
|
|
27184
27158
|
init_useFlowSelector();
|
|
27185
27159
|
init_useBridgeStore();
|
|
@@ -27270,11 +27244,11 @@ function looksLikeNickname(input) {
|
|
|
27270
27244
|
}
|
|
27271
27245
|
function useNicknameResolve(input, options) {
|
|
27272
27246
|
const { enabled = true, chainId } = options;
|
|
27273
|
-
const [debouncedInput, setDebouncedInput] = (0,
|
|
27274
|
-
const [isDebouncing, setIsDebouncing] = (0,
|
|
27247
|
+
const [debouncedInput, setDebouncedInput] = (0, import_react89.useState)("");
|
|
27248
|
+
const [isDebouncing, setIsDebouncing] = (0, import_react89.useState)(false);
|
|
27275
27249
|
const normalized = normalizeNickname(input);
|
|
27276
27250
|
const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
|
|
27277
|
-
(0,
|
|
27251
|
+
(0, import_react89.useEffect)(() => {
|
|
27278
27252
|
if (!isNicknameInput || !enabled) {
|
|
27279
27253
|
setDebouncedInput("");
|
|
27280
27254
|
setIsDebouncing(false);
|
|
@@ -27300,7 +27274,7 @@ function useNicknameResolve(input, options) {
|
|
|
27300
27274
|
const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
|
|
27301
27275
|
const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
|
|
27302
27276
|
const isFrozen = query.data?.isFrozen ?? false;
|
|
27303
|
-
const fingerprintVerification = (0,
|
|
27277
|
+
const fingerprintVerification = (0, import_react89.useMemo)(() => {
|
|
27304
27278
|
if (!query.data?.owner || !query.data?.fingerprint) {
|
|
27305
27279
|
return null;
|
|
27306
27280
|
}
|
|
@@ -27322,11 +27296,11 @@ function useNicknameResolve(input, options) {
|
|
|
27322
27296
|
resolvedAddress
|
|
27323
27297
|
};
|
|
27324
27298
|
}
|
|
27325
|
-
var import_react_query54,
|
|
27299
|
+
var import_react_query54, import_react89, DEBOUNCE_MS2;
|
|
27326
27300
|
var init_useNicknameResolve = __esm({
|
|
27327
27301
|
"src/hooks/useNicknameResolve.ts"() {
|
|
27328
27302
|
import_react_query54 = require("@tanstack/react-query");
|
|
27329
|
-
|
|
27303
|
+
import_react89 = require("react");
|
|
27330
27304
|
init_nickname();
|
|
27331
27305
|
init_profile();
|
|
27332
27306
|
init_nickname_fingerprint();
|
|
@@ -27339,10 +27313,10 @@ var init_useNicknameResolve = __esm({
|
|
|
27339
27313
|
function useSendTransaction() {
|
|
27340
27314
|
const session = useSession((st) => st.session);
|
|
27341
27315
|
const address = useSession((st) => st.address);
|
|
27342
|
-
const [isLoading, setIsLoading] = (0,
|
|
27343
|
-
const [error, setError] = (0,
|
|
27344
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
27345
|
-
const sendTransaction = (0,
|
|
27316
|
+
const [isLoading, setIsLoading] = (0, import_react90.useState)(false);
|
|
27317
|
+
const [error, setError] = (0, import_react90.useState)(null);
|
|
27318
|
+
const [userOpHash, setUserOpHash] = (0, import_react90.useState)(null);
|
|
27319
|
+
const sendTransaction = (0, import_react90.useCallback)(
|
|
27346
27320
|
async (params) => {
|
|
27347
27321
|
if (!session || !address) {
|
|
27348
27322
|
setError("No active session");
|
|
@@ -27439,7 +27413,7 @@ function useSendTransaction() {
|
|
|
27439
27413
|
},
|
|
27440
27414
|
[session, address]
|
|
27441
27415
|
);
|
|
27442
|
-
const reset = (0,
|
|
27416
|
+
const reset = (0, import_react90.useCallback)(() => {
|
|
27443
27417
|
setError(null);
|
|
27444
27418
|
setUserOpHash(null);
|
|
27445
27419
|
setIsLoading(false);
|
|
@@ -27452,10 +27426,10 @@ function useSendTransaction() {
|
|
|
27452
27426
|
reset
|
|
27453
27427
|
};
|
|
27454
27428
|
}
|
|
27455
|
-
var
|
|
27429
|
+
var import_react90, import_viem16, ERC20_TRANSFER_ABI, ERC721_SAFE_TRANSFER_ABI, ERC1155_SAFE_TRANSFER_ABI;
|
|
27456
27430
|
var init_useSendTransaction = __esm({
|
|
27457
27431
|
"src/hooks/useSendTransaction.ts"() {
|
|
27458
|
-
|
|
27432
|
+
import_react90 = require("react");
|
|
27459
27433
|
import_viem16 = require("viem");
|
|
27460
27434
|
init_SessionContext();
|
|
27461
27435
|
init_account2();
|
|
@@ -27606,7 +27580,7 @@ var init_AssetInputIcon = __esm({
|
|
|
27606
27580
|
|
|
27607
27581
|
// src/internal/components/SendMenu/send/components/NftDisplayCard.tsx
|
|
27608
27582
|
function NftDisplayCard({ asset }) {
|
|
27609
|
-
const [imageError, setImageError] = (0,
|
|
27583
|
+
const [imageError, setImageError] = (0, import_react91.useState)(false);
|
|
27610
27584
|
const nftImage = asset.image || asset.nftMetadata?.image;
|
|
27611
27585
|
return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)("div", { className: "flex items-center gap-3 p-3 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-bg-secondary)]", children: [
|
|
27612
27586
|
nftImage && !imageError ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
|
|
@@ -27634,11 +27608,11 @@ function NftDisplayCard({ asset }) {
|
|
|
27634
27608
|
] })
|
|
27635
27609
|
] });
|
|
27636
27610
|
}
|
|
27637
|
-
var import_lucide_react73,
|
|
27611
|
+
var import_lucide_react73, import_react91, import_jsx_runtime120;
|
|
27638
27612
|
var init_NftDisplayCard = __esm({
|
|
27639
27613
|
"src/internal/components/SendMenu/send/components/NftDisplayCard.tsx"() {
|
|
27640
27614
|
import_lucide_react73 = require("lucide-react");
|
|
27641
|
-
|
|
27615
|
+
import_react91 = require("react");
|
|
27642
27616
|
import_jsx_runtime120 = require("react/jsx-runtime");
|
|
27643
27617
|
}
|
|
27644
27618
|
});
|
|
@@ -27758,7 +27732,7 @@ function NicknameData(props) {
|
|
|
27758
27732
|
isWalletNotSetup,
|
|
27759
27733
|
isFrozen
|
|
27760
27734
|
} = resolvedNicknameData;
|
|
27761
|
-
(0,
|
|
27735
|
+
(0, import_react92.useEffect)(() => {
|
|
27762
27736
|
if (isResolving) return;
|
|
27763
27737
|
let errMessage = null;
|
|
27764
27738
|
switch (true) {
|
|
@@ -27813,11 +27787,11 @@ function NicknameData(props) {
|
|
|
27813
27787
|
] })
|
|
27814
27788
|
] });
|
|
27815
27789
|
}
|
|
27816
|
-
var import_lucide_react74,
|
|
27790
|
+
var import_lucide_react74, import_react92, import_jsx_runtime122;
|
|
27817
27791
|
var init_NicknameData = __esm({
|
|
27818
27792
|
"src/internal/components/SendMenu/send/components/NicknameData.tsx"() {
|
|
27819
27793
|
import_lucide_react74 = require("lucide-react");
|
|
27820
|
-
|
|
27794
|
+
import_react92 = require("react");
|
|
27821
27795
|
init_no_image();
|
|
27822
27796
|
init_utils();
|
|
27823
27797
|
init_useFlowSelector();
|
|
@@ -28350,16 +28324,16 @@ function SendMenu() {
|
|
|
28350
28324
|
userOpHash,
|
|
28351
28325
|
reset
|
|
28352
28326
|
} = useSendTransaction();
|
|
28353
|
-
(0,
|
|
28327
|
+
(0, import_react93.useEffect)(() => {
|
|
28354
28328
|
useFlowSelectorStore.getState().setIsUiLocked(isAssetsLoading || isTransactionPending);
|
|
28355
28329
|
}, [isAssetsLoading, isTransactionPending]);
|
|
28356
|
-
(0,
|
|
28330
|
+
(0, import_react93.useEffect)(() => {
|
|
28357
28331
|
useFlowSelectorStore.getState().setError(sendTransactionError || null);
|
|
28358
28332
|
}, [sendTransactionError]);
|
|
28359
28333
|
const { txStep, recipient, amount, selectedAsset, setSelectedAsset } = useSendStore();
|
|
28360
28334
|
const isNft = isNftAsset3(selectedAsset);
|
|
28361
28335
|
const isSecurity = isSecurityToken2(selectedAsset);
|
|
28362
|
-
(0,
|
|
28336
|
+
(0, import_react93.useEffect)(() => {
|
|
28363
28337
|
const shouldDefaultAsset = assets.length > 0 && !selectedAsset;
|
|
28364
28338
|
if (!shouldDefaultAsset) return;
|
|
28365
28339
|
const chainNativeCurrency = useSession.getState().chainConfig?.nativeCurrency;
|
|
@@ -28369,7 +28343,7 @@ function SendMenu() {
|
|
|
28369
28343
|
if (isBalance(erc20)) return setSelectedAsset(erc20);
|
|
28370
28344
|
setSelectedAsset(assets[0]);
|
|
28371
28345
|
}, [assets, selectedAsset]);
|
|
28372
|
-
(0,
|
|
28346
|
+
(0, import_react93.useEffect)(
|
|
28373
28347
|
() => () => {
|
|
28374
28348
|
useSendStore.getState().reset();
|
|
28375
28349
|
reset();
|
|
@@ -28379,7 +28353,7 @@ function SendMenu() {
|
|
|
28379
28353
|
const isNicknameInput = looksLikeNickname(recipient);
|
|
28380
28354
|
const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
|
|
28381
28355
|
const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
|
|
28382
|
-
const complianceAmount = (0,
|
|
28356
|
+
const complianceAmount = (0, import_react93.useMemo)(() => {
|
|
28383
28357
|
if (!isSecurity || !amount || !selectedAsset) return void 0;
|
|
28384
28358
|
try {
|
|
28385
28359
|
return (0, import_viem21.parseUnits)(amount, selectedAsset.decimals || 18);
|
|
@@ -28394,7 +28368,7 @@ function SendMenu() {
|
|
|
28394
28368
|
enabled: isSecurity && !!effectiveAddress && !!complianceAmount,
|
|
28395
28369
|
chainId: activeChainId
|
|
28396
28370
|
});
|
|
28397
|
-
(0,
|
|
28371
|
+
(0, import_react93.useEffect)(() => {
|
|
28398
28372
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
28399
28373
|
switch (true) {
|
|
28400
28374
|
case txStep === "select-asset":
|
|
@@ -28464,7 +28438,7 @@ function SendMenu() {
|
|
|
28464
28438
|
] })
|
|
28465
28439
|
] });
|
|
28466
28440
|
}
|
|
28467
|
-
var import_lucide_react77,
|
|
28441
|
+
var import_lucide_react77, import_react93, import_viem21, import_jsx_runtime125;
|
|
28468
28442
|
var init_SendMenu = __esm({
|
|
28469
28443
|
"src/internal/components/SendMenu/send/SendMenu.tsx"() {
|
|
28470
28444
|
init_SessionContext();
|
|
@@ -28473,7 +28447,7 @@ var init_SendMenu = __esm({
|
|
|
28473
28447
|
init_useSendTransaction();
|
|
28474
28448
|
init_useT();
|
|
28475
28449
|
import_lucide_react77 = require("lucide-react");
|
|
28476
|
-
|
|
28450
|
+
import_react93 = require("react");
|
|
28477
28451
|
import_viem21 = require("viem");
|
|
28478
28452
|
init_useBlockscoutAssets2();
|
|
28479
28453
|
init_useLayoutDataStore();
|
|
@@ -28499,9 +28473,9 @@ var init_send = __esm({
|
|
|
28499
28473
|
// src/internal/components/SendMenu/useSendMenuParams.ts
|
|
28500
28474
|
function useSendMenuParams() {
|
|
28501
28475
|
const { config } = useProviderConfig();
|
|
28502
|
-
(0,
|
|
28476
|
+
(0, import_react94.useEffect)(() => {
|
|
28503
28477
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
28504
|
-
if (!pageParams || !(0,
|
|
28478
|
+
if (!pageParams || !(0, import_lodash_es16.keys)(pageParams).length) return;
|
|
28505
28479
|
const { sendFlow, send, bridge } = pageParams || {};
|
|
28506
28480
|
if (sendFlow === "bridge" && !config?.current?.features?.showAssetBridge) {
|
|
28507
28481
|
setPageParams(null);
|
|
@@ -28552,12 +28526,12 @@ function useSendMenuParams() {
|
|
|
28552
28526
|
setPageParams(null);
|
|
28553
28527
|
}, []);
|
|
28554
28528
|
}
|
|
28555
|
-
var
|
|
28529
|
+
var import_lodash_es16, import_react94;
|
|
28556
28530
|
var init_useSendMenuParams = __esm({
|
|
28557
28531
|
"src/internal/components/SendMenu/useSendMenuParams.ts"() {
|
|
28558
28532
|
init_ProviderContext();
|
|
28559
|
-
|
|
28560
|
-
|
|
28533
|
+
import_lodash_es16 = require("lodash-es");
|
|
28534
|
+
import_react94 = require("react");
|
|
28561
28535
|
init_useLayoutDataStore();
|
|
28562
28536
|
init_useBridgeStore();
|
|
28563
28537
|
init_useSendStore();
|
|
@@ -28625,17 +28599,17 @@ function SendFlowSelector() {
|
|
|
28625
28599
|
const sendStep = useSendStore((st) => st.txStep);
|
|
28626
28600
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
28627
28601
|
useOnboardingTourAvailable(sendStep === "input" && bridgeStep === "select");
|
|
28628
|
-
(0,
|
|
28602
|
+
(0, import_react95.useEffect)(
|
|
28629
28603
|
() => () => {
|
|
28630
28604
|
useFlowSelectorStore.getState().setError(null);
|
|
28631
28605
|
},
|
|
28632
28606
|
[]
|
|
28633
28607
|
);
|
|
28634
|
-
(0,
|
|
28608
|
+
(0, import_react95.useEffect)(() => {
|
|
28635
28609
|
if (!!config?.current?.features?.showAssetBridge) return;
|
|
28636
28610
|
if (selectorFlow === "bridge") useFlowSelectorStore.getState().setFlow("send");
|
|
28637
28611
|
}, [selectorFlow]);
|
|
28638
|
-
const availableFlows = (0,
|
|
28612
|
+
const availableFlows = (0, import_react95.useMemo)(() => {
|
|
28639
28613
|
const selectorFlows = { send: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(SendMenu, {}) };
|
|
28640
28614
|
if (!!config?.current?.features?.showAssetBridge) selectorFlows.bridge = /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(HyperlaneBridge, {});
|
|
28641
28615
|
return selectorFlows;
|
|
@@ -28700,13 +28674,13 @@ function SendFlowSelector() {
|
|
|
28700
28674
|
] })
|
|
28701
28675
|
] });
|
|
28702
28676
|
}
|
|
28703
|
-
var import_lucide_react78,
|
|
28677
|
+
var import_lucide_react78, import_react95, import_jsx_runtime126;
|
|
28704
28678
|
var init_SendFlowSelector = __esm({
|
|
28705
28679
|
"src/internal/components/SendMenu/SendFlowSelector.tsx"() {
|
|
28706
28680
|
init_ProviderContext();
|
|
28707
28681
|
init_i18n();
|
|
28708
28682
|
import_lucide_react78 = require("lucide-react");
|
|
28709
|
-
|
|
28683
|
+
import_react95 = require("react");
|
|
28710
28684
|
init_useLayoutDataStore();
|
|
28711
28685
|
init_utils();
|
|
28712
28686
|
init_Expandable2();
|
|
@@ -28769,12 +28743,12 @@ function getServerSnapshot() {
|
|
|
28769
28743
|
return false;
|
|
28770
28744
|
}
|
|
28771
28745
|
function useProMode() {
|
|
28772
|
-
return (0,
|
|
28746
|
+
return (0, import_react96.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot);
|
|
28773
28747
|
}
|
|
28774
|
-
var
|
|
28748
|
+
var import_react96, STORAGE_KEY, EVENT_NAME;
|
|
28775
28749
|
var init_pro_mode = __esm({
|
|
28776
28750
|
"src/internal/lib/pro-mode.ts"() {
|
|
28777
|
-
|
|
28751
|
+
import_react96 = require("react");
|
|
28778
28752
|
STORAGE_KEY = "embarkai_pro_mode";
|
|
28779
28753
|
EVENT_NAME = "embarkai-pro-mode-changed";
|
|
28780
28754
|
}
|
|
@@ -29580,7 +29554,7 @@ function TransactionsMenu() {
|
|
|
29580
29554
|
const { t } = useT();
|
|
29581
29555
|
useOnboardingTourAvailable(true);
|
|
29582
29556
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
29583
|
-
const [expandedGroups, setExpandedGroups] = (0,
|
|
29557
|
+
const [expandedGroups, setExpandedGroups] = (0, import_react97.useState)({});
|
|
29584
29558
|
const historySupported = isTransactionHistorySupported(chainConfig?.id);
|
|
29585
29559
|
const {
|
|
29586
29560
|
data: txHistoryGroups = [],
|
|
@@ -29593,7 +29567,7 @@ function TransactionsMenu() {
|
|
|
29593
29567
|
queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address],
|
|
29594
29568
|
queryFn: () => getTransactionsListQuery({ address, chainConfig })
|
|
29595
29569
|
});
|
|
29596
|
-
const refreshTxHistory = (0,
|
|
29570
|
+
const refreshTxHistory = (0, import_react97.useCallback)(
|
|
29597
29571
|
() => qc.invalidateQueries({ queryKey: [TRANSACTIONS_HISTORY_QUERY_KEY, chainConfig.id, address] }),
|
|
29598
29572
|
[qc, chainConfig.id, address]
|
|
29599
29573
|
);
|
|
@@ -29632,14 +29606,14 @@ function TransactionsMenu() {
|
|
|
29632
29606
|
)) })
|
|
29633
29607
|
] });
|
|
29634
29608
|
}
|
|
29635
|
-
var import_react_query57, import_lucide_react80,
|
|
29609
|
+
var import_react_query57, import_lucide_react80, import_react97, import_jsx_runtime128;
|
|
29636
29610
|
var init_TransactionsMenu = __esm({
|
|
29637
29611
|
"src/internal/components/TransactionsMenu/TransactionsMenu.tsx"() {
|
|
29638
29612
|
init_SessionContext();
|
|
29639
29613
|
init_i18n();
|
|
29640
29614
|
import_react_query57 = require("@tanstack/react-query");
|
|
29641
29615
|
import_lucide_react80 = require("lucide-react");
|
|
29642
|
-
|
|
29616
|
+
import_react97 = require("react");
|
|
29643
29617
|
init_useLayoutDataStore();
|
|
29644
29618
|
init_Expandable2();
|
|
29645
29619
|
init_Onboarding();
|
|
@@ -29979,7 +29953,7 @@ var init_PageMap = __esm({
|
|
|
29979
29953
|
// src/internal/hooks/usePageMapper.tsx
|
|
29980
29954
|
function usePageMapper() {
|
|
29981
29955
|
const page = useLayoutDataStore((st) => st.page);
|
|
29982
|
-
const closeDialog = (0,
|
|
29956
|
+
const closeDialog = (0, import_react98.useCallback)(() => {
|
|
29983
29957
|
useLayoutStore.setState({ isDialogAnimating: true });
|
|
29984
29958
|
setTimeout(() => {
|
|
29985
29959
|
useLayoutStore.setState({
|
|
@@ -29991,14 +29965,14 @@ function usePageMapper() {
|
|
|
29991
29965
|
});
|
|
29992
29966
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
29993
29967
|
}, []);
|
|
29994
|
-
const openDialog = (0,
|
|
29968
|
+
const openDialog = (0, import_react98.useCallback)((pageItem) => {
|
|
29995
29969
|
useLayoutStore.setState({
|
|
29996
29970
|
dialogContent: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(pageItem.component, {}),
|
|
29997
29971
|
isDialogOpen: true
|
|
29998
29972
|
// isDialogAnimating: true
|
|
29999
29973
|
});
|
|
30000
29974
|
}, []);
|
|
30001
|
-
(0,
|
|
29975
|
+
(0, import_react98.useEffect)(() => {
|
|
30002
29976
|
if (page === null) return closeDialog();
|
|
30003
29977
|
const pageItem = PAGE_MAP[page];
|
|
30004
29978
|
if (!pageItem) {
|
|
@@ -30009,10 +29983,10 @@ function usePageMapper() {
|
|
|
30009
29983
|
openDialog(pageItem);
|
|
30010
29984
|
}, [page, closeDialog, openDialog]);
|
|
30011
29985
|
}
|
|
30012
|
-
var
|
|
29986
|
+
var import_react98, import_jsx_runtime130, CLEAR_DIALOG_TIMEOUT;
|
|
30013
29987
|
var init_usePageMapper = __esm({
|
|
30014
29988
|
"src/internal/hooks/usePageMapper.tsx"() {
|
|
30015
|
-
|
|
29989
|
+
import_react98 = require("react");
|
|
30016
29990
|
init_PageMap();
|
|
30017
29991
|
init_constants();
|
|
30018
29992
|
init_useLayoutDataStore();
|
|
@@ -30028,24 +30002,24 @@ function useSettingsNotifications() {
|
|
|
30028
30002
|
const providers = import_auth25.jwtTokenManager.getProviders();
|
|
30029
30003
|
const hasEmail = providers.includes("email");
|
|
30030
30004
|
const { data: userProfile = null } = useUserProfile();
|
|
30031
|
-
(0,
|
|
30005
|
+
(0, import_react99.useEffect)(() => {
|
|
30032
30006
|
const isKYCVerified = userProfile?.kycDetails?.kycStatus === "verified";
|
|
30033
30007
|
setSettingsNotifications({
|
|
30034
30008
|
...COMPLETE_KYC_PROGRESS,
|
|
30035
30009
|
status: isKYCVerified ? "resolved" : "active"
|
|
30036
30010
|
});
|
|
30037
30011
|
}, [userProfile, setSettingsNotifications]);
|
|
30038
|
-
(0,
|
|
30012
|
+
(0, import_react99.useEffect)(() => {
|
|
30039
30013
|
setSettingsNotifications({
|
|
30040
30014
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
30041
30015
|
status: hasEmail ? "resolved" : "active"
|
|
30042
30016
|
});
|
|
30043
30017
|
}, [hasEmail, setSettingsNotifications]);
|
|
30044
30018
|
}
|
|
30045
|
-
var
|
|
30019
|
+
var import_react99, EMAIL_NOT_CONNECTED_NOTIFICATION, COMPLETE_KYC_PROGRESS;
|
|
30046
30020
|
var init_useSettingsNotifications = __esm({
|
|
30047
30021
|
"src/internal/hooks/useSettingsNotifications.ts"() {
|
|
30048
|
-
|
|
30022
|
+
import_react99 = require("react");
|
|
30049
30023
|
init_auth();
|
|
30050
30024
|
init_useLayoutDataStore();
|
|
30051
30025
|
init_useUserProfile();
|
|
@@ -30068,7 +30042,7 @@ var init_package = __esm({
|
|
|
30068
30042
|
"package.json"() {
|
|
30069
30043
|
package_default = {
|
|
30070
30044
|
name: "@embarkai/ui-kit",
|
|
30071
|
-
version: "0.4.
|
|
30045
|
+
version: "0.4.111",
|
|
30072
30046
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
30073
30047
|
type: "module",
|
|
30074
30048
|
main: "./dist/index.cjs",
|
|
@@ -30403,11 +30377,11 @@ function Header() {
|
|
|
30403
30377
|
const embarkPage = useLayoutDataStore((st) => st.page);
|
|
30404
30378
|
const isOnboardingTourAvailable = useOnboardingStore((st) => st.isTourAvailable);
|
|
30405
30379
|
const proMode = useProMode();
|
|
30406
|
-
const [proToast, setProToast] = (0,
|
|
30407
|
-
const [copied, setCopied] = (0,
|
|
30408
|
-
const clickCountRef = (0,
|
|
30409
|
-
const clickTimerRef = (0,
|
|
30410
|
-
const handleAvatarClick = (0,
|
|
30380
|
+
const [proToast, setProToast] = (0, import_react100.useState)(false);
|
|
30381
|
+
const [copied, setCopied] = (0, import_react100.useState)(false);
|
|
30382
|
+
const clickCountRef = (0, import_react100.useRef)(0);
|
|
30383
|
+
const clickTimerRef = (0, import_react100.useRef)(null);
|
|
30384
|
+
const handleAvatarClick = (0, import_react100.useCallback)(() => {
|
|
30411
30385
|
clickCountRef.current += 1;
|
|
30412
30386
|
if (clickTimerRef.current) {
|
|
30413
30387
|
clearTimeout(clickTimerRef.current);
|
|
@@ -30513,7 +30487,7 @@ function Header() {
|
|
|
30513
30487
|
}
|
|
30514
30488
|
);
|
|
30515
30489
|
}
|
|
30516
|
-
var import_lucide_react84,
|
|
30490
|
+
var import_lucide_react84, import_react100, import_jsx_runtime132;
|
|
30517
30491
|
var init_Header = __esm({
|
|
30518
30492
|
"src/internal/components/Header/Header.tsx"() {
|
|
30519
30493
|
init_lumia2();
|
|
@@ -30521,7 +30495,7 @@ var init_Header = __esm({
|
|
|
30521
30495
|
init_ProviderContext();
|
|
30522
30496
|
init_SessionContext();
|
|
30523
30497
|
import_lucide_react84 = require("lucide-react");
|
|
30524
|
-
|
|
30498
|
+
import_react100 = require("react");
|
|
30525
30499
|
init_icons();
|
|
30526
30500
|
init_auth();
|
|
30527
30501
|
init_useLayoutDataStore();
|
|
@@ -30553,48 +30527,46 @@ function useDecideContentStyles() {
|
|
|
30553
30527
|
return {
|
|
30554
30528
|
isClosing,
|
|
30555
30529
|
isMobileView,
|
|
30556
|
-
style: (0,
|
|
30530
|
+
style: (0, import_lodash_es17.merge)({}, mobileStyles)
|
|
30557
30531
|
};
|
|
30558
30532
|
}
|
|
30559
|
-
var DialogPrimitive,
|
|
30533
|
+
var DialogPrimitive, import_lodash_es17, import_lucide_react85, import_react101, import_jsx_runtime133, Dialog, DialogPortal, DialogOverlay, CONTENT_BG_SETUP, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription;
|
|
30560
30534
|
var init_dialog = __esm({
|
|
30561
30535
|
"src/internal/components/ui/dialog.tsx"() {
|
|
30562
30536
|
init_utils();
|
|
30563
30537
|
init_SessionContext();
|
|
30564
30538
|
init_i18n();
|
|
30565
30539
|
DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
30566
|
-
|
|
30540
|
+
import_lodash_es17 = require("lodash-es");
|
|
30567
30541
|
import_lucide_react85 = require("lucide-react");
|
|
30568
|
-
|
|
30542
|
+
import_react101 = require("react");
|
|
30569
30543
|
init_useLayoutDataStore();
|
|
30570
30544
|
init_useLayoutStore();
|
|
30571
30545
|
init_button();
|
|
30572
30546
|
import_jsx_runtime133 = require("react/jsx-runtime");
|
|
30573
30547
|
Dialog = DialogPrimitive.Root;
|
|
30574
30548
|
DialogPortal = DialogPrimitive.Portal;
|
|
30575
|
-
DialogOverlay = (0,
|
|
30576
|
-
|
|
30577
|
-
|
|
30578
|
-
|
|
30579
|
-
|
|
30580
|
-
|
|
30581
|
-
|
|
30582
|
-
|
|
30583
|
-
|
|
30584
|
-
|
|
30585
|
-
|
|
30586
|
-
|
|
30587
|
-
|
|
30588
|
-
|
|
30589
|
-
|
|
30590
|
-
);
|
|
30591
|
-
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
30549
|
+
DialogOverlay = (0, import_react101.forwardRef)(({ className, closing, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
30550
|
+
"div",
|
|
30551
|
+
{
|
|
30552
|
+
ref,
|
|
30553
|
+
style: { backdropFilter: "blur(var(--ui-kit-backdrop-blur))" },
|
|
30554
|
+
className: cn2(
|
|
30555
|
+
"w-[100dvw] h-[100dvh]",
|
|
30556
|
+
"fixed inset-0 z-[9998] bg-[var(--ui-kit-overlay)]",
|
|
30557
|
+
closing ? "animate-dialog-out" : "animate-dialog-in",
|
|
30558
|
+
className
|
|
30559
|
+
),
|
|
30560
|
+
...props
|
|
30561
|
+
}
|
|
30562
|
+
));
|
|
30563
|
+
DialogOverlay.displayName = "DialogOverlay";
|
|
30592
30564
|
CONTENT_BG_SETUP = {
|
|
30593
30565
|
backgroundColor: "var(--ui-kit-bg)",
|
|
30594
30566
|
border: "1px solid var(--ui-kit-bd)",
|
|
30595
30567
|
boxShadow: "var(--ui-kit-shadow, 0px 4px 10px var(--ui-kit-shadow-c, rgba(0, 0, 0, 0.1)))"
|
|
30596
30568
|
};
|
|
30597
|
-
DialogContent = (0,
|
|
30569
|
+
DialogContent = (0, import_react101.forwardRef)(
|
|
30598
30570
|
({ className, children, colorMode, ...props }, ref) => {
|
|
30599
30571
|
const { t, i18n } = useT();
|
|
30600
30572
|
const isSessionLoading = useSession((st) => st.isLoading);
|
|
@@ -30705,7 +30677,7 @@ var init_dialog = __esm({
|
|
|
30705
30677
|
DialogHeader.displayName = "DialogHeader";
|
|
30706
30678
|
DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { className: cn2("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
30707
30679
|
DialogFooter.displayName = "DialogFooter";
|
|
30708
|
-
DialogTitle = (0,
|
|
30680
|
+
DialogTitle = (0, import_react101.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
30709
30681
|
DialogPrimitive.Title,
|
|
30710
30682
|
{
|
|
30711
30683
|
ref,
|
|
@@ -30714,7 +30686,7 @@ var init_dialog = __esm({
|
|
|
30714
30686
|
}
|
|
30715
30687
|
));
|
|
30716
30688
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
30717
|
-
DialogDescription = (0,
|
|
30689
|
+
DialogDescription = (0, import_react101.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(DialogPrimitive.Description, { ref, className: cn2("text-sm text-muted-foreground", className), ...props }));
|
|
30718
30690
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
30719
30691
|
}
|
|
30720
30692
|
});
|
|
@@ -30737,19 +30709,19 @@ function Dialog2() {
|
|
|
30737
30709
|
const { colorMode, maxScrollHeight, isDialogOpen, dialogContent, isDialogForced } = useLayoutStore();
|
|
30738
30710
|
const page = useLayoutDataStore((st) => st.page);
|
|
30739
30711
|
const transitionPageHeight = useLayoutDataStore((st) => st.transitionPageHeight);
|
|
30740
|
-
(0,
|
|
30712
|
+
(0, import_react103.useEffect)(() => useLayoutStore.setState({ isSettings: !!session }), [session]);
|
|
30741
30713
|
usePageMapper();
|
|
30742
30714
|
useAutoConnect();
|
|
30743
30715
|
useBackupStatusChanges();
|
|
30744
30716
|
useDetectMaxScrollHeight();
|
|
30745
30717
|
useSettingsNotifications();
|
|
30746
30718
|
useListenIframeAuthEvents();
|
|
30747
|
-
useAllowExternalModalsScroll(isDialogOpen);
|
|
30748
30719
|
const isHeaderHidden = !session || page === "keysare-backup" /* KEYSARE_BACKUP */ && !hasServerVault;
|
|
30749
30720
|
return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
30750
30721
|
Dialog,
|
|
30751
30722
|
{
|
|
30752
30723
|
open: isDialogOpen,
|
|
30724
|
+
modal: false,
|
|
30753
30725
|
onOpenChange: (open) => {
|
|
30754
30726
|
if (isDialogForced) return;
|
|
30755
30727
|
if (!open) {
|
|
@@ -30768,8 +30740,8 @@ function Dialog2() {
|
|
|
30768
30740
|
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DialogTitle, { children: "embarkAI" }) }),
|
|
30769
30741
|
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DialogDescription, { className: "sr-only", children: "embarkAI wallet" }),
|
|
30770
30742
|
!isHeaderHidden && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Header, {}),
|
|
30771
|
-
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
30772
|
-
|
|
30743
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_react102.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
30744
|
+
import_react102.motion.div,
|
|
30773
30745
|
{
|
|
30774
30746
|
style: { overflow: "hidden" },
|
|
30775
30747
|
initial: { opacity: 0, height: transitionPageHeight },
|
|
@@ -30798,15 +30770,14 @@ function Dialog2() {
|
|
|
30798
30770
|
}
|
|
30799
30771
|
);
|
|
30800
30772
|
}
|
|
30801
|
-
var
|
|
30773
|
+
var import_react102, import_react103, import_jsx_runtime135;
|
|
30802
30774
|
var init_Dialog = __esm({
|
|
30803
30775
|
"src/internal/components/Dialog/Dialog.tsx"() {
|
|
30804
30776
|
init_ProviderContext();
|
|
30805
30777
|
init_SessionContext();
|
|
30806
|
-
|
|
30807
|
-
|
|
30778
|
+
import_react102 = require("motion/react");
|
|
30779
|
+
import_react103 = require("react");
|
|
30808
30780
|
init_constants();
|
|
30809
|
-
init_useAllowExternalModalsScroll();
|
|
30810
30781
|
init_useAutoConnect();
|
|
30811
30782
|
init_useBackupStatusChanges();
|
|
30812
30783
|
init_useDetectMaxScrollHeight();
|
|
@@ -30837,12 +30808,12 @@ function DirectWalletHandler() {
|
|
|
30837
30808
|
const externalAddress = useExternalWalletStore((st) => st.externalAddress);
|
|
30838
30809
|
const isExternalConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
30839
30810
|
const { address, isConnected, chain, connector } = (0, import_wagmi10.useConnection)();
|
|
30840
|
-
(0,
|
|
30811
|
+
(0, import_react104.useEffect)(() => {
|
|
30841
30812
|
const { setConfigMode, setActiveMode } = useExternalWalletStore.getState();
|
|
30842
30813
|
setConfigMode(walletMode);
|
|
30843
30814
|
if (walletMode !== "both") setActiveMode(walletMode);
|
|
30844
30815
|
}, [walletMode]);
|
|
30845
|
-
(0,
|
|
30816
|
+
(0, import_react104.useEffect)(() => {
|
|
30846
30817
|
if ((!!externalAddress || isExternalConnected) && !isConnected) {
|
|
30847
30818
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
30848
30819
|
return;
|
|
@@ -30857,10 +30828,10 @@ function DirectWalletHandler() {
|
|
|
30857
30828
|
}, [isConnected, address, isExternalConnected, externalAddress, connector, chain]);
|
|
30858
30829
|
return null;
|
|
30859
30830
|
}
|
|
30860
|
-
var
|
|
30831
|
+
var import_react104, import_wagmi10;
|
|
30861
30832
|
var init_DirectWalletHandler = __esm({
|
|
30862
30833
|
"src/internal/components/DirectWalletHandler.tsx"() {
|
|
30863
|
-
|
|
30834
|
+
import_react104 = require("react");
|
|
30864
30835
|
import_wagmi10 = require("wagmi");
|
|
30865
30836
|
init_ProviderContext();
|
|
30866
30837
|
init_useExternalWalletStore();
|
|
@@ -30868,14 +30839,14 @@ var init_DirectWalletHandler = __esm({
|
|
|
30868
30839
|
});
|
|
30869
30840
|
|
|
30870
30841
|
// src/internal/components/TssManager.tsx
|
|
30871
|
-
var
|
|
30842
|
+
var import_react105, TssManagerWithRef;
|
|
30872
30843
|
var init_TssManager = __esm({
|
|
30873
30844
|
"src/internal/components/TssManager.tsx"() {
|
|
30874
30845
|
init_SessionContext();
|
|
30875
|
-
|
|
30846
|
+
import_react105 = __toESM(require("react"), 1);
|
|
30876
30847
|
init_auth();
|
|
30877
30848
|
init_clients();
|
|
30878
|
-
TssManagerWithRef =
|
|
30849
|
+
TssManagerWithRef = import_react105.default.forwardRef((props, ref) => {
|
|
30879
30850
|
const { mpcPin } = props;
|
|
30880
30851
|
const usePaymaster = useSession((st) => st.usePaymaster);
|
|
30881
30852
|
const publicClient = useSession((st) => st.publicClient);
|
|
@@ -30883,14 +30854,14 @@ var init_TssManager = __esm({
|
|
|
30883
30854
|
const setStatus = useSession((st) => st.setStatus);
|
|
30884
30855
|
const setSession = useSession((st) => st.setSession);
|
|
30885
30856
|
const setAddress = useSession((st) => st.setAddress);
|
|
30886
|
-
const onSessionCreated = (0,
|
|
30857
|
+
const onSessionCreated = (0, import_react105.useCallback)(
|
|
30887
30858
|
(session, address) => {
|
|
30888
30859
|
setSession(session);
|
|
30889
30860
|
setAddress(address);
|
|
30890
30861
|
},
|
|
30891
30862
|
[setSession, setAddress]
|
|
30892
30863
|
);
|
|
30893
|
-
const createSessionWithKeyshare =
|
|
30864
|
+
const createSessionWithKeyshare = import_react105.default.useCallback(
|
|
30894
30865
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
30895
30866
|
setStatus("checking key management setup...");
|
|
30896
30867
|
await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
|
|
@@ -30915,7 +30886,7 @@ var init_TssManager = __esm({
|
|
|
30915
30886
|
},
|
|
30916
30887
|
[setStatus, usePaymaster, activeChainId, publicClient, mpcPin]
|
|
30917
30888
|
);
|
|
30918
|
-
|
|
30889
|
+
import_react105.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
|
|
30919
30890
|
return null;
|
|
30920
30891
|
});
|
|
30921
30892
|
}
|
|
@@ -30939,7 +30910,7 @@ function waitForStoreHydration() {
|
|
|
30939
30910
|
}
|
|
30940
30911
|
function SessionProvider({ children }) {
|
|
30941
30912
|
const config = useProviderConfig().config;
|
|
30942
|
-
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(
|
|
30913
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_react106.Fragment, {
|
|
30943
30914
|
/** dApp's router might have its own error boundaries setup via imported @embarkai/ui-kitErrorBoundary */
|
|
30944
30915
|
children: [
|
|
30945
30916
|
children,
|
|
@@ -30959,11 +30930,11 @@ function SessionProvider({ children }) {
|
|
|
30959
30930
|
]
|
|
30960
30931
|
});
|
|
30961
30932
|
}
|
|
30962
|
-
var import_read22,
|
|
30933
|
+
var import_read22, import_react106, import_zustand19, import_middleware5, import_jsx_runtime136, useSession, requireActiveChainId;
|
|
30963
30934
|
var init_SessionContext = __esm({
|
|
30964
30935
|
"src/context/SessionContext.tsx"() {
|
|
30965
30936
|
import_read22 = require("@embarkai/core/read");
|
|
30966
|
-
|
|
30937
|
+
import_react106 = require("react");
|
|
30967
30938
|
import_zustand19 = require("zustand");
|
|
30968
30939
|
import_middleware5 = require("zustand/middleware");
|
|
30969
30940
|
init_ErrorBoundary2();
|
|
@@ -33418,11 +33389,11 @@ function clearLegacyWagmiStorage() {
|
|
|
33418
33389
|
}
|
|
33419
33390
|
function Provider(props) {
|
|
33420
33391
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
33421
|
-
const callbacksRef = (0,
|
|
33422
|
-
(0,
|
|
33423
|
-
const config = (0,
|
|
33424
|
-
const wagmiConfig3 = (0,
|
|
33425
|
-
const updateConfig = (0,
|
|
33392
|
+
const callbacksRef = (0, import_react107.useRef)(callbacks);
|
|
33393
|
+
(0, import_react107.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
|
|
33394
|
+
const config = (0, import_react107.useRef)((0, import_lodash_es18.merge)({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
|
|
33395
|
+
const wagmiConfig3 = (0, import_react107.useRef)((0, import_core9.getWagmiConfig)(config.current?.wallet?.walletConnectId || null));
|
|
33396
|
+
const updateConfig = (0, import_react107.useCallback)((updates) => {
|
|
33426
33397
|
const prev = config.current;
|
|
33427
33398
|
const next = { ...prev };
|
|
33428
33399
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -33456,14 +33427,14 @@ function Provider(props) {
|
|
|
33456
33427
|
if (updates.translations) next.translations = { ...next.translations, ...updates.translations };
|
|
33457
33428
|
config.current = next;
|
|
33458
33429
|
}, []);
|
|
33459
|
-
const updateCallbacks = (0,
|
|
33430
|
+
const updateCallbacks = (0, import_react107.useCallback)((updates) => {
|
|
33460
33431
|
const prev = callbacksRef.current;
|
|
33461
33432
|
const next = updates ? { ...prev, ...updates } : void 0;
|
|
33462
33433
|
callbacksRef.current = next;
|
|
33463
33434
|
}, []);
|
|
33464
|
-
(0,
|
|
33435
|
+
(0, import_react107.useEffect)(() => {
|
|
33465
33436
|
if (typeof window === "undefined" || !projectId) return;
|
|
33466
|
-
const mergedConfig = (0,
|
|
33437
|
+
const mergedConfig = (0, import_lodash_es18.merge)(DEFAULT_PROVIDER_CONFIG, initialConfig);
|
|
33467
33438
|
updateConfig(mergedConfig);
|
|
33468
33439
|
if (mergedConfig.wallet?.enabled) {
|
|
33469
33440
|
clearLegacyWagmiStorage();
|
|
@@ -33481,7 +33452,7 @@ function Provider(props) {
|
|
|
33481
33452
|
useSession.getState().setActiveChainId(mergedConfig.network.chainId);
|
|
33482
33453
|
}
|
|
33483
33454
|
}, [projectId, initialConfig]);
|
|
33484
|
-
(0,
|
|
33455
|
+
(0, import_react107.useEffect)(() => {
|
|
33485
33456
|
if (typeof window === "undefined" || !projectId) return;
|
|
33486
33457
|
try {
|
|
33487
33458
|
(0, import_error_tracking4.initSdkErrorTracking)();
|
|
@@ -33510,7 +33481,7 @@ function Provider(props) {
|
|
|
33510
33481
|
console.error("[PROVIDER] Error setting up iframe manager:", error);
|
|
33511
33482
|
}
|
|
33512
33483
|
}, [projectId]);
|
|
33513
|
-
const contextValue = (0,
|
|
33484
|
+
const contextValue = (0, import_react107.useMemo)(
|
|
33514
33485
|
() => ({
|
|
33515
33486
|
config,
|
|
33516
33487
|
updateConfig,
|
|
@@ -33523,22 +33494,22 @@ function Provider(props) {
|
|
|
33523
33494
|
);
|
|
33524
33495
|
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_wagmi11.WagmiProvider, { config: wagmiConfig3.current, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(SessionProvider, { children }) }) });
|
|
33525
33496
|
}
|
|
33526
|
-
var import_core9, import_error_tracking4,
|
|
33497
|
+
var import_core9, import_error_tracking4, import_lodash_es18, import_react107, import_wagmi11, import_jsx_runtime137, UIContext, useProviderConfig;
|
|
33527
33498
|
var init_ProviderContext = __esm({
|
|
33528
33499
|
"src/context/ProviderContext.tsx"() {
|
|
33529
33500
|
import_core9 = require("@embarkai/core");
|
|
33530
33501
|
import_error_tracking4 = require("@embarkai/core/internal/error-tracking");
|
|
33531
|
-
|
|
33532
|
-
|
|
33502
|
+
import_lodash_es18 = require("lodash-es");
|
|
33503
|
+
import_react107 = require("react");
|
|
33533
33504
|
import_wagmi11 = require("wagmi");
|
|
33534
33505
|
init_initial();
|
|
33535
33506
|
init_iframe_manager();
|
|
33536
33507
|
init_SessionContext();
|
|
33537
33508
|
init_utils14();
|
|
33538
33509
|
import_jsx_runtime137 = require("react/jsx-runtime");
|
|
33539
|
-
UIContext = (0,
|
|
33510
|
+
UIContext = (0, import_react107.createContext)(void 0);
|
|
33540
33511
|
useProviderConfig = () => {
|
|
33541
|
-
const ctx = (0,
|
|
33512
|
+
const ctx = (0, import_react107.useContext)(UIContext);
|
|
33542
33513
|
if (!ctx) throw new Error("useProviderConfig must be used within a Provider");
|
|
33543
33514
|
return ctx;
|
|
33544
33515
|
};
|
|
@@ -33661,7 +33632,7 @@ init_ErrorBoundary2();
|
|
|
33661
33632
|
init_lumia2();
|
|
33662
33633
|
init_embarkAI2();
|
|
33663
33634
|
var import_lucide_react86 = require("lucide-react");
|
|
33664
|
-
var
|
|
33635
|
+
var import_react108 = require("react");
|
|
33665
33636
|
init_SessionContext();
|
|
33666
33637
|
init_auth();
|
|
33667
33638
|
init_BalanceView2();
|
|
@@ -33694,10 +33665,10 @@ function ConnectWalletButton(props) {
|
|
|
33694
33665
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
33695
33666
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useSession();
|
|
33696
33667
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
33697
|
-
(0,
|
|
33668
|
+
(0, import_react108.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
33698
33669
|
const { data: profile, isLoading: isProfileLoading } = useUserProfile();
|
|
33699
33670
|
const displayName = profile?.nicknameDisplay || profile?.displayName || import_auth25.jwtTokenManager.getDisplayName();
|
|
33700
|
-
const indicators = (0,
|
|
33671
|
+
const indicators = (0, import_react108.useMemo)(() => {
|
|
33701
33672
|
const userId = session?.mpcUserId;
|
|
33702
33673
|
if (!userId) return { server: false, local: false, backup: false };
|
|
33703
33674
|
const server = import_auth25.jwtTokenManager.getHasKeyshare() ?? false;
|
|
@@ -34336,14 +34307,14 @@ var Hash = ({
|
|
|
34336
34307
|
};
|
|
34337
34308
|
|
|
34338
34309
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
34339
|
-
var
|
|
34310
|
+
var import_react109 = require("react");
|
|
34340
34311
|
init_base3();
|
|
34341
34312
|
var import_jsx_runtime144 = require("react/jsx-runtime");
|
|
34342
34313
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
34343
|
-
const [transactions, setTransactions] = (0,
|
|
34344
|
-
const [loading, setLoading] = (0,
|
|
34345
|
-
const [error, setError] = (0,
|
|
34346
|
-
(0,
|
|
34314
|
+
const [transactions, setTransactions] = (0, import_react109.useState)([]);
|
|
34315
|
+
const [loading, setLoading] = (0, import_react109.useState)(true);
|
|
34316
|
+
const [error, setError] = (0, import_react109.useState)(null);
|
|
34317
|
+
(0, import_react109.useEffect)(() => {
|
|
34347
34318
|
const fetchTransactions2 = async () => {
|
|
34348
34319
|
try {
|
|
34349
34320
|
setLoading(true);
|
|
@@ -34634,13 +34605,13 @@ function useUserOpStatus(options = {}) {
|
|
|
34634
34605
|
init_useErc3643Compliance();
|
|
34635
34606
|
|
|
34636
34607
|
// src/hooks/useWalletMode.ts
|
|
34637
|
-
var
|
|
34608
|
+
var import_react110 = require("react");
|
|
34638
34609
|
init_useExternalWalletStore();
|
|
34639
34610
|
function useWalletMode() {
|
|
34640
34611
|
const configMode = useExternalWalletStore((st) => st.configMode);
|
|
34641
34612
|
const activeMode = useExternalWalletStore((st) => st.activeMode);
|
|
34642
34613
|
const setActiveMode = useExternalWalletStore((st) => st.setActiveMode);
|
|
34643
|
-
const switchMode = (0,
|
|
34614
|
+
const switchMode = (0, import_react110.useCallback)(
|
|
34644
34615
|
(mode) => {
|
|
34645
34616
|
if (configMode !== "both") return;
|
|
34646
34617
|
setActiveMode(mode);
|
|
@@ -34657,7 +34628,7 @@ function useWalletMode() {
|
|
|
34657
34628
|
|
|
34658
34629
|
// src/hooks/useDirectWallet.ts
|
|
34659
34630
|
init_useOpenPage();
|
|
34660
|
-
var
|
|
34631
|
+
var import_react111 = require("react");
|
|
34661
34632
|
var import_wagmi12 = require("wagmi");
|
|
34662
34633
|
init_useExternalWalletStore();
|
|
34663
34634
|
function useDirectWallet() {
|
|
@@ -34667,10 +34638,10 @@ function useDirectWallet() {
|
|
|
34667
34638
|
const connectorName = useExternalWalletStore((st) => st.connectorName);
|
|
34668
34639
|
const { open: openEmbarkAI } = useOpenPage();
|
|
34669
34640
|
const { mutate: wagmiDisconnect } = (0, import_wagmi12.useDisconnect)();
|
|
34670
|
-
const connect = (0,
|
|
34641
|
+
const connect = (0, import_react111.useCallback)((connectFlowType = "connect") => {
|
|
34671
34642
|
openEmbarkAI("connect-external-wallet" /* CONNECT_EXTERNAL_WALLET */, { connectFlowType });
|
|
34672
34643
|
}, []);
|
|
34673
|
-
const disconnect = (0,
|
|
34644
|
+
const disconnect = (0, import_react111.useCallback)(() => {
|
|
34674
34645
|
wagmiDisconnect();
|
|
34675
34646
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
34676
34647
|
}, [wagmiDisconnect]);
|
|
@@ -34686,7 +34657,7 @@ function useDirectWallet() {
|
|
|
34686
34657
|
}
|
|
34687
34658
|
|
|
34688
34659
|
// src/hooks/useSendDirectTransaction.ts
|
|
34689
|
-
var
|
|
34660
|
+
var import_react112 = require("react");
|
|
34690
34661
|
var import_viem23 = require("viem");
|
|
34691
34662
|
var import_wagmi13 = require("wagmi");
|
|
34692
34663
|
init_useExternalWalletStore();
|
|
@@ -34695,10 +34666,10 @@ function useSendDirectTransaction() {
|
|
|
34695
34666
|
const externalChainId = useExternalWalletStore((st) => st.externalChainId);
|
|
34696
34667
|
const { sendTransactionAsync } = (0, import_wagmi13.useSendTransaction)();
|
|
34697
34668
|
const { switchChainAsync } = (0, import_wagmi13.useSwitchChain)();
|
|
34698
|
-
const [isPending, setIsPending] = (0,
|
|
34699
|
-
const [error, setError] = (0,
|
|
34700
|
-
const [txHash, setTxHash] = (0,
|
|
34701
|
-
const sendTransaction = (0,
|
|
34669
|
+
const [isPending, setIsPending] = (0, import_react112.useState)(false);
|
|
34670
|
+
const [error, setError] = (0, import_react112.useState)(null);
|
|
34671
|
+
const [txHash, setTxHash] = (0, import_react112.useState)(null);
|
|
34672
|
+
const sendTransaction = (0, import_react112.useCallback)(
|
|
34702
34673
|
async (params) => {
|
|
34703
34674
|
if (!isConnected) {
|
|
34704
34675
|
setError("No external wallet connected");
|
|
@@ -34732,7 +34703,7 @@ function useSendDirectTransaction() {
|
|
|
34732
34703
|
},
|
|
34733
34704
|
[isConnected, externalChainId, sendTransactionAsync, switchChainAsync]
|
|
34734
34705
|
);
|
|
34735
|
-
const reset = (0,
|
|
34706
|
+
const reset = (0, import_react112.useCallback)(() => {
|
|
34736
34707
|
setError(null);
|
|
34737
34708
|
setTxHash(null);
|
|
34738
34709
|
setIsPending(false);
|
|
@@ -34741,7 +34712,7 @@ function useSendDirectTransaction() {
|
|
|
34741
34712
|
}
|
|
34742
34713
|
|
|
34743
34714
|
// src/hooks/useTransferToLinkedWallet.ts
|
|
34744
|
-
var
|
|
34715
|
+
var import_react113 = require("react");
|
|
34745
34716
|
var import_viem24 = require("viem");
|
|
34746
34717
|
init_SessionContext();
|
|
34747
34718
|
init_account2();
|
|
@@ -34760,14 +34731,14 @@ var ERC20_TRANSFER_ABI2 = [
|
|
|
34760
34731
|
function useTransferToLinkedWallet() {
|
|
34761
34732
|
const session = useSession((st) => st.session);
|
|
34762
34733
|
const { profiles } = useLinkedProfiles();
|
|
34763
|
-
const [isPending, setIsPending] = (0,
|
|
34764
|
-
const [error, setError] = (0,
|
|
34765
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
34766
|
-
const linkedWallets = (0,
|
|
34734
|
+
const [isPending, setIsPending] = (0, import_react113.useState)(false);
|
|
34735
|
+
const [error, setError] = (0, import_react113.useState)(null);
|
|
34736
|
+
const [userOpHash, setUserOpHash] = (0, import_react113.useState)(null);
|
|
34737
|
+
const linkedWallets = (0, import_react113.useMemo)(
|
|
34767
34738
|
() => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
|
|
34768
34739
|
[profiles]
|
|
34769
34740
|
);
|
|
34770
|
-
const transfer = (0,
|
|
34741
|
+
const transfer = (0, import_react113.useCallback)(
|
|
34771
34742
|
async (params) => {
|
|
34772
34743
|
if (!session) {
|
|
34773
34744
|
setError("No active session");
|
|
@@ -34818,7 +34789,7 @@ function useTransferToLinkedWallet() {
|
|
|
34818
34789
|
},
|
|
34819
34790
|
[session, linkedWallets]
|
|
34820
34791
|
);
|
|
34821
|
-
const reset = (0,
|
|
34792
|
+
const reset = (0, import_react113.useCallback)(() => {
|
|
34822
34793
|
setError(null);
|
|
34823
34794
|
setUserOpHash(null);
|
|
34824
34795
|
setIsPending(false);
|
|
@@ -34842,7 +34813,7 @@ function useNativeWalletSignature() {
|
|
|
34842
34813
|
|
|
34843
34814
|
// src/hooks/useLogout.ts
|
|
34844
34815
|
var import_auth27 = require("@embarkai/core/auth");
|
|
34845
|
-
var
|
|
34816
|
+
var import_react114 = require("react");
|
|
34846
34817
|
var import_wagmi15 = require("wagmi");
|
|
34847
34818
|
init_ProviderContext();
|
|
34848
34819
|
init_SessionContext();
|
|
@@ -34861,7 +34832,7 @@ function useLogout() {
|
|
|
34861
34832
|
}
|
|
34862
34833
|
}
|
|
34863
34834
|
});
|
|
34864
|
-
const logout2 = (0,
|
|
34835
|
+
const logout2 = (0, import_react114.useCallback)(async () => {
|
|
34865
34836
|
const { setSession, setIsLoading, setAddress, setStatus, setError } = useSession.getState();
|
|
34866
34837
|
const prevAddress = address;
|
|
34867
34838
|
let userId = null;
|
|
@@ -34980,7 +34951,7 @@ function useTransactions() {
|
|
|
34980
34951
|
|
|
34981
34952
|
// src/modules/assets.ts
|
|
34982
34953
|
init_SessionContext();
|
|
34983
|
-
var
|
|
34954
|
+
var import_react115 = __toESM(require("react"), 1);
|
|
34984
34955
|
var import_viem26 = require("viem");
|
|
34985
34956
|
var import_wagmi17 = require("wagmi");
|
|
34986
34957
|
var COMMON_TOKENS = [
|
|
@@ -35135,7 +35106,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
|
|
|
35135
35106
|
}
|
|
35136
35107
|
});
|
|
35137
35108
|
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
35138
|
-
const formattedBalance =
|
|
35109
|
+
const formattedBalance = import_react115.default.useMemo(() => {
|
|
35139
35110
|
if (!balance || !tokenInfo) return "0";
|
|
35140
35111
|
return (0, import_viem26.formatUnits)(balance, tokenInfo.decimals);
|
|
35141
35112
|
}, [balance, tokenInfo]);
|