@agg-build/ui 1.2.11 → 1.2.12
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/{chunk-J7K2U44E.mjs → chunk-3JXBOU24.mjs} +110 -60
- package/dist/{chunk-3ZSNHGAB.mjs → chunk-4WBQTUPW.mjs} +314 -58
- package/dist/{chunk-54PCEK6G.mjs → chunk-IBOE7DRY.mjs} +1 -1
- package/dist/{chunk-YP75TIY6.mjs → chunk-J6WELNCX.mjs} +3 -3
- package/dist/{chunk-ENAGASVU.mjs → chunk-U55T5BPE.mjs} +406 -337
- package/dist/{chunk-SJLHOAKK.mjs → chunk-X3KCFWXN.mjs} +936 -650
- package/dist/{chunk-NWJHFGBZ.mjs → chunk-YSW4ULL5.mjs} +1 -1
- package/dist/events.js +1593 -886
- package/dist/events.mjs +3 -3
- package/dist/index.js +4211 -3198
- package/dist/index.mjs +480 -105
- package/dist/modals.js +1164 -923
- package/dist/modals.mjs +3 -3
- package/dist/pages.js +1975 -1492
- package/dist/pages.mjs +6 -6
- package/dist/primitives.js +928 -649
- package/dist/primitives.mjs +1 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/trading.js +641 -444
- package/dist/trading.mjs +4 -4
- package/dist/types/agg-provider.d.mts +27 -0
- package/dist/types/agg-provider.d.ts +27 -0
- package/dist/types/events/list/event-list-tabs.d.mts +6 -1
- package/dist/types/events/list/event-list-tabs.d.ts +6 -1
- package/dist/types/index.d.mts +2 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/notifications/agg-notification-events-provider.d.mts +35 -0
- package/dist/types/notifications/agg-notification-events-provider.d.ts +35 -0
- package/dist/types/notifications/agg-toast-provider.d.mts +27 -0
- package/dist/types/notifications/agg-toast-provider.d.ts +27 -0
- package/dist/types/notifications/deposit-notification-events.d.mts +10 -0
- package/dist/types/notifications/deposit-notification-events.d.ts +10 -0
- package/dist/types/notifications/index.d.mts +2 -0
- package/dist/types/notifications/index.d.ts +2 -0
- package/dist/types/primitives/button/button.types.d.mts +4 -0
- package/dist/types/primitives/button/button.types.d.ts +4 -0
- package/dist/types/primitives/button/index.d.mts +1 -1
- package/dist/types/primitives/button/index.d.ts +1 -1
- package/dist/types/primitives/icon/registry.d.mts +16 -0
- package/dist/types/primitives/icon/registry.d.ts +16 -0
- package/dist/types/primitives/icon/svg/sort-end-date.d.mts +5 -0
- package/dist/types/primitives/icon/svg/sort-end-date.d.ts +5 -0
- package/dist/types/primitives/icon/svg/sort-top-arbitrage.d.mts +5 -0
- package/dist/types/primitives/icon/svg/sort-top-arbitrage.d.ts +5 -0
- package/dist/types/primitives/icon/svg/sort-volume-24hr.d.mts +5 -0
- package/dist/types/primitives/icon/svg/sort-volume-24hr.d.ts +5 -0
- package/dist/types/primitives/icon/svg/sort-volume.d.mts +5 -0
- package/dist/types/primitives/icon/svg/sort-volume.d.ts +5 -0
- package/dist/types/primitives/select/index.d.mts +1 -1
- package/dist/types/primitives/select/index.d.ts +1 -1
- package/dist/types/primitives/select/select.types.d.mts +9 -0
- package/dist/types/primitives/select/select.types.d.ts +9 -0
- package/dist/types/primitives/toast/toast.types.d.mts +3 -0
- package/dist/types/primitives/toast/toast.types.d.ts +3 -0
- package/dist/types/profile/index.d.mts +1 -1
- package/dist/types/profile/index.d.ts +1 -1
- package/dist/types/profile/profile-modal.constants.d.mts +2 -2
- package/dist/types/profile/profile-modal.constants.d.ts +2 -2
- package/dist/types/profile/tabs/accounts-wallets-tab.d.mts +2 -17
- package/dist/types/profile/tabs/accounts-wallets-tab.d.ts +2 -17
- package/dist/types/profile/tabs/trading-access-tab.d.mts +15 -0
- package/dist/types/profile/tabs/trading-access-tab.d.ts +15 -0
- package/dist/types/trading/place-order/index.place-order.utils.d.mts +1 -1
- package/dist/types/trading/place-order/index.place-order.utils.d.ts +1 -1
- package/package.json +2 -2
|
@@ -38,12 +38,31 @@ import {
|
|
|
38
38
|
shortenAddress,
|
|
39
39
|
useOptionalToast,
|
|
40
40
|
venueLogoLabels
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-X3KCFWXN.mjs";
|
|
42
42
|
|
|
43
43
|
// src/deposit/index.tsx
|
|
44
44
|
import { useAggAuthState, useAggUiConfig, useDepositAddresses, useLabels as useLabels11 } from "@agg-build/hooks";
|
|
45
45
|
import { SVM_CHAIN_IDS, useDepositFlow } from "@agg-build/hooks/deposit";
|
|
46
|
-
import { useEffect as useEffect3, useMemo, useRef, useState as useState2 } from "react";
|
|
46
|
+
import { useCallback, useEffect as useEffect3, useMemo, useRef, useState as useState2 } from "react";
|
|
47
|
+
|
|
48
|
+
// src/notifications/deposit-notification-events.ts
|
|
49
|
+
var AGG_DEPOSIT_NOTIFICATION_EVENT = "agg:deposit-notification";
|
|
50
|
+
var dispatchAggDepositNotification = (detail) => {
|
|
51
|
+
if (typeof window === "undefined") return;
|
|
52
|
+
window.dispatchEvent(new CustomEvent(AGG_DEPOSIT_NOTIFICATION_EVENT, { detail }));
|
|
53
|
+
};
|
|
54
|
+
var subscribeAggDepositNotification = (handler) => {
|
|
55
|
+
if (typeof window === "undefined") return () => {
|
|
56
|
+
};
|
|
57
|
+
const handleDepositNotification = (event) => {
|
|
58
|
+
if (!(event instanceof CustomEvent)) return;
|
|
59
|
+
handler(event.detail);
|
|
60
|
+
};
|
|
61
|
+
window.addEventListener(AGG_DEPOSIT_NOTIFICATION_EVENT, handleDepositNotification);
|
|
62
|
+
return () => {
|
|
63
|
+
window.removeEventListener(AGG_DEPOSIT_NOTIFICATION_EVENT, handleDepositNotification);
|
|
64
|
+
};
|
|
65
|
+
};
|
|
47
66
|
|
|
48
67
|
// src/shared/constants.ts
|
|
49
68
|
var USDC = {
|
|
@@ -1337,6 +1356,8 @@ function DepositModalControlled({
|
|
|
1337
1356
|
);
|
|
1338
1357
|
const [highlightedMethod, setHighlightedMethod] = useState2(defaultMethod);
|
|
1339
1358
|
const walletSubmitInFlightRef = useRef(false);
|
|
1359
|
+
const walletDepositAttemptIdRef = useRef(0);
|
|
1360
|
+
const notifiedWalletDepositStatusesRef = useRef(/* @__PURE__ */ new Set());
|
|
1340
1361
|
const [isWalletSubmitting, setIsWalletSubmitting] = useState2(false);
|
|
1341
1362
|
const [cardProviders, setCardProviders] = useState2([]);
|
|
1342
1363
|
const [quotesLoading, setQuotesLoading] = useState2(false);
|
|
@@ -1439,19 +1460,42 @@ function DepositModalControlled({
|
|
|
1439
1460
|
fromWallet: walletFlow.walletLabel,
|
|
1440
1461
|
gasFee: ""
|
|
1441
1462
|
}, walletFlow.successSummary);
|
|
1463
|
+
const handleWalletDepositNotification = useCallback(
|
|
1464
|
+
(status, errorMessage) => {
|
|
1465
|
+
if (notifiedWalletDepositStatusesRef.current.has(status)) return;
|
|
1466
|
+
notifiedWalletDepositStatusesRef.current.add(status);
|
|
1467
|
+
dispatchAggDepositNotification({
|
|
1468
|
+
id: `wallet-${walletDepositAttemptIdRef.current}`,
|
|
1469
|
+
status,
|
|
1470
|
+
amount: walletFlow.amount,
|
|
1471
|
+
tokenSymbol: walletToken || DEFAULT_WALLET_TOKEN,
|
|
1472
|
+
errorMessage
|
|
1473
|
+
});
|
|
1474
|
+
},
|
|
1475
|
+
[walletFlow.amount, walletToken]
|
|
1476
|
+
);
|
|
1442
1477
|
useEffect3(() => {
|
|
1443
1478
|
if (step === "wallet-processing" && !isWalletSubmitting && walletFlow.transactionStatus === "settled") {
|
|
1479
|
+
handleWalletDepositNotification("completed");
|
|
1444
1480
|
setStep("wallet-success");
|
|
1445
1481
|
}
|
|
1446
|
-
}, [isWalletSubmitting, step, walletFlow.transactionStatus]);
|
|
1482
|
+
}, [handleWalletDepositNotification, isWalletSubmitting, step, walletFlow.transactionStatus]);
|
|
1447
1483
|
useEffect3(() => {
|
|
1448
1484
|
if (!onCancelWalletDeposit) return;
|
|
1449
1485
|
if (step === "wallet-processing" && !isWalletSubmitting && walletFlow.transactionStatus === "error") {
|
|
1450
1486
|
walletSubmitInFlightRef.current = false;
|
|
1487
|
+
handleWalletDepositNotification("failed", walletFlow.transactionErrorMessage);
|
|
1451
1488
|
onCancelWalletDeposit();
|
|
1452
1489
|
setStep("wallet-form");
|
|
1453
1490
|
}
|
|
1454
|
-
}, [
|
|
1491
|
+
}, [
|
|
1492
|
+
handleWalletDepositNotification,
|
|
1493
|
+
isWalletSubmitting,
|
|
1494
|
+
onCancelWalletDeposit,
|
|
1495
|
+
step,
|
|
1496
|
+
walletFlow.transactionErrorMessage,
|
|
1497
|
+
walletFlow.transactionStatus
|
|
1498
|
+
]);
|
|
1455
1499
|
const cardTokenOptions = withTokenIcons(
|
|
1456
1500
|
mergeSelectOptionsUnique(cardFlow == null ? void 0 : cardFlow.tokenOptions, DEFAULT_CURRENCY_OPTIONS)
|
|
1457
1501
|
);
|
|
@@ -1575,6 +1619,8 @@ function DepositModalControlled({
|
|
|
1575
1619
|
setSendChainId("");
|
|
1576
1620
|
setSendToken("");
|
|
1577
1621
|
walletSubmitInFlightRef.current = false;
|
|
1622
|
+
walletDepositAttemptIdRef.current = 0;
|
|
1623
|
+
notifiedWalletDepositStatusesRef.current = /* @__PURE__ */ new Set();
|
|
1578
1624
|
setIsWalletSubmitting(false);
|
|
1579
1625
|
setCardProviders([]);
|
|
1580
1626
|
setQuotesLoading(false);
|
|
@@ -1631,6 +1677,8 @@ function DepositModalControlled({
|
|
|
1631
1677
|
var _a2, _b2;
|
|
1632
1678
|
if (walletSubmitInFlightRef.current) return;
|
|
1633
1679
|
walletSubmitInFlightRef.current = true;
|
|
1680
|
+
walletDepositAttemptIdRef.current += 1;
|
|
1681
|
+
notifiedWalletDepositStatusesRef.current = /* @__PURE__ */ new Set();
|
|
1634
1682
|
setIsWalletSubmitting(true);
|
|
1635
1683
|
setStep("wallet-processing");
|
|
1636
1684
|
const walletChainIdNum = walletChainId ? Number(walletChainId) : void 0;
|
|
@@ -2409,7 +2457,7 @@ var WithdrawModal = (props) => {
|
|
|
2409
2457
|
WithdrawModal.displayName = "WithdrawModal";
|
|
2410
2458
|
|
|
2411
2459
|
// src/onboarding/index.tsx
|
|
2412
|
-
import { useCallback as
|
|
2460
|
+
import { useCallback as useCallback6, useEffect as useEffect5, useState as useState8 } from "react";
|
|
2413
2461
|
import { useLabels as useLabels20 } from "@agg-build/hooks";
|
|
2414
2462
|
import * as Dialog3 from "@radix-ui/react-dialog";
|
|
2415
2463
|
|
|
@@ -2429,7 +2477,7 @@ var ONBOARDING_STEPS = {
|
|
|
2429
2477
|
var ONCHAIN_VENUES = [Venue.polymarket, Venue.opinion, Venue.predict];
|
|
2430
2478
|
|
|
2431
2479
|
// src/onboarding/steps/how-it-works.tsx
|
|
2432
|
-
import { useCallback, useRef as useRef2, useState as useState4 } from "react";
|
|
2480
|
+
import { useCallback as useCallback2, useRef as useRef2, useState as useState4 } from "react";
|
|
2433
2481
|
import { useLabels as useLabels15 } from "@agg-build/hooks";
|
|
2434
2482
|
import { jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2435
2483
|
var defaultIcons = {
|
|
@@ -2443,7 +2491,7 @@ var HowItWorksStep = ({ onContinue, icons }) => {
|
|
|
2443
2491
|
const scrollRef = useRef2(null);
|
|
2444
2492
|
const [showTopGradient, setShowTopGradient] = useState4(false);
|
|
2445
2493
|
const [showBottomGradient, setShowBottomGradient] = useState4(true);
|
|
2446
|
-
const handleScroll =
|
|
2494
|
+
const handleScroll = useCallback2(() => {
|
|
2447
2495
|
const el = scrollRef.current;
|
|
2448
2496
|
if (!el) return;
|
|
2449
2497
|
setShowTopGradient(el.scrollTop > 0);
|
|
@@ -2512,7 +2560,7 @@ var HowItWorksStep = ({ onContinue, icons }) => {
|
|
|
2512
2560
|
HowItWorksStep.displayName = "HowItWorksStep";
|
|
2513
2561
|
|
|
2514
2562
|
// src/onboarding/steps/profile-setup.tsx
|
|
2515
|
-
import { useCallback as
|
|
2563
|
+
import { useCallback as useCallback3, useRef as useRef3, useState as useState5 } from "react";
|
|
2516
2564
|
import { useLabels as useLabels16 } from "@agg-build/hooks";
|
|
2517
2565
|
import { jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2518
2566
|
var ProfileSetupStep = ({ onContinue }) => {
|
|
@@ -2521,11 +2569,11 @@ var ProfileSetupStep = ({ onContinue }) => {
|
|
|
2521
2569
|
const [avatarFile, setAvatarFile] = useState5();
|
|
2522
2570
|
const [avatarPreview, setAvatarPreview] = useState5();
|
|
2523
2571
|
const fileInputRef = useRef3(null);
|
|
2524
|
-
const handleAvatarClick =
|
|
2572
|
+
const handleAvatarClick = useCallback3(() => {
|
|
2525
2573
|
var _a;
|
|
2526
2574
|
(_a = fileInputRef.current) == null ? void 0 : _a.click();
|
|
2527
2575
|
}, []);
|
|
2528
|
-
const handleFileChange =
|
|
2576
|
+
const handleFileChange = useCallback3((e) => {
|
|
2529
2577
|
var _a;
|
|
2530
2578
|
const file = (_a = e.target.files) == null ? void 0 : _a[0];
|
|
2531
2579
|
if (!file) return;
|
|
@@ -2537,7 +2585,7 @@ var ProfileSetupStep = ({ onContinue }) => {
|
|
|
2537
2585
|
};
|
|
2538
2586
|
reader.readAsDataURL(file);
|
|
2539
2587
|
}, []);
|
|
2540
|
-
const handleContinue =
|
|
2588
|
+
const handleContinue = useCallback3(() => {
|
|
2541
2589
|
onContinue({
|
|
2542
2590
|
username,
|
|
2543
2591
|
avatarFile,
|
|
@@ -2779,7 +2827,7 @@ ConnectAccountsStep.displayName = "ConnectAccountsStep";
|
|
|
2779
2827
|
|
|
2780
2828
|
// src/onboarding/steps/connect-kalshi-modal.tsx
|
|
2781
2829
|
import { Venue as Venue3 } from "@agg-build/sdk";
|
|
2782
|
-
import { useCallback as
|
|
2830
|
+
import { useCallback as useCallback4, useState as useState6 } from "react";
|
|
2783
2831
|
import { useLabels as useLabels18 } from "@agg-build/hooks";
|
|
2784
2832
|
import * as Dialog from "@radix-ui/react-dialog";
|
|
2785
2833
|
import { jsx as jsx20, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
@@ -2794,10 +2842,10 @@ var ConnectKalshiModal = ({
|
|
|
2794
2842
|
const [verifying, setVerifying] = useState6(false);
|
|
2795
2843
|
const [error, setError] = useState6();
|
|
2796
2844
|
const canVerify = apiKeyId.trim().length > 0 && privateKey.trim().length > 0;
|
|
2797
|
-
const handleCancel =
|
|
2845
|
+
const handleCancel = useCallback4(() => {
|
|
2798
2846
|
onOpenChange(false);
|
|
2799
2847
|
}, [onOpenChange]);
|
|
2800
|
-
const handleVerify =
|
|
2848
|
+
const handleVerify = useCallback4(() => __async(null, null, function* () {
|
|
2801
2849
|
if (!canVerify || verifying) return;
|
|
2802
2850
|
setVerifying(true);
|
|
2803
2851
|
setError(void 0);
|
|
@@ -2826,7 +2874,7 @@ var ConnectKalshiModal = ({
|
|
|
2826
2874
|
privateKey,
|
|
2827
2875
|
verifying
|
|
2828
2876
|
]);
|
|
2829
|
-
const handleOpenChange =
|
|
2877
|
+
const handleOpenChange = useCallback4(
|
|
2830
2878
|
(value) => {
|
|
2831
2879
|
if (value) {
|
|
2832
2880
|
setApiKeyId("");
|
|
@@ -3029,7 +3077,7 @@ var ConnectKalshiModal = ({
|
|
|
3029
3077
|
ConnectKalshiModal.displayName = "ConnectKalshiModal";
|
|
3030
3078
|
|
|
3031
3079
|
// src/onboarding/steps/connect-onchain-modal.tsx
|
|
3032
|
-
import { useCallback as
|
|
3080
|
+
import { useCallback as useCallback5, useState as useState7 } from "react";
|
|
3033
3081
|
import { useLabels as useLabels19 } from "@agg-build/hooks";
|
|
3034
3082
|
import * as Dialog2 from "@radix-ui/react-dialog";
|
|
3035
3083
|
import { jsx as jsx21, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
@@ -3041,10 +3089,10 @@ var ConnectOnchainModal = ({
|
|
|
3041
3089
|
const labels = useLabels19();
|
|
3042
3090
|
const [connecting, setConnecting] = useState7(false);
|
|
3043
3091
|
const [error, setError] = useState7();
|
|
3044
|
-
const handleCancel =
|
|
3092
|
+
const handleCancel = useCallback5(() => {
|
|
3045
3093
|
onOpenChange(false);
|
|
3046
3094
|
}, [onOpenChange]);
|
|
3047
|
-
const handleConnect =
|
|
3095
|
+
const handleConnect = useCallback5(() => __async(null, null, function* () {
|
|
3048
3096
|
if (connecting) return;
|
|
3049
3097
|
setConnecting(true);
|
|
3050
3098
|
setError(void 0);
|
|
@@ -3059,7 +3107,7 @@ var ConnectOnchainModal = ({
|
|
|
3059
3107
|
setConnecting(false);
|
|
3060
3108
|
}
|
|
3061
3109
|
}), [connecting, labels.onboarding.connectOnchainModal.fallbackError, onConnect, onOpenChange]);
|
|
3062
|
-
const handleOpenChange =
|
|
3110
|
+
const handleOpenChange = useCallback5(
|
|
3063
3111
|
(value) => {
|
|
3064
3112
|
if (value) {
|
|
3065
3113
|
setError(void 0);
|
|
@@ -3169,30 +3217,30 @@ var OnboardingModal = ({
|
|
|
3169
3217
|
setOnchainConnected(false);
|
|
3170
3218
|
}
|
|
3171
3219
|
}, [open]);
|
|
3172
|
-
const handleHowItWorksContinue =
|
|
3220
|
+
const handleHowItWorksContinue = useCallback6(() => {
|
|
3173
3221
|
setStep(ONBOARDING_STEPS.PROFILE_SETUP);
|
|
3174
3222
|
}, []);
|
|
3175
|
-
const handleProfileContinue =
|
|
3223
|
+
const handleProfileContinue = useCallback6(
|
|
3176
3224
|
(data) => {
|
|
3177
3225
|
onProfileSubmit == null ? void 0 : onProfileSubmit(data);
|
|
3178
3226
|
setStep(ONBOARDING_STEPS.CONNECT_ACCOUNTS);
|
|
3179
3227
|
},
|
|
3180
3228
|
[onProfileSubmit]
|
|
3181
3229
|
);
|
|
3182
|
-
const handleConnectContinue =
|
|
3230
|
+
const handleConnectContinue = useCallback6(() => {
|
|
3183
3231
|
onComplete == null ? void 0 : onComplete();
|
|
3184
3232
|
}, [onComplete]);
|
|
3185
|
-
const handleOpenOnchainModal =
|
|
3233
|
+
const handleOpenOnchainModal = useCallback6(() => {
|
|
3186
3234
|
setOnchainModalOpen(true);
|
|
3187
3235
|
}, []);
|
|
3188
|
-
const handleOnchainConnect =
|
|
3236
|
+
const handleOnchainConnect = useCallback6(() => __async(null, null, function* () {
|
|
3189
3237
|
yield onConnectOnchain == null ? void 0 : onConnectOnchain();
|
|
3190
3238
|
setOnchainConnected(true);
|
|
3191
3239
|
}), [onConnectOnchain]);
|
|
3192
|
-
const handleOpenKalshiModal =
|
|
3240
|
+
const handleOpenKalshiModal = useCallback6(() => {
|
|
3193
3241
|
setKalshiModalOpen(true);
|
|
3194
3242
|
}, []);
|
|
3195
|
-
const handleKalshiVerify =
|
|
3243
|
+
const handleKalshiVerify = useCallback6(
|
|
3196
3244
|
(credentials) => __async(null, null, function* () {
|
|
3197
3245
|
yield onConnectKalshi == null ? void 0 : onConnectKalshi(credentials);
|
|
3198
3246
|
setKalshiConnected(true);
|
|
@@ -3246,26 +3294,25 @@ var OnboardingModal = ({
|
|
|
3246
3294
|
OnboardingModal.displayName = "OnboardingModal";
|
|
3247
3295
|
|
|
3248
3296
|
// src/profile/index.tsx
|
|
3249
|
-
import {
|
|
3250
|
-
import { useState as useState10, useEffect as useEffect7, useCallback as useCallback8, useMemo as useMemo2 } from "react";
|
|
3297
|
+
import { useState as useState10, useEffect as useEffect7, useCallback as useCallback9, useMemo as useMemo2 } from "react";
|
|
3251
3298
|
import { useAggClient as useAggClient2, useAggAuthState as useAggAuthState2 } from "@agg-build/hooks";
|
|
3252
3299
|
|
|
3253
3300
|
// src/profile/profile-modal.constants.ts
|
|
3254
3301
|
var PROFILE_TAB_KEYS = {
|
|
3255
|
-
|
|
3256
|
-
|
|
3302
|
+
PROFILE_ACCOUNTS: "profile-accounts",
|
|
3303
|
+
TRADING_ACCESS: "trading-access"
|
|
3257
3304
|
};
|
|
3258
3305
|
var PROFILE_TAB_ITEMS = [
|
|
3259
|
-
{ value: PROFILE_TAB_KEYS.ABOUT, label: "About", icon: "profile-about-tab" },
|
|
3260
3306
|
{
|
|
3261
|
-
value: PROFILE_TAB_KEYS.
|
|
3262
|
-
label: "
|
|
3263
|
-
icon: "profile-
|
|
3264
|
-
}
|
|
3307
|
+
value: PROFILE_TAB_KEYS.PROFILE_ACCOUNTS,
|
|
3308
|
+
label: "Profile & accounts",
|
|
3309
|
+
icon: "profile-about-tab"
|
|
3310
|
+
},
|
|
3311
|
+
{ value: PROFILE_TAB_KEYS.TRADING_ACCESS, label: "Trading access", icon: "shield-trust" }
|
|
3265
3312
|
];
|
|
3266
3313
|
|
|
3267
3314
|
// src/profile/tabs/about-tab.tsx
|
|
3268
|
-
import { useCallback as
|
|
3315
|
+
import { useCallback as useCallback7, useRef as useRef4 } from "react";
|
|
3269
3316
|
import { useLabels as useLabels21 } from "@agg-build/hooks";
|
|
3270
3317
|
import { jsx as jsx23, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3271
3318
|
var AboutTab = ({
|
|
@@ -3279,11 +3326,11 @@ var AboutTab = ({
|
|
|
3279
3326
|
}) => {
|
|
3280
3327
|
const labels = useLabels21();
|
|
3281
3328
|
const fileInputRef = useRef4(null);
|
|
3282
|
-
const handleAvatarClick =
|
|
3329
|
+
const handleAvatarClick = useCallback7(() => {
|
|
3283
3330
|
var _a;
|
|
3284
3331
|
(_a = fileInputRef.current) == null ? void 0 : _a.click();
|
|
3285
3332
|
}, []);
|
|
3286
|
-
const handleFileChange =
|
|
3333
|
+
const handleFileChange = useCallback7(
|
|
3287
3334
|
(e) => {
|
|
3288
3335
|
var _a;
|
|
3289
3336
|
const file = (_a = e.target.files) == null ? void 0 : _a[0];
|
|
@@ -3299,69 +3346,67 @@ var AboutTab = ({
|
|
|
3299
3346
|
);
|
|
3300
3347
|
const resolvedPreview = draftAvatarPreview != null ? draftAvatarPreview : avatarPreview;
|
|
3301
3348
|
const hasAvatarPreview = Boolean(resolvedPreview);
|
|
3302
|
-
return /* @__PURE__ */
|
|
3303
|
-
/* @__PURE__ */ jsxs23(
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
|
|
3346
|
-
|
|
3347
|
-
|
|
3348
|
-
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3363
|
-
] }),
|
|
3364
|
-
/* @__PURE__ */ jsxs23("div", { className: "agg-form-section flex flex-col gap-2", children: [
|
|
3349
|
+
return /* @__PURE__ */ jsx23("div", { className: "agg-profile-about flex flex-col gap-8", children: /* @__PURE__ */ jsxs23("div", { className: "agg-profile-avatar-section flex w-full items-center gap-6", children: [
|
|
3350
|
+
/* @__PURE__ */ jsxs23(
|
|
3351
|
+
"button",
|
|
3352
|
+
{
|
|
3353
|
+
type: "button",
|
|
3354
|
+
onClick: handleAvatarClick,
|
|
3355
|
+
className: cn(
|
|
3356
|
+
"agg-profile-avatar-trigger",
|
|
3357
|
+
"group relative flex items-center justify-center self-start",
|
|
3358
|
+
"h-[80px] w-[80px]",
|
|
3359
|
+
"rounded-agg-full",
|
|
3360
|
+
"bg-agg-secondary-hover",
|
|
3361
|
+
!hasAvatarPreview && "hover:bg-agg-tertiary",
|
|
3362
|
+
"transition-colors cursor-pointer",
|
|
3363
|
+
"overflow-hidden"
|
|
3364
|
+
),
|
|
3365
|
+
"aria-label": labels.onboarding.profileSetup.uploadProfilePictureAria,
|
|
3366
|
+
children: [
|
|
3367
|
+
!hasAvatarPreview ? /* @__PURE__ */ jsx23(
|
|
3368
|
+
"svg",
|
|
3369
|
+
{
|
|
3370
|
+
"aria-hidden": true,
|
|
3371
|
+
viewBox: "0 0 80 80",
|
|
3372
|
+
className: "pointer-events-none absolute inset-0 h-full w-full text-agg-separator group-hover:text-agg-muted-foreground",
|
|
3373
|
+
children: /* @__PURE__ */ jsx23(
|
|
3374
|
+
"circle",
|
|
3375
|
+
{
|
|
3376
|
+
cx: "40",
|
|
3377
|
+
cy: "40",
|
|
3378
|
+
r: "39.5",
|
|
3379
|
+
fill: "none",
|
|
3380
|
+
stroke: "currentColor",
|
|
3381
|
+
strokeWidth: "1",
|
|
3382
|
+
strokeDasharray: "8 8"
|
|
3383
|
+
}
|
|
3384
|
+
)
|
|
3385
|
+
}
|
|
3386
|
+
) : null,
|
|
3387
|
+
resolvedPreview ? /* @__PURE__ */ jsx23(
|
|
3388
|
+
RemoteImage,
|
|
3389
|
+
{
|
|
3390
|
+
src: resolvedPreview,
|
|
3391
|
+
alt: labels.onboarding.profileSetup.profilePreviewAlt,
|
|
3392
|
+
className: "h-full w-full object-cover"
|
|
3393
|
+
}
|
|
3394
|
+
) : /* @__PURE__ */ jsx23(Icon, { name: "profile", className: "h-7 w-7 text-agg-muted-foreground" })
|
|
3395
|
+
]
|
|
3396
|
+
}
|
|
3397
|
+
),
|
|
3398
|
+
/* @__PURE__ */ jsx23(
|
|
3399
|
+
"input",
|
|
3400
|
+
{
|
|
3401
|
+
ref: fileInputRef,
|
|
3402
|
+
type: "file",
|
|
3403
|
+
accept: "image/*",
|
|
3404
|
+
onChange: handleFileChange,
|
|
3405
|
+
className: "hidden",
|
|
3406
|
+
"aria-hidden": "true"
|
|
3407
|
+
}
|
|
3408
|
+
),
|
|
3409
|
+
/* @__PURE__ */ jsxs23("div", { className: "agg-form-section flex min-w-0 flex-1 flex-col gap-2", children: [
|
|
3365
3410
|
/* @__PURE__ */ jsx23(
|
|
3366
3411
|
"label",
|
|
3367
3412
|
{
|
|
@@ -3379,7 +3424,7 @@ var AboutTab = ({
|
|
|
3379
3424
|
value: draftUsername,
|
|
3380
3425
|
onChange: (e) => onDraftUsernameChange(e.target.value),
|
|
3381
3426
|
className: cn(
|
|
3382
|
-
"w-full px-
|
|
3427
|
+
"h-10 w-full px-3 py-2.5",
|
|
3383
3428
|
"rounded-agg-sm",
|
|
3384
3429
|
"border border-agg-separator",
|
|
3385
3430
|
"bg-agg-secondary text-agg-foreground",
|
|
@@ -3392,27 +3437,33 @@ var AboutTab = ({
|
|
|
3392
3437
|
}
|
|
3393
3438
|
)
|
|
3394
3439
|
] })
|
|
3395
|
-
] });
|
|
3440
|
+
] }) });
|
|
3396
3441
|
};
|
|
3397
3442
|
AboutTab.displayName = "AboutTab";
|
|
3398
3443
|
|
|
3399
3444
|
// src/profile/tabs/accounts-wallets-tab.tsx
|
|
3400
|
-
import { useCallback as useCallback7, useEffect as useEffect6, useState as useState9 } from "react";
|
|
3401
|
-
import { useAggClient, useDepositAddresses as useDepositAddresses2 } from "@agg-build/hooks";
|
|
3402
3445
|
import { jsx as jsx24, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3403
3446
|
var SectionTitle = ({ children }) => /* @__PURE__ */ jsx24("h3", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children });
|
|
3404
3447
|
var AccountRow = ({ children, className }) => /* @__PURE__ */ jsx24(
|
|
3405
3448
|
"div",
|
|
3406
3449
|
{
|
|
3407
3450
|
className: cn(
|
|
3408
|
-
"flex items-center justify-between",
|
|
3451
|
+
"flex h-12 items-center justify-between",
|
|
3409
3452
|
"rounded-agg-lg border border-agg-separator bg-agg-secondary",
|
|
3410
|
-
"px-5
|
|
3453
|
+
"px-5",
|
|
3411
3454
|
className
|
|
3412
3455
|
),
|
|
3413
3456
|
children
|
|
3414
3457
|
}
|
|
3415
3458
|
);
|
|
3459
|
+
var AccountIdentity = ({
|
|
3460
|
+
icon,
|
|
3461
|
+
label,
|
|
3462
|
+
iconClassName
|
|
3463
|
+
}) => /* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
3464
|
+
/* @__PURE__ */ jsx24("span", { className: cn("flex h-5 w-5 shrink-0 items-center justify-center", iconClassName), children: /* @__PURE__ */ jsx24(Icon, { name: icon, size: "small", color: "currentColor" }) }),
|
|
3465
|
+
/* @__PURE__ */ jsx24("span", { className: "truncate text-agg-base font-agg-normal leading-6 text-agg-foreground", children: label })
|
|
3466
|
+
] });
|
|
3416
3467
|
var ConnectTextButton = ({ onClick }) => /* @__PURE__ */ jsx24(
|
|
3417
3468
|
"button",
|
|
3418
3469
|
{
|
|
@@ -3431,8 +3482,145 @@ var DisconnectTextButton = ({ onClick }) => /* @__PURE__ */ jsx24(
|
|
|
3431
3482
|
children: "Disconnect"
|
|
3432
3483
|
}
|
|
3433
3484
|
);
|
|
3434
|
-
var
|
|
3485
|
+
var VerifiedBadge = () => /* @__PURE__ */ jsx24(Icon, { name: "check-badge", size: "small", color: "var(--agg-color-primary, #536dfe)" });
|
|
3486
|
+
var ConnectedAccountRow = ({
|
|
3487
|
+
icon,
|
|
3488
|
+
label,
|
|
3489
|
+
connectedLabel,
|
|
3490
|
+
connected,
|
|
3491
|
+
iconClassName,
|
|
3492
|
+
onConnect,
|
|
3493
|
+
onDisconnect
|
|
3494
|
+
}) => {
|
|
3495
|
+
const displayLabel = connected ? connectedLabel != null ? connectedLabel : label : label;
|
|
3496
|
+
return /* @__PURE__ */ jsxs24(AccountRow, { className: "agg-social-account-row gap-4", children: [
|
|
3497
|
+
/* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
3498
|
+
/* @__PURE__ */ jsx24(AccountIdentity, { icon, label: displayLabel, iconClassName }),
|
|
3499
|
+
connected ? /* @__PURE__ */ jsx24(VerifiedBadge, {}) : null
|
|
3500
|
+
] }),
|
|
3501
|
+
connected ? /* @__PURE__ */ jsx24(DisconnectTextButton, { onClick: onDisconnect }) : /* @__PURE__ */ jsx24(ConnectTextButton, { onClick: onConnect })
|
|
3502
|
+
] });
|
|
3503
|
+
};
|
|
3504
|
+
var AccountsWalletsTab = ({
|
|
3505
|
+
socialAccounts,
|
|
3506
|
+
email,
|
|
3507
|
+
wallets = [],
|
|
3508
|
+
onConnectTwitter,
|
|
3509
|
+
onDisconnectTwitter,
|
|
3510
|
+
onConnectGoogle,
|
|
3511
|
+
onDisconnectGoogle,
|
|
3512
|
+
onConnectApple,
|
|
3513
|
+
onDisconnectApple,
|
|
3514
|
+
onDisconnectWallet,
|
|
3515
|
+
onConnectEmail
|
|
3516
|
+
}) => {
|
|
3517
|
+
const twitter = socialAccounts == null ? void 0 : socialAccounts.twitter;
|
|
3518
|
+
const google = socialAccounts == null ? void 0 : socialAccounts.google;
|
|
3519
|
+
const apple = socialAccounts == null ? void 0 : socialAccounts.apple;
|
|
3520
|
+
const hasEmail = Boolean(email);
|
|
3521
|
+
return /* @__PURE__ */ jsxs24("div", { className: "agg-accounts-wallets-tab flex flex-col gap-6", children: [
|
|
3522
|
+
/* @__PURE__ */ jsxs24("div", { className: "agg-social-accounts-section flex flex-col gap-3", children: [
|
|
3523
|
+
/* @__PURE__ */ jsx24(SectionTitle, { children: "Connected accounts" }),
|
|
3524
|
+
/* @__PURE__ */ jsxs24("div", { className: "agg-social-accounts-list flex flex-col gap-4", children: [
|
|
3525
|
+
/* @__PURE__ */ jsx24(
|
|
3526
|
+
ConnectedAccountRow,
|
|
3527
|
+
{
|
|
3528
|
+
icon: "google",
|
|
3529
|
+
iconClassName: "text-agg-foreground",
|
|
3530
|
+
label: "Google",
|
|
3531
|
+
connected: google == null ? void 0 : google.connected,
|
|
3532
|
+
connectedLabel: google == null ? void 0 : google.handle,
|
|
3533
|
+
onConnect: onConnectGoogle,
|
|
3534
|
+
onDisconnect: onDisconnectGoogle
|
|
3535
|
+
}
|
|
3536
|
+
),
|
|
3537
|
+
/* @__PURE__ */ jsx24(
|
|
3538
|
+
ConnectedAccountRow,
|
|
3539
|
+
{
|
|
3540
|
+
icon: "apple",
|
|
3541
|
+
iconClassName: "text-agg-foreground",
|
|
3542
|
+
label: "Apple",
|
|
3543
|
+
connected: apple == null ? void 0 : apple.connected,
|
|
3544
|
+
connectedLabel: apple == null ? void 0 : apple.handle,
|
|
3545
|
+
onConnect: onConnectApple,
|
|
3546
|
+
onDisconnect: onDisconnectApple
|
|
3547
|
+
}
|
|
3548
|
+
),
|
|
3549
|
+
/* @__PURE__ */ jsx24(
|
|
3550
|
+
ConnectedAccountRow,
|
|
3551
|
+
{
|
|
3552
|
+
icon: "twitter",
|
|
3553
|
+
iconClassName: "text-agg-foreground",
|
|
3554
|
+
label: "X (Twitter)",
|
|
3555
|
+
connected: twitter == null ? void 0 : twitter.connected,
|
|
3556
|
+
connectedLabel: twitter == null ? void 0 : twitter.handle,
|
|
3557
|
+
onConnect: onConnectTwitter,
|
|
3558
|
+
onDisconnect: onDisconnectTwitter
|
|
3559
|
+
}
|
|
3560
|
+
),
|
|
3561
|
+
/* @__PURE__ */ jsx24(
|
|
3562
|
+
ConnectedAccountRow,
|
|
3563
|
+
{
|
|
3564
|
+
icon: "email",
|
|
3565
|
+
iconClassName: "text-agg-foreground",
|
|
3566
|
+
label: "Email address",
|
|
3567
|
+
connected: hasEmail,
|
|
3568
|
+
connectedLabel: email != null ? email : void 0,
|
|
3569
|
+
onConnect: onConnectEmail
|
|
3570
|
+
}
|
|
3571
|
+
)
|
|
3572
|
+
] })
|
|
3573
|
+
] }),
|
|
3574
|
+
/* @__PURE__ */ jsxs24("div", { className: "agg-wallets-section flex flex-col gap-3", children: [
|
|
3575
|
+
/* @__PURE__ */ jsx24(SectionTitle, { children: "Wallets" }),
|
|
3576
|
+
/* @__PURE__ */ jsx24("div", { className: "flex flex-col gap-2", children: wallets.length > 0 ? wallets.map((wallet) => {
|
|
3577
|
+
var _a;
|
|
3578
|
+
return /* @__PURE__ */ jsx24(AccountRow, { className: "gap-4", children: /* @__PURE__ */ jsxs24("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
3579
|
+
/* @__PURE__ */ jsx24(
|
|
3580
|
+
AccountIdentity,
|
|
3581
|
+
{
|
|
3582
|
+
icon: "wallet",
|
|
3583
|
+
iconClassName: "text-agg-foreground",
|
|
3584
|
+
label: (_a = wallet.displayAddress) != null ? _a : wallet.address
|
|
3585
|
+
}
|
|
3586
|
+
),
|
|
3587
|
+
/* @__PURE__ */ jsx24(VerifiedBadge, {})
|
|
3588
|
+
] }) }, `${wallet.chain}:${wallet.address}`);
|
|
3589
|
+
}) : null })
|
|
3590
|
+
] })
|
|
3591
|
+
] });
|
|
3592
|
+
};
|
|
3593
|
+
AccountsWalletsTab.displayName = "AccountsWalletsTab";
|
|
3594
|
+
|
|
3595
|
+
// src/profile/tabs/trading-access-tab.tsx
|
|
3596
|
+
import { useAggClient, useDepositAddresses as useDepositAddresses2, useLabels as useLabels22 } from "@agg-build/hooks";
|
|
3597
|
+
import { useCallback as useCallback8, useEffect as useEffect6, useState as useState9 } from "react";
|
|
3598
|
+
import { jsx as jsx25, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3599
|
+
var TRADING_ACCESS_VENUES = [
|
|
3600
|
+
"kalshi",
|
|
3601
|
+
"polymarket",
|
|
3602
|
+
"opinion",
|
|
3603
|
+
"probable",
|
|
3604
|
+
"limitless",
|
|
3605
|
+
"predict",
|
|
3606
|
+
"myriad",
|
|
3607
|
+
"hyperliquid"
|
|
3608
|
+
];
|
|
3609
|
+
var UNAVAILABLE_VENUES = /* @__PURE__ */ new Set([]);
|
|
3610
|
+
var SectionTitle2 = ({ children }) => /* @__PURE__ */ jsx25("h3", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children });
|
|
3611
|
+
var AccessRow = ({ children }) => /* @__PURE__ */ jsx25(
|
|
3612
|
+
"div",
|
|
3613
|
+
{
|
|
3614
|
+
className: cn(
|
|
3615
|
+
"flex h-12 items-center justify-between gap-4",
|
|
3616
|
+
"rounded-agg-lg border border-agg-separator bg-agg-secondary",
|
|
3617
|
+
"px-5"
|
|
3618
|
+
),
|
|
3619
|
+
children
|
|
3620
|
+
}
|
|
3621
|
+
);
|
|
3435
3622
|
var VerifyIdentityButton = ({ onError }) => {
|
|
3623
|
+
const labels = useLabels22();
|
|
3436
3624
|
const client = useAggClient();
|
|
3437
3625
|
const [isInitiating, setIsInitiating] = useState9(false);
|
|
3438
3626
|
const [needsDepositAddress, setNeedsDepositAddress] = useState9(false);
|
|
@@ -3455,148 +3643,64 @@ var VerifyIdentityButton = ({ onError }) => {
|
|
|
3455
3643
|
});
|
|
3456
3644
|
}, [isReady, isInitiating, client, onError]);
|
|
3457
3645
|
useEffect6(() => {
|
|
3458
|
-
if (isTimedOut
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
}
|
|
3646
|
+
if (!isTimedOut || !isInitiating) return;
|
|
3647
|
+
setIsInitiating(false);
|
|
3648
|
+
setNeedsDepositAddress(false);
|
|
3649
|
+
onError == null ? void 0 : onError(new Error("Deposit address provisioning timed out"));
|
|
3463
3650
|
}, [isTimedOut, isInitiating, onError]);
|
|
3464
|
-
const handleClick =
|
|
3651
|
+
const handleClick = useCallback8(() => {
|
|
3465
3652
|
setIsInitiating(true);
|
|
3466
3653
|
setNeedsDepositAddress(true);
|
|
3467
3654
|
}, []);
|
|
3468
|
-
return /* @__PURE__ */
|
|
3655
|
+
return /* @__PURE__ */ jsx25(
|
|
3469
3656
|
"button",
|
|
3470
3657
|
{
|
|
3471
3658
|
type: "button",
|
|
3472
3659
|
disabled: isInitiating,
|
|
3473
3660
|
onClick: handleClick,
|
|
3474
3661
|
className: "shrink-0 cursor-pointer text-agg-sm font-agg-bold leading-agg-5 text-agg-primary whitespace-nowrap disabled:cursor-not-allowed disabled:opacity-60",
|
|
3475
|
-
children: isInitiating ? /* @__PURE__ */
|
|
3662
|
+
children: isInitiating ? /* @__PURE__ */ jsx25("span", { className: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : labels.trading.kycVerify
|
|
3476
3663
|
}
|
|
3477
3664
|
);
|
|
3478
3665
|
};
|
|
3479
|
-
var
|
|
3666
|
+
var AvailableStatus = () => /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-2", children: [
|
|
3667
|
+
/* @__PURE__ */ jsx25(Icon, { name: "check-badge", size: "small", color: "var(--agg-color-primary, #536dfe)" }),
|
|
3668
|
+
/* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground whitespace-nowrap", children: "Available" })
|
|
3669
|
+
] });
|
|
3670
|
+
var TradingAccessTab = ({
|
|
3480
3671
|
venueAccounts,
|
|
3481
3672
|
onKycError
|
|
3482
3673
|
}) => {
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
/* @__PURE__ */
|
|
3674
|
+
const labels = useLabels22();
|
|
3675
|
+
return /* @__PURE__ */ jsxs25("div", { className: "agg-trading-access-section flex flex-col gap-4", children: [
|
|
3676
|
+
/* @__PURE__ */ jsx25(SectionTitle2, { children: "Venues" }),
|
|
3677
|
+
/* @__PURE__ */ jsx25("div", { className: "flex flex-col gap-3", children: TRADING_ACCESS_VENUES.map((venue) => {
|
|
3486
3678
|
var _a;
|
|
3487
|
-
const venueAccount = venueAccounts == null ? void 0 : venueAccounts.find((
|
|
3679
|
+
const venueAccount = venueAccounts == null ? void 0 : venueAccounts.find((account) => account.venue === venue);
|
|
3488
3680
|
const isKalshi = venue === "kalshi";
|
|
3489
3681
|
const isVerified = (venueAccount == null ? void 0 : venueAccount.kycStatus) === "verified";
|
|
3682
|
+
const isUnavailable = UNAVAILABLE_VENUES.has(venue);
|
|
3490
3683
|
const displayName = (_a = venueLogoLabels[venue]) != null ? _a : venue;
|
|
3491
|
-
return /* @__PURE__ */
|
|
3492
|
-
/* @__PURE__ */
|
|
3493
|
-
/* @__PURE__ */
|
|
3494
|
-
/* @__PURE__ */
|
|
3684
|
+
return /* @__PURE__ */ jsxs25(AccessRow, { children: [
|
|
3685
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
3686
|
+
/* @__PURE__ */ jsx25(VenueLogo, { venue, size: "small" }),
|
|
3687
|
+
/* @__PURE__ */ jsx25("span", { className: "truncate text-agg-base font-agg-normal leading-6 text-agg-foreground", children: displayName })
|
|
3495
3688
|
] }),
|
|
3496
|
-
isKalshi && !isVerified ? /* @__PURE__ */
|
|
3497
|
-
/* @__PURE__ */
|
|
3498
|
-
/* @__PURE__ */
|
|
3499
|
-
] }) : isKalshi && isVerified ? /* @__PURE__ */
|
|
3500
|
-
/* @__PURE__ */
|
|
3501
|
-
/* @__PURE__ */
|
|
3502
|
-
|
|
3503
|
-
Icon,
|
|
3504
|
-
{
|
|
3505
|
-
name: "check-badge",
|
|
3506
|
-
size: "small",
|
|
3507
|
-
color: "var(--agg-color-primary, #536dfe)"
|
|
3508
|
-
}
|
|
3509
|
-
),
|
|
3510
|
-
/* @__PURE__ */ jsx24("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground whitespace-nowrap", children: "Available" })
|
|
3511
|
-
] })
|
|
3512
|
-
] }) : /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2", children: [
|
|
3513
|
-
/* @__PURE__ */ jsx24(Icon, { name: "check-badge", size: "small", color: "var(--agg-color-primary, #536dfe)" }),
|
|
3514
|
-
/* @__PURE__ */ jsx24("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground whitespace-nowrap", children: "Available" })
|
|
3515
|
-
] })
|
|
3689
|
+
isKalshi && !isVerified ? /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-4", children: [
|
|
3690
|
+
/* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: labels.trading.kycRequired }),
|
|
3691
|
+
/* @__PURE__ */ jsx25(VerifyIdentityButton, { onError: onKycError })
|
|
3692
|
+
] }) : isKalshi && isVerified ? /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-4", children: [
|
|
3693
|
+
/* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: labels.trading.verified }),
|
|
3694
|
+
/* @__PURE__ */ jsx25(AvailableStatus, {})
|
|
3695
|
+
] }) : isUnavailable ? /* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: labels.trading.venueUnavailableInRegion }) : /* @__PURE__ */ jsx25(AvailableStatus, {})
|
|
3516
3696
|
] }, venue);
|
|
3517
3697
|
}) })
|
|
3518
3698
|
] });
|
|
3519
3699
|
};
|
|
3520
|
-
|
|
3521
|
-
exchanges: _exchanges,
|
|
3522
|
-
socialAccounts,
|
|
3523
|
-
email,
|
|
3524
|
-
venueAccounts,
|
|
3525
|
-
onKycError,
|
|
3526
|
-
onDisconnectExchange: _onDisconnectExchange,
|
|
3527
|
-
onConnectTwitter,
|
|
3528
|
-
onDisconnectTwitter,
|
|
3529
|
-
onConnectGoogle,
|
|
3530
|
-
onDisconnectGoogle,
|
|
3531
|
-
onConnectApple,
|
|
3532
|
-
onDisconnectApple,
|
|
3533
|
-
onConnectDiscord: _onConnectDiscord,
|
|
3534
|
-
onDisconnectDiscord: _onDisconnectDiscord,
|
|
3535
|
-
onConnectTelegram: _onConnectTelegram,
|
|
3536
|
-
onDisconnectTelegram: _onDisconnectTelegram,
|
|
3537
|
-
onConnectEmail
|
|
3538
|
-
}) => {
|
|
3539
|
-
const twitter = socialAccounts == null ? void 0 : socialAccounts.twitter;
|
|
3540
|
-
const google = socialAccounts == null ? void 0 : socialAccounts.google;
|
|
3541
|
-
const apple = socialAccounts == null ? void 0 : socialAccounts.apple;
|
|
3542
|
-
return /* @__PURE__ */ jsxs24("div", { className: "agg-accounts-wallets-tab flex flex-col gap-8", children: [
|
|
3543
|
-
/* @__PURE__ */ jsx24(TradingAccessSection, { venueAccounts, onKycError }),
|
|
3544
|
-
/* @__PURE__ */ jsxs24("div", { className: "agg-social-accounts-section flex flex-col gap-3", children: [
|
|
3545
|
-
/* @__PURE__ */ jsx24(SectionTitle, { children: "Social Accounts" }),
|
|
3546
|
-
/* @__PURE__ */ jsxs24("div", { className: "agg-social-accounts-list flex flex-col gap-2", children: [
|
|
3547
|
-
/* @__PURE__ */ jsxs24(AccountRow, { className: "agg-social-account-row", children: [
|
|
3548
|
-
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-3", children: [
|
|
3549
|
-
/* @__PURE__ */ jsx24("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ jsx24(Icon, { name: "google", size: "small", color: "currentColor" }) }),
|
|
3550
|
-
/* @__PURE__ */ jsx24("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "Google" })
|
|
3551
|
-
] }),
|
|
3552
|
-
(google == null ? void 0 : google.connected) ? /* @__PURE__ */ jsx24(DisconnectTextButton, { onClick: onDisconnectGoogle }) : /* @__PURE__ */ jsx24(ConnectTextButton, { onClick: onConnectGoogle })
|
|
3553
|
-
] }),
|
|
3554
|
-
/* @__PURE__ */ jsxs24(AccountRow, { className: "agg-social-account-row", children: [
|
|
3555
|
-
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-3", children: [
|
|
3556
|
-
/* @__PURE__ */ jsx24("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ jsx24(Icon, { name: "apple", size: "small", color: "currentColor" }) }),
|
|
3557
|
-
/* @__PURE__ */ jsx24("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "Apple" })
|
|
3558
|
-
] }),
|
|
3559
|
-
(apple == null ? void 0 : apple.connected) ? /* @__PURE__ */ jsx24(DisconnectTextButton, { onClick: onDisconnectApple }) : /* @__PURE__ */ jsx24(ConnectTextButton, { onClick: onConnectApple })
|
|
3560
|
-
] }),
|
|
3561
|
-
/* @__PURE__ */ jsxs24(AccountRow, { className: "agg-social-account-row", children: [
|
|
3562
|
-
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-3", children: [
|
|
3563
|
-
/* @__PURE__ */ jsx24("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ jsx24(Icon, { name: "twitter", size: "small", color: "currentColor" }) }),
|
|
3564
|
-
/* @__PURE__ */ jsx24("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "X (Twitter)" })
|
|
3565
|
-
] }),
|
|
3566
|
-
(twitter == null ? void 0 : twitter.connected) ? /* @__PURE__ */ jsx24(DisconnectTextButton, { onClick: onDisconnectTwitter }) : /* @__PURE__ */ jsx24(ConnectTextButton, { onClick: onConnectTwitter })
|
|
3567
|
-
] })
|
|
3568
|
-
] })
|
|
3569
|
-
] }),
|
|
3570
|
-
/* @__PURE__ */ jsxs24("div", { className: "flex flex-col gap-3", children: [
|
|
3571
|
-
/* @__PURE__ */ jsx24(SectionTitle, { children: "Email Address" }),
|
|
3572
|
-
/* @__PURE__ */ jsxs24(
|
|
3573
|
-
"button",
|
|
3574
|
-
{
|
|
3575
|
-
type: "button",
|
|
3576
|
-
onClick: onConnectEmail,
|
|
3577
|
-
className: cn(
|
|
3578
|
-
"flex items-center justify-between",
|
|
3579
|
-
"rounded-agg-lg border border-agg-separator bg-agg-secondary",
|
|
3580
|
-
"px-5 py-3",
|
|
3581
|
-
"cursor-pointer hover:bg-agg-secondary-hover"
|
|
3582
|
-
),
|
|
3583
|
-
children: [
|
|
3584
|
-
/* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-3", children: [
|
|
3585
|
-
/* @__PURE__ */ jsx24("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ jsx24(Icon, { name: "email", size: "small", color: "currentColor" }) }),
|
|
3586
|
-
/* @__PURE__ */ jsx24("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: email != null ? email : "Connect email" })
|
|
3587
|
-
] }),
|
|
3588
|
-
/* @__PURE__ */ jsx24(Icon, { name: "chevron-right", size: "small", color: "currentColor" })
|
|
3589
|
-
]
|
|
3590
|
-
}
|
|
3591
|
-
)
|
|
3592
|
-
] })
|
|
3593
|
-
] });
|
|
3594
|
-
};
|
|
3595
|
-
AccountsWalletsTab.displayName = "AccountsWalletsTab";
|
|
3700
|
+
TradingAccessTab.displayName = "TradingAccessTab";
|
|
3596
3701
|
|
|
3597
3702
|
// src/profile/index.tsx
|
|
3598
|
-
import { jsx as
|
|
3599
|
-
var EVM_WALLET_VENUES = [Venue4.polymarket, Venue4.predict, Venue4.opinion];
|
|
3703
|
+
import { jsx as jsx26, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3600
3704
|
var ProfileModal = ({
|
|
3601
3705
|
open,
|
|
3602
3706
|
onOpenChange,
|
|
@@ -3604,21 +3708,15 @@ var ProfileModal = ({
|
|
|
3604
3708
|
avatarPreview,
|
|
3605
3709
|
onSave,
|
|
3606
3710
|
onDeleteProfile,
|
|
3607
|
-
exchanges,
|
|
3608
3711
|
socialAccounts,
|
|
3609
3712
|
wallets,
|
|
3610
3713
|
email,
|
|
3611
|
-
onDisconnectExchange: onDisconnectExchangeProp,
|
|
3612
3714
|
onConnectTwitter,
|
|
3613
3715
|
onDisconnectTwitter,
|
|
3614
3716
|
onConnectGoogle,
|
|
3615
3717
|
onDisconnectGoogle,
|
|
3616
3718
|
onConnectApple,
|
|
3617
3719
|
onDisconnectApple,
|
|
3618
|
-
onConnectDiscord,
|
|
3619
|
-
onDisconnectDiscord,
|
|
3620
|
-
onConnectTelegram,
|
|
3621
|
-
onDisconnectTelegram,
|
|
3622
3720
|
onDisconnectWallet,
|
|
3623
3721
|
onConnectEmail,
|
|
3624
3722
|
onKycError
|
|
@@ -3627,7 +3725,7 @@ var ProfileModal = ({
|
|
|
3627
3725
|
const client = useAggClient2();
|
|
3628
3726
|
const { user, startAuth } = useAggAuthState2();
|
|
3629
3727
|
const toastCtx = useOptionalToast();
|
|
3630
|
-
const [activeTab, setActiveTab] = useState10(PROFILE_TAB_KEYS.
|
|
3728
|
+
const [activeTab, setActiveTab] = useState10(PROFILE_TAB_KEYS.PROFILE_ACCOUNTS);
|
|
3631
3729
|
const resolvedInitialUsername = (_a = username != null ? username : user == null ? void 0 : user.username) != null ? _a : "";
|
|
3632
3730
|
const [draftUsername, setDraftUsername] = useState10(resolvedInitialUsername);
|
|
3633
3731
|
const [draftAvatarFile, setDraftAvatarFile] = useState10();
|
|
@@ -3638,11 +3736,11 @@ var ProfileModal = ({
|
|
|
3638
3736
|
var _a2;
|
|
3639
3737
|
setDraftUsername((_a2 = username != null ? username : user == null ? void 0 : user.username) != null ? _a2 : "");
|
|
3640
3738
|
}, [username, user == null ? void 0 : user.username]);
|
|
3641
|
-
const handleOpenChange =
|
|
3739
|
+
const handleOpenChange = useCallback9(
|
|
3642
3740
|
(isOpen) => {
|
|
3643
3741
|
var _a2;
|
|
3644
3742
|
if (!isOpen) {
|
|
3645
|
-
setActiveTab(PROFILE_TAB_KEYS.
|
|
3743
|
+
setActiveTab(PROFILE_TAB_KEYS.PROFILE_ACCOUNTS);
|
|
3646
3744
|
setIsSaving(false);
|
|
3647
3745
|
setDraftUsername((_a2 = username != null ? username : user == null ? void 0 : user.username) != null ? _a2 : "");
|
|
3648
3746
|
setDraftAvatarFile(void 0);
|
|
@@ -3662,7 +3760,7 @@ var ProfileModal = ({
|
|
|
3662
3760
|
setDraftAvatarPreview
|
|
3663
3761
|
]
|
|
3664
3762
|
);
|
|
3665
|
-
const handleDraftAvatarChange =
|
|
3763
|
+
const handleDraftAvatarChange = useCallback9(
|
|
3666
3764
|
(file, preview) => {
|
|
3667
3765
|
const ACCEPTED_AVATAR_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
|
|
3668
3766
|
if (file && !ACCEPTED_AVATAR_TYPES.includes(file.type)) {
|
|
@@ -3677,7 +3775,7 @@ var ProfileModal = ({
|
|
|
3677
3775
|
);
|
|
3678
3776
|
const originalUsername = (_b = username != null ? username : user == null ? void 0 : user.username) != null ? _b : "";
|
|
3679
3777
|
const hasChanges = draftUsername !== originalUsername || draftAvatarFile !== void 0;
|
|
3680
|
-
const handleSave =
|
|
3778
|
+
const handleSave = useCallback9(() => __async(null, null, function* () {
|
|
3681
3779
|
var _a2, _b2, _c2;
|
|
3682
3780
|
setIsSaving(true);
|
|
3683
3781
|
try {
|
|
@@ -3732,7 +3830,7 @@ var ProfileModal = ({
|
|
|
3732
3830
|
originalUsername,
|
|
3733
3831
|
toastCtx
|
|
3734
3832
|
]);
|
|
3735
|
-
const handleCancel =
|
|
3833
|
+
const handleCancel = useCallback9(() => {
|
|
3736
3834
|
handleOpenChange(false);
|
|
3737
3835
|
}, [handleOpenChange]);
|
|
3738
3836
|
const isAccountConnected = (providers) => {
|
|
@@ -3776,7 +3874,7 @@ var ProfileModal = ({
|
|
|
3776
3874
|
if (typeof window === "undefined") return;
|
|
3777
3875
|
((_a2 = window.top) != null ? _a2 : window).location.assign(url);
|
|
3778
3876
|
};
|
|
3779
|
-
const handleConnectTwitter =
|
|
3877
|
+
const handleConnectTwitter = useCallback9(() => __async(null, null, function* () {
|
|
3780
3878
|
const result = yield startAuth({
|
|
3781
3879
|
provider: "twitter",
|
|
3782
3880
|
redirectUrl: resolveRedirectUrl()
|
|
@@ -3786,7 +3884,7 @@ var ProfileModal = ({
|
|
|
3786
3884
|
navigateTopWindow(result.url);
|
|
3787
3885
|
}
|
|
3788
3886
|
}), [onConnectTwitter, startAuth]);
|
|
3789
|
-
const handleConnectGoogle =
|
|
3887
|
+
const handleConnectGoogle = useCallback9(() => __async(null, null, function* () {
|
|
3790
3888
|
const result = yield startAuth({
|
|
3791
3889
|
provider: "google",
|
|
3792
3890
|
redirectUrl: resolveRedirectUrl()
|
|
@@ -3796,7 +3894,7 @@ var ProfileModal = ({
|
|
|
3796
3894
|
navigateTopWindow(result.url);
|
|
3797
3895
|
}
|
|
3798
3896
|
}), [onConnectGoogle, startAuth]);
|
|
3799
|
-
const handleConnectApple =
|
|
3897
|
+
const handleConnectApple = useCallback9(() => __async(null, null, function* () {
|
|
3800
3898
|
const result = yield startAuth({
|
|
3801
3899
|
provider: "apple",
|
|
3802
3900
|
redirectUrl: resolveRedirectUrl()
|
|
@@ -3806,22 +3904,22 @@ var ProfileModal = ({
|
|
|
3806
3904
|
navigateTopWindow(result.url);
|
|
3807
3905
|
}
|
|
3808
3906
|
}), [onConnectApple, startAuth]);
|
|
3809
|
-
const handleDisconnectTwitter =
|
|
3907
|
+
const handleDisconnectTwitter = useCallback9(() => __async(null, null, function* () {
|
|
3810
3908
|
yield client.disconnectAccount("twitter");
|
|
3811
3909
|
yield client.getCurrentUser();
|
|
3812
3910
|
onDisconnectTwitter == null ? void 0 : onDisconnectTwitter();
|
|
3813
3911
|
}), [client, onDisconnectTwitter]);
|
|
3814
|
-
const handleDisconnectGoogle =
|
|
3912
|
+
const handleDisconnectGoogle = useCallback9(() => __async(null, null, function* () {
|
|
3815
3913
|
yield client.disconnectAccount("google");
|
|
3816
3914
|
yield client.getCurrentUser();
|
|
3817
3915
|
onDisconnectGoogle == null ? void 0 : onDisconnectGoogle();
|
|
3818
3916
|
}), [client, onDisconnectGoogle]);
|
|
3819
|
-
const handleDisconnectApple =
|
|
3917
|
+
const handleDisconnectApple = useCallback9(() => __async(null, null, function* () {
|
|
3820
3918
|
yield client.disconnectAccount("apple");
|
|
3821
3919
|
yield client.getCurrentUser();
|
|
3822
3920
|
onDisconnectApple == null ? void 0 : onDisconnectApple();
|
|
3823
3921
|
}), [client, onDisconnectApple]);
|
|
3824
|
-
const handleConnectEmail =
|
|
3922
|
+
const handleConnectEmail = useCallback9(() => __async(null, null, function* () {
|
|
3825
3923
|
var _a2;
|
|
3826
3924
|
const typedEmail = typeof window !== "undefined" ? (_a2 = window.prompt("Enter your email to receive a magic link")) == null ? void 0 : _a2.trim() : void 0;
|
|
3827
3925
|
if (!typedEmail) return;
|
|
@@ -3832,7 +3930,7 @@ var ProfileModal = ({
|
|
|
3832
3930
|
});
|
|
3833
3931
|
onConnectEmail == null ? void 0 : onConnectEmail();
|
|
3834
3932
|
}), [onConnectEmail, startAuth]);
|
|
3835
|
-
const handleDisconnectWallet =
|
|
3933
|
+
const handleDisconnectWallet = useCallback9(
|
|
3836
3934
|
(wallet) => __async(null, null, function* () {
|
|
3837
3935
|
const normalizedChain = wallet.chain.toLowerCase();
|
|
3838
3936
|
const provider = normalizedChain === "solana" || normalizedChain === "svm" ? "solana_wallet" : "wallet";
|
|
@@ -3896,30 +3994,7 @@ var ProfileModal = ({
|
|
|
3896
3994
|
};
|
|
3897
3995
|
})) != null ? _b2 : [];
|
|
3898
3996
|
}, [user == null ? void 0 : user.wallets, wallets]);
|
|
3899
|
-
|
|
3900
|
-
var _a2, _b2;
|
|
3901
|
-
if (exchanges !== void 0) return exchanges;
|
|
3902
|
-
const walletAccount = (_a2 = user == null ? void 0 : user.accounts) == null ? void 0 : _a2.find(
|
|
3903
|
-
(a) => a.provider.toLowerCase() === "wallet"
|
|
3904
|
-
);
|
|
3905
|
-
if (!walletAccount) return [];
|
|
3906
|
-
const addr = walletAccount.providerAccountId;
|
|
3907
|
-
const displayAddress = (_b2 = shortenAddress(addr)) != null ? _b2 : addr;
|
|
3908
|
-
return EVM_WALLET_VENUES.map((venue) => ({ venue, displayAddress, verified: false }));
|
|
3909
|
-
}, [exchanges, user == null ? void 0 : user.accounts]);
|
|
3910
|
-
const handleDisconnectExchange = useCallback8(
|
|
3911
|
-
(venue) => __async(null, null, function* () {
|
|
3912
|
-
if (exchanges !== void 0) {
|
|
3913
|
-
onDisconnectExchangeProp == null ? void 0 : onDisconnectExchangeProp(venue);
|
|
3914
|
-
return;
|
|
3915
|
-
}
|
|
3916
|
-
yield client.disconnectAccount("wallet");
|
|
3917
|
-
yield client.getCurrentUser();
|
|
3918
|
-
onDisconnectExchangeProp == null ? void 0 : onDisconnectExchangeProp(venue);
|
|
3919
|
-
}),
|
|
3920
|
-
[client, exchanges, onDisconnectExchangeProp]
|
|
3921
|
-
);
|
|
3922
|
-
return /* @__PURE__ */ jsx25(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs25(
|
|
3997
|
+
return /* @__PURE__ */ jsx26(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs26(
|
|
3923
3998
|
Modal.Container,
|
|
3924
3999
|
{
|
|
3925
4000
|
maxWidth: "800px",
|
|
@@ -3928,8 +4003,8 @@ var ProfileModal = ({
|
|
|
3928
4003
|
container: cn("agg-profile-modal", "min-h-[37.5rem]")
|
|
3929
4004
|
},
|
|
3930
4005
|
children: [
|
|
3931
|
-
/* @__PURE__ */
|
|
3932
|
-
/* @__PURE__ */
|
|
4006
|
+
/* @__PURE__ */ jsx26(Modal.Header, { title: "Edit Profile", classNames: { root: "agg-profile-modal-header" } }),
|
|
4007
|
+
/* @__PURE__ */ jsx26("div", { className: "agg-profile-tabs sm:hidden w-full", children: /* @__PURE__ */ jsx26(
|
|
3933
4008
|
Tabs,
|
|
3934
4009
|
{
|
|
3935
4010
|
className: "w-full [&>div]:w-full",
|
|
@@ -3938,14 +4013,14 @@ var ProfileModal = ({
|
|
|
3938
4013
|
items: PROFILE_TAB_ITEMS.map((tab) => ({
|
|
3939
4014
|
value: tab.value,
|
|
3940
4015
|
label: tab.label,
|
|
3941
|
-
icon: /* @__PURE__ */
|
|
4016
|
+
icon: /* @__PURE__ */ jsx26(Icon, { name: tab.icon, size: "small" })
|
|
3942
4017
|
})),
|
|
3943
4018
|
value: activeTab,
|
|
3944
4019
|
onChange: (val) => setActiveTab(val)
|
|
3945
4020
|
}
|
|
3946
4021
|
) }),
|
|
3947
|
-
/* @__PURE__ */
|
|
3948
|
-
/* @__PURE__ */
|
|
4022
|
+
/* @__PURE__ */ jsx26(Modal.Body, { classNames: { root: cn("agg-profile-modal-body", "overflow-x-visible") }, children: /* @__PURE__ */ jsxs26("div", { className: "agg-profile-layout flex flex-col sm:flex-row sm:gap-10", children: [
|
|
4023
|
+
/* @__PURE__ */ jsx26("div", { className: "shrink-0", children: /* @__PURE__ */ jsx26(
|
|
3949
4024
|
"nav",
|
|
3950
4025
|
{
|
|
3951
4026
|
className: cn(
|
|
@@ -3961,7 +4036,7 @@ var ProfileModal = ({
|
|
|
3961
4036
|
"aria-label": "Profile sections",
|
|
3962
4037
|
children: PROFILE_TAB_ITEMS.map((tab) => {
|
|
3963
4038
|
const isActive = activeTab === tab.value;
|
|
3964
|
-
return /* @__PURE__ */
|
|
4039
|
+
return /* @__PURE__ */ jsxs26(
|
|
3965
4040
|
"button",
|
|
3966
4041
|
{
|
|
3967
4042
|
type: "button",
|
|
@@ -3977,9 +4052,9 @@ var ProfileModal = ({
|
|
|
3977
4052
|
isActive ? "font-agg-normal text-agg-foreground bg-agg-secondary-hover" : "font-agg-normal text-agg-foreground"
|
|
3978
4053
|
),
|
|
3979
4054
|
children: [
|
|
3980
|
-
isActive ? /* @__PURE__ */
|
|
3981
|
-
/* @__PURE__ */
|
|
3982
|
-
/* @__PURE__ */
|
|
4055
|
+
isActive ? /* @__PURE__ */ jsx26("div", { className: "absolute left-0 top-0 bottom-0 w-1 bg-agg-primary" }) : null,
|
|
4056
|
+
/* @__PURE__ */ jsx26(Icon, { name: tab.icon, size: "small", color: "currentColor" }),
|
|
4057
|
+
/* @__PURE__ */ jsx26("span", { className: "shrink-0 whitespace-nowrap", children: tab.label })
|
|
3983
4058
|
]
|
|
3984
4059
|
},
|
|
3985
4060
|
tab.value
|
|
@@ -3987,54 +4062,47 @@ var ProfileModal = ({
|
|
|
3987
4062
|
})
|
|
3988
4063
|
}
|
|
3989
4064
|
) }),
|
|
3990
|
-
/* @__PURE__ */
|
|
3991
|
-
activeTab === PROFILE_TAB_KEYS.
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
|
|
4014
|
-
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
onDisconnectTelegram,
|
|
4027
|
-
onDisconnectWallet: (wallet) => {
|
|
4028
|
-
void handleDisconnectWallet(wallet);
|
|
4029
|
-
},
|
|
4030
|
-
onConnectEmail: providerActionMap.email.connect
|
|
4031
|
-
}
|
|
4032
|
-
) : null
|
|
4065
|
+
/* @__PURE__ */ jsxs26("div", { className: "agg-profile-content min-w-0 flex-1", children: [
|
|
4066
|
+
activeTab === PROFILE_TAB_KEYS.PROFILE_ACCOUNTS ? /* @__PURE__ */ jsxs26("div", { className: "agg-profile-accounts-tab flex flex-col gap-8", children: [
|
|
4067
|
+
/* @__PURE__ */ jsx26(
|
|
4068
|
+
AboutTab,
|
|
4069
|
+
{
|
|
4070
|
+
username: username != null ? username : user == null ? void 0 : user.username,
|
|
4071
|
+
avatarPreview: (_i = user == null ? void 0 : user.avatarUrl) != null ? _i : avatarPreview,
|
|
4072
|
+
onDeleteProfile,
|
|
4073
|
+
draftUsername,
|
|
4074
|
+
onDraftUsernameChange: setDraftUsername,
|
|
4075
|
+
draftAvatarFile,
|
|
4076
|
+
onDraftAvatarChange: handleDraftAvatarChange,
|
|
4077
|
+
draftAvatarPreview,
|
|
4078
|
+
avatarError: avatarTypeError
|
|
4079
|
+
}
|
|
4080
|
+
),
|
|
4081
|
+
/* @__PURE__ */ jsx26(
|
|
4082
|
+
AccountsWalletsTab,
|
|
4083
|
+
{
|
|
4084
|
+
socialAccounts: resolvedSocialAccounts,
|
|
4085
|
+
wallets: resolvedWallets,
|
|
4086
|
+
email: resolvedEmail,
|
|
4087
|
+
onConnectTwitter: providerActionMap.twitter.connect,
|
|
4088
|
+
onDisconnectTwitter: providerActionMap.twitter.disconnect,
|
|
4089
|
+
onConnectGoogle: providerActionMap.google.connect,
|
|
4090
|
+
onDisconnectGoogle: providerActionMap.google.disconnect,
|
|
4091
|
+
onConnectApple: providerActionMap.apple.connect,
|
|
4092
|
+
onDisconnectApple: providerActionMap.apple.disconnect,
|
|
4093
|
+
onDisconnectWallet: (wallet) => {
|
|
4094
|
+
void handleDisconnectWallet(wallet);
|
|
4095
|
+
},
|
|
4096
|
+
onConnectEmail: providerActionMap.email.connect
|
|
4097
|
+
}
|
|
4098
|
+
)
|
|
4099
|
+
] }) : null,
|
|
4100
|
+
activeTab === PROFILE_TAB_KEYS.TRADING_ACCESS ? /* @__PURE__ */ jsx26(TradingAccessTab, { venueAccounts: user == null ? void 0 : user.venueAccounts, onKycError }) : null
|
|
4033
4101
|
] })
|
|
4034
4102
|
] }) }),
|
|
4035
|
-
/* @__PURE__ */
|
|
4036
|
-
/* @__PURE__ */
|
|
4037
|
-
/* @__PURE__ */
|
|
4103
|
+
/* @__PURE__ */ jsxs26(Modal.Footer, { classNames: { root: "agg-profile-modal-footer" }, children: [
|
|
4104
|
+
/* @__PURE__ */ jsx26(Button, { variant: "secondary", size: "large", onClick: handleCancel, className: "min-w-[120px]", children: "Cancel" }),
|
|
4105
|
+
/* @__PURE__ */ jsx26(
|
|
4038
4106
|
Button,
|
|
4039
4107
|
{
|
|
4040
4108
|
variant: "primary",
|
|
@@ -4042,7 +4110,7 @@ var ProfileModal = ({
|
|
|
4042
4110
|
disabled: !hasChanges,
|
|
4043
4111
|
isLoading: isSaving,
|
|
4044
4112
|
onClick: handleSave,
|
|
4045
|
-
children: "Save
|
|
4113
|
+
children: "Save changes"
|
|
4046
4114
|
}
|
|
4047
4115
|
)
|
|
4048
4116
|
] })
|
|
@@ -4053,33 +4121,33 @@ var ProfileModal = ({
|
|
|
4053
4121
|
ProfileModal.displayName = "ProfileModal";
|
|
4054
4122
|
|
|
4055
4123
|
// src/geo-block-modal/index.tsx
|
|
4056
|
-
import { useLabels as
|
|
4057
|
-
import { useCallback as
|
|
4058
|
-
import { jsx as
|
|
4124
|
+
import { useLabels as useLabels23 } from "@agg-build/hooks";
|
|
4125
|
+
import { useCallback as useCallback10 } from "react";
|
|
4126
|
+
import { jsx as jsx27, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
4059
4127
|
var GeoBlockModal = ({
|
|
4060
4128
|
open,
|
|
4061
4129
|
onOpenChange,
|
|
4062
4130
|
onConfirm,
|
|
4063
4131
|
classNames
|
|
4064
4132
|
}) => {
|
|
4065
|
-
const labels =
|
|
4066
|
-
const handleConfirm =
|
|
4133
|
+
const labels = useLabels23();
|
|
4134
|
+
const handleConfirm = useCallback10(() => {
|
|
4067
4135
|
onConfirm == null ? void 0 : onConfirm();
|
|
4068
4136
|
onOpenChange(false);
|
|
4069
4137
|
}, [onConfirm, onOpenChange]);
|
|
4070
|
-
return /* @__PURE__ */
|
|
4138
|
+
return /* @__PURE__ */ jsx27(
|
|
4071
4139
|
Modal,
|
|
4072
4140
|
{
|
|
4073
4141
|
open,
|
|
4074
4142
|
onOpenChange,
|
|
4075
4143
|
"aria-label": labels.trading.geoBlockModalAriaLabel,
|
|
4076
|
-
children: /* @__PURE__ */
|
|
4144
|
+
children: /* @__PURE__ */ jsxs27(
|
|
4077
4145
|
Modal.Container,
|
|
4078
4146
|
{
|
|
4079
4147
|
maxWidth: "480px",
|
|
4080
4148
|
classNames: { container: cn("!rounded-agg-2xl", classNames == null ? void 0 : classNames.container) },
|
|
4081
4149
|
children: [
|
|
4082
|
-
/* @__PURE__ */
|
|
4150
|
+
/* @__PURE__ */ jsx27(
|
|
4083
4151
|
Modal.Header,
|
|
4084
4152
|
{
|
|
4085
4153
|
title: "",
|
|
@@ -4091,19 +4159,19 @@ var GeoBlockModal = ({
|
|
|
4091
4159
|
}
|
|
4092
4160
|
}
|
|
4093
4161
|
),
|
|
4094
|
-
/* @__PURE__ */
|
|
4095
|
-
/* @__PURE__ */
|
|
4162
|
+
/* @__PURE__ */ jsx27(Modal.Body, { classNames: { root: cn("!px-10 !pt-0 !pb-12", classNames == null ? void 0 : classNames.body) }, children: /* @__PURE__ */ jsxs27("div", { className: "flex flex-col items-center gap-8", children: [
|
|
4163
|
+
/* @__PURE__ */ jsx27(
|
|
4096
4164
|
Icon,
|
|
4097
4165
|
{
|
|
4098
4166
|
name: "internet-security",
|
|
4099
4167
|
className: "h-[60px] w-[60px] text-agg-muted-foreground"
|
|
4100
4168
|
}
|
|
4101
4169
|
),
|
|
4102
|
-
/* @__PURE__ */
|
|
4103
|
-
/* @__PURE__ */
|
|
4104
|
-
/* @__PURE__ */
|
|
4170
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex flex-col items-center gap-3 text-center", children: [
|
|
4171
|
+
/* @__PURE__ */ jsx27("h2", { className: "text-agg-2xl font-agg-bold leading-agg-8 text-agg-foreground", children: labels.trading.geoBlockModalTitle }),
|
|
4172
|
+
/* @__PURE__ */ jsx27("p", { className: "text-agg-base font-agg-normal leading-agg-6 text-agg-foreground", children: labels.trading.geoBlockModalDescription })
|
|
4105
4173
|
] }),
|
|
4106
|
-
/* @__PURE__ */
|
|
4174
|
+
/* @__PURE__ */ jsx27(
|
|
4107
4175
|
Button,
|
|
4108
4176
|
{
|
|
4109
4177
|
variant: "secondary",
|
|
@@ -4123,6 +4191,7 @@ var GeoBlockModal = ({
|
|
|
4123
4191
|
GeoBlockModal.displayName = "GeoBlockModal";
|
|
4124
4192
|
|
|
4125
4193
|
export {
|
|
4194
|
+
subscribeAggDepositNotification,
|
|
4126
4195
|
CARD_NETWORK_OPTIONS,
|
|
4127
4196
|
clearPendingCardSession,
|
|
4128
4197
|
getPendingCardSession,
|