@agg-build/ui 4.22.6 → 4.23.0
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-SGXFMBJM.mjs → chunk-5ET2M3XX.mjs} +1 -1
- package/dist/{chunk-CKHECAKV.mjs → chunk-7ORC3TUJ.mjs} +398 -239
- package/dist/{chunk-NV6WT3TN.mjs → chunk-HZXHDH6G.mjs} +153 -45
- package/dist/{chunk-RCO424WO.mjs → chunk-J75RLLP2.mjs} +62 -65
- package/dist/{chunk-UXLC3FFY.mjs → chunk-W2LCFCW3.mjs} +1 -1
- package/dist/{event-market-J35IWO2I.mjs → event-market-IYPFVSSX.mjs} +3 -3
- package/dist/index.js +2670 -2394
- package/dist/index.mjs +7 -5
- package/dist/modals.js +512 -352
- package/dist/modals.mjs +4 -2
- package/dist/pages.js +2210 -1936
- package/dist/pages.mjs +4 -4
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/trading.js +1139 -874
- package/dist/trading.mjs +2 -2
- package/dist/types/onboarding/index.d.mts +1 -0
- package/dist/types/onboarding/index.d.ts +1 -0
- package/dist/types/onboarding/steps/connect-novig-modal.d.mts +12 -0
- package/dist/types/onboarding/steps/connect-novig-modal.d.ts +12 -0
- package/dist/types/pages/user-profile/components/available-balance-card.d.mts +1 -2
- package/dist/types/pages/user-profile/components/available-balance-card.d.ts +1 -2
- package/dist/types/trading/place-order/index.place-order.utils.d.mts +7 -0
- package/dist/types/trading/place-order/index.place-order.utils.d.ts +7 -0
- package/package.json +3 -3
package/dist/modals.js
CHANGED
|
@@ -83,6 +83,7 @@ __export(modals_exports, {
|
|
|
83
83
|
CARD_NETWORK_OPTIONS: () => CARD_NETWORK_OPTIONS,
|
|
84
84
|
ConnectAccountsStep: () => ConnectAccountsStep,
|
|
85
85
|
ConnectKalshiModal: () => ConnectKalshiModal,
|
|
86
|
+
ConnectNovigModal: () => ConnectNovigModal,
|
|
86
87
|
ConnectOnchainModal: () => ConnectOnchainModal,
|
|
87
88
|
ConnectProphetxModal: () => ConnectProphetxModal,
|
|
88
89
|
DepositModal: () => DepositModal,
|
|
@@ -7728,9 +7729,9 @@ var WithdrawModal = (props) => {
|
|
|
7728
7729
|
WithdrawModal.displayName = "WithdrawModal";
|
|
7729
7730
|
|
|
7730
7731
|
// src/onboarding/index.tsx
|
|
7731
|
-
var
|
|
7732
|
-
var
|
|
7733
|
-
var
|
|
7732
|
+
var import_react20 = require("react");
|
|
7733
|
+
var import_hooks42 = require("@agg-build/hooks");
|
|
7734
|
+
var Dialog6 = __toESM(require("@radix-ui/react-dialog"));
|
|
7734
7735
|
|
|
7735
7736
|
// src/onboarding/onboarding-modal.constants.ts
|
|
7736
7737
|
var import_sdk12 = require("@agg-build/sdk");
|
|
@@ -9591,8 +9592,166 @@ function ConnectProphetxModal({
|
|
|
9591
9592
|
);
|
|
9592
9593
|
}
|
|
9593
9594
|
|
|
9594
|
-
// src/onboarding/
|
|
9595
|
+
// src/onboarding/steps/connect-novig-modal.tsx
|
|
9596
|
+
var import_hooks41 = require("@agg-build/hooks");
|
|
9597
|
+
var import_sdk15 = require("@agg-build/sdk");
|
|
9598
|
+
var Dialog5 = __toESM(require("@radix-ui/react-dialog"));
|
|
9599
|
+
var import_react19 = require("react");
|
|
9595
9600
|
var import_jsx_runtime142 = require("react/jsx-runtime");
|
|
9601
|
+
function ConnectNovigModal({
|
|
9602
|
+
open,
|
|
9603
|
+
onOpenChange,
|
|
9604
|
+
onVerify,
|
|
9605
|
+
onDisconnect,
|
|
9606
|
+
allowExistingConnection = false
|
|
9607
|
+
}) {
|
|
9608
|
+
const copy = (0, import_hooks41.useLabels)().onboarding.connectNovigModal;
|
|
9609
|
+
const common = (0, import_hooks41.useLabels)().common;
|
|
9610
|
+
const { novigExecutionMode, disabledVenues, isLoading } = (0, import_hooks41.useAppConfig)();
|
|
9611
|
+
const id = (0, import_react19.useId)();
|
|
9612
|
+
const [keyId, setKeyId] = (0, import_react19.useState)("");
|
|
9613
|
+
const [privateKey, setPrivateKey] = (0, import_react19.useState)("");
|
|
9614
|
+
const [pending, setPending] = (0, import_react19.useState)(false);
|
|
9615
|
+
const [disconnecting, setDisconnecting] = (0, import_react19.useState)(false);
|
|
9616
|
+
const [disconnectError, setDisconnectError] = (0, import_react19.useState)(false);
|
|
9617
|
+
const busy = pending || disconnecting;
|
|
9618
|
+
const [connected, setConnected] = (0, import_react19.useState)(false);
|
|
9619
|
+
const [error, setError] = (0, import_react19.useState)(false);
|
|
9620
|
+
(0, import_react19.useEffect)(() => {
|
|
9621
|
+
if (!open) {
|
|
9622
|
+
setKeyId("");
|
|
9623
|
+
setPrivateKey("");
|
|
9624
|
+
setError(false);
|
|
9625
|
+
setDisconnectError(false);
|
|
9626
|
+
setConnected(false);
|
|
9627
|
+
}
|
|
9628
|
+
}, [open]);
|
|
9629
|
+
if (isLoading || !allowExistingConnection && (novigExecutionMode !== "direct" || disabledVenues.includes(import_sdk15.Venue.novig)))
|
|
9630
|
+
return null;
|
|
9631
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
9632
|
+
Modal,
|
|
9633
|
+
{
|
|
9634
|
+
open,
|
|
9635
|
+
onOpenChange: (value) => {
|
|
9636
|
+
if (!busy) onOpenChange(value);
|
|
9637
|
+
},
|
|
9638
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Modal.Container, { maxWidth: "480px", "aria-label": copy.title, children: /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(Modal.Body, { classNames: { root: "relative !p-6" }, children: [
|
|
9639
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
9640
|
+
Dialog5.Close,
|
|
9641
|
+
{
|
|
9642
|
+
"aria-label": common.close,
|
|
9643
|
+
disabled: busy,
|
|
9644
|
+
className: "absolute right-4 top-4 cursor-pointer disabled:cursor-not-allowed",
|
|
9645
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Icon, { name: "close", size: "medium" })
|
|
9646
|
+
}
|
|
9647
|
+
),
|
|
9648
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(
|
|
9649
|
+
"form",
|
|
9650
|
+
{
|
|
9651
|
+
className: "flex flex-col gap-4",
|
|
9652
|
+
onSubmit: (event) => __async(null, null, function* () {
|
|
9653
|
+
event.preventDefault();
|
|
9654
|
+
if (busy || !keyId.trim() || !privateKey.trim()) return;
|
|
9655
|
+
setPending(true);
|
|
9656
|
+
setError(false);
|
|
9657
|
+
try {
|
|
9658
|
+
yield onVerify({ keyId: keyId.trim(), privateKey: privateKey.trim() });
|
|
9659
|
+
setKeyId("");
|
|
9660
|
+
setPrivateKey("");
|
|
9661
|
+
setConnected(true);
|
|
9662
|
+
} catch (e) {
|
|
9663
|
+
setError(true);
|
|
9664
|
+
} finally {
|
|
9665
|
+
setPending(false);
|
|
9666
|
+
}
|
|
9667
|
+
}),
|
|
9668
|
+
children: [
|
|
9669
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(VenueLogo, { venue: import_sdk15.Venue.novig, size: "large" }),
|
|
9670
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Dialog5.Title, { className: "text-agg-xl font-agg-bold text-agg-foreground", children: copy.title }),
|
|
9671
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Dialog5.Description, { className: "text-agg-sm text-agg-muted-foreground", children: copy.description }),
|
|
9672
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("p", { className: "text-agg-sm text-agg-muted-foreground", children: copy.fundingNotice }),
|
|
9673
|
+
connected ? /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(import_jsx_runtime142.Fragment, { children: [
|
|
9674
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("p", { role: "status", children: copy.connected }),
|
|
9675
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Button, { type: "button", onClick: () => onOpenChange(false), children: copy.done })
|
|
9676
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(import_jsx_runtime142.Fragment, { children: [
|
|
9677
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
9678
|
+
"a",
|
|
9679
|
+
{
|
|
9680
|
+
className: "text-agg-sm text-agg-primary underline",
|
|
9681
|
+
href: "https://docs.novig.com/api/quickstart",
|
|
9682
|
+
target: "_blank",
|
|
9683
|
+
rel: "noopener noreferrer",
|
|
9684
|
+
children: copy.instructions
|
|
9685
|
+
}
|
|
9686
|
+
),
|
|
9687
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("label", { htmlFor: `${id}-access`, className: "text-agg-sm text-agg-foreground", children: copy.keyId }),
|
|
9688
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
9689
|
+
"input",
|
|
9690
|
+
{
|
|
9691
|
+
id: `${id}-access`,
|
|
9692
|
+
type: "password",
|
|
9693
|
+
autoComplete: "off",
|
|
9694
|
+
spellCheck: false,
|
|
9695
|
+
className: "rounded-agg-md border border-agg-border bg-agg-secondary p-3 text-agg-foreground",
|
|
9696
|
+
value: keyId,
|
|
9697
|
+
onChange: (e) => setKeyId(e.target.value),
|
|
9698
|
+
disabled: busy,
|
|
9699
|
+
required: true
|
|
9700
|
+
}
|
|
9701
|
+
),
|
|
9702
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("label", { htmlFor: `${id}-secret`, className: "text-agg-sm text-agg-foreground", children: copy.privateKey }),
|
|
9703
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
9704
|
+
"textarea",
|
|
9705
|
+
{
|
|
9706
|
+
id: `${id}-secret`,
|
|
9707
|
+
rows: 5,
|
|
9708
|
+
autoComplete: "new-password",
|
|
9709
|
+
spellCheck: false,
|
|
9710
|
+
className: "rounded-agg-md border border-agg-border bg-agg-secondary p-3 text-agg-foreground",
|
|
9711
|
+
value: privateKey,
|
|
9712
|
+
onChange: (e) => setPrivateKey(e.target.value),
|
|
9713
|
+
disabled: busy,
|
|
9714
|
+
required: true
|
|
9715
|
+
}
|
|
9716
|
+
),
|
|
9717
|
+
error ? /* @__PURE__ */ (0, import_jsx_runtime142.jsx)("p", { role: "alert", className: "text-agg-sm text-agg-error", children: copy.error }) : null,
|
|
9718
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Button, { type: "submit", disabled: busy || !keyId.trim() || !privateKey.trim(), children: pending ? copy.verifying : copy.verify })
|
|
9719
|
+
] }),
|
|
9720
|
+
allowExistingConnection && onDisconnect ? /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
9721
|
+
Button,
|
|
9722
|
+
{
|
|
9723
|
+
type: "button",
|
|
9724
|
+
variant: "secondary",
|
|
9725
|
+
disabled: busy,
|
|
9726
|
+
onClick: () => __async(null, null, function* () {
|
|
9727
|
+
setDisconnecting(true);
|
|
9728
|
+
setDisconnectError(false);
|
|
9729
|
+
setError(false);
|
|
9730
|
+
try {
|
|
9731
|
+
yield onDisconnect();
|
|
9732
|
+
setKeyId("");
|
|
9733
|
+
setPrivateKey("");
|
|
9734
|
+
onOpenChange(false);
|
|
9735
|
+
} catch (e) {
|
|
9736
|
+
setDisconnectError(true);
|
|
9737
|
+
} finally {
|
|
9738
|
+
setDisconnecting(false);
|
|
9739
|
+
}
|
|
9740
|
+
}),
|
|
9741
|
+
children: disconnecting ? copy.disconnecting : copy.disconnect
|
|
9742
|
+
}
|
|
9743
|
+
) : null,
|
|
9744
|
+
disconnectError ? /* @__PURE__ */ (0, import_jsx_runtime142.jsx)("p", { role: "alert", className: "text-agg-sm text-agg-error", children: copy.disconnectError }) : null
|
|
9745
|
+
]
|
|
9746
|
+
}
|
|
9747
|
+
)
|
|
9748
|
+
] }) })
|
|
9749
|
+
}
|
|
9750
|
+
);
|
|
9751
|
+
}
|
|
9752
|
+
|
|
9753
|
+
// src/onboarding/index.tsx
|
|
9754
|
+
var import_jsx_runtime143 = require("react/jsx-runtime");
|
|
9596
9755
|
var OnboardingModal = ({
|
|
9597
9756
|
open,
|
|
9598
9757
|
onOpenChange,
|
|
@@ -9603,55 +9762,55 @@ var OnboardingModal = ({
|
|
|
9603
9762
|
connectedOnchain = false
|
|
9604
9763
|
}) => {
|
|
9605
9764
|
var _a;
|
|
9606
|
-
const labels = (0,
|
|
9607
|
-
const [step, setStep] = (0,
|
|
9765
|
+
const labels = (0, import_hooks42.useLabels)();
|
|
9766
|
+
const [step, setStep] = (0, import_react20.useState)(ONBOARDING_STEPS.HOW_IT_WORKS);
|
|
9608
9767
|
const stepLabels = {
|
|
9609
9768
|
[ONBOARDING_STEPS.HOW_IT_WORKS]: labels.onboarding.modal.stepHowItWorks,
|
|
9610
9769
|
[ONBOARDING_STEPS.PROFILE_SETUP]: labels.onboarding.modal.stepProfileSetup,
|
|
9611
9770
|
[ONBOARDING_STEPS.CONNECT_ACCOUNTS]: labels.onboarding.modal.stepConnectAccounts
|
|
9612
9771
|
};
|
|
9613
9772
|
const resolvedTitle = (_a = stepLabels[step]) != null ? _a : labels.onboarding.modal.title;
|
|
9614
|
-
const [onchainModalOpen, setOnchainModalOpen] = (0,
|
|
9615
|
-
const [onchainConnected, setOnchainConnected] = (0,
|
|
9616
|
-
(0,
|
|
9773
|
+
const [onchainModalOpen, setOnchainModalOpen] = (0, import_react20.useState)(false);
|
|
9774
|
+
const [onchainConnected, setOnchainConnected] = (0, import_react20.useState)(false);
|
|
9775
|
+
(0, import_react20.useEffect)(() => {
|
|
9617
9776
|
if (open) {
|
|
9618
9777
|
setStep(ONBOARDING_STEPS.HOW_IT_WORKS);
|
|
9619
9778
|
setOnchainConnected(false);
|
|
9620
9779
|
}
|
|
9621
9780
|
}, [open]);
|
|
9622
|
-
const handleHowItWorksContinue = (0,
|
|
9781
|
+
const handleHowItWorksContinue = (0, import_react20.useCallback)(() => {
|
|
9623
9782
|
setStep(ONBOARDING_STEPS.PROFILE_SETUP);
|
|
9624
9783
|
}, []);
|
|
9625
|
-
const handleProfileContinue = (0,
|
|
9784
|
+
const handleProfileContinue = (0, import_react20.useCallback)(
|
|
9626
9785
|
(data) => {
|
|
9627
9786
|
onProfileSubmit == null ? void 0 : onProfileSubmit(data);
|
|
9628
9787
|
setStep(ONBOARDING_STEPS.CONNECT_ACCOUNTS);
|
|
9629
9788
|
},
|
|
9630
9789
|
[onProfileSubmit]
|
|
9631
9790
|
);
|
|
9632
|
-
const handleConnectContinue = (0,
|
|
9791
|
+
const handleConnectContinue = (0, import_react20.useCallback)(() => {
|
|
9633
9792
|
onComplete == null ? void 0 : onComplete();
|
|
9634
9793
|
}, [onComplete]);
|
|
9635
|
-
const handleOpenOnchainModal = (0,
|
|
9794
|
+
const handleOpenOnchainModal = (0, import_react20.useCallback)(() => {
|
|
9636
9795
|
setOnchainModalOpen(true);
|
|
9637
9796
|
}, []);
|
|
9638
|
-
const handleOnchainConnect = (0,
|
|
9797
|
+
const handleOnchainConnect = (0, import_react20.useCallback)(() => __async(null, null, function* () {
|
|
9639
9798
|
yield onConnectOnchain == null ? void 0 : onConnectOnchain();
|
|
9640
9799
|
setOnchainConnected(true);
|
|
9641
9800
|
}), [onConnectOnchain]);
|
|
9642
|
-
return /* @__PURE__ */ (0,
|
|
9643
|
-
/* @__PURE__ */ (0,
|
|
9801
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_jsx_runtime143.Fragment, { children: [
|
|
9802
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Modal, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
|
|
9644
9803
|
Modal.Container,
|
|
9645
9804
|
{
|
|
9646
9805
|
maxWidth: "600px",
|
|
9647
9806
|
"aria-label": resolvedTitle,
|
|
9648
9807
|
classNames: { container: "!rounded-agg-lg" },
|
|
9649
9808
|
children: [
|
|
9650
|
-
/* @__PURE__ */ (0,
|
|
9651
|
-
/* @__PURE__ */ (0,
|
|
9652
|
-
step === ONBOARDING_STEPS.HOW_IT_WORKS && /* @__PURE__ */ (0,
|
|
9653
|
-
step === ONBOARDING_STEPS.PROFILE_SETUP && /* @__PURE__ */ (0,
|
|
9654
|
-
step === ONBOARDING_STEPS.CONNECT_ACCOUNTS && /* @__PURE__ */ (0,
|
|
9809
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Dialog6.Title, { className: "sr-only", children: resolvedTitle }),
|
|
9810
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Modal.Body, { classNames: { root: "px-5 py-6 sm:px-10 sm:py-8" }, children: [
|
|
9811
|
+
step === ONBOARDING_STEPS.HOW_IT_WORKS && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(HowItWorksStep, { onContinue: handleHowItWorksContinue, icons: howItWorksIcons }),
|
|
9812
|
+
step === ONBOARDING_STEPS.PROFILE_SETUP && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ProfileSetupStep, { onContinue: handleProfileContinue }),
|
|
9813
|
+
step === ONBOARDING_STEPS.CONNECT_ACCOUNTS && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
9655
9814
|
ConnectAccountsStep,
|
|
9656
9815
|
{
|
|
9657
9816
|
onConnectOnchain: handleOpenOnchainModal,
|
|
@@ -9663,7 +9822,7 @@ var OnboardingModal = ({
|
|
|
9663
9822
|
]
|
|
9664
9823
|
}
|
|
9665
9824
|
) }),
|
|
9666
|
-
/* @__PURE__ */ (0,
|
|
9825
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
9667
9826
|
ConnectOnchainModal,
|
|
9668
9827
|
{
|
|
9669
9828
|
open: onchainModalOpen,
|
|
@@ -9676,8 +9835,8 @@ var OnboardingModal = ({
|
|
|
9676
9835
|
OnboardingModal.displayName = "OnboardingModal";
|
|
9677
9836
|
|
|
9678
9837
|
// src/paper-trading/paper-trading-badge.tsx
|
|
9679
|
-
var
|
|
9680
|
-
var
|
|
9838
|
+
var import_hooks43 = require("@agg-build/hooks");
|
|
9839
|
+
var import_jsx_runtime144 = require("react/jsx-runtime");
|
|
9681
9840
|
var PaperTradingBadge = ({
|
|
9682
9841
|
placement = "chip",
|
|
9683
9842
|
isAuthenticated = false,
|
|
@@ -9686,8 +9845,8 @@ var PaperTradingBadge = ({
|
|
|
9686
9845
|
showWhenAuthenticated = false,
|
|
9687
9846
|
classNames
|
|
9688
9847
|
}) => {
|
|
9689
|
-
const labels = (0,
|
|
9690
|
-
const { isPaperMode, isResolving } = (0,
|
|
9848
|
+
const labels = (0, import_hooks43.useLabels)();
|
|
9849
|
+
const { isPaperMode, isResolving } = (0, import_hooks43.useResolvedExecutionMode)();
|
|
9691
9850
|
if (!forceVisible && (isResolving || !isPaperMode)) return null;
|
|
9692
9851
|
if (placement === "brand" && isAuthenticated && !forceVisible && !showWhenAuthenticated) {
|
|
9693
9852
|
return null;
|
|
@@ -9697,7 +9856,7 @@ var PaperTradingBadge = ({
|
|
|
9697
9856
|
chip: "inline-flex",
|
|
9698
9857
|
signedOut: "hidden md:inline-flex"
|
|
9699
9858
|
}[placement];
|
|
9700
|
-
return /* @__PURE__ */ (0,
|
|
9859
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
9701
9860
|
Tooltip,
|
|
9702
9861
|
{
|
|
9703
9862
|
content: labels.paperTrading.badgeTooltip,
|
|
@@ -9715,13 +9874,13 @@ var PaperTradingBadge = ({
|
|
|
9715
9874
|
classNames == null ? void 0 : classNames.tooltip
|
|
9716
9875
|
)
|
|
9717
9876
|
},
|
|
9718
|
-
children: /* @__PURE__ */ (0,
|
|
9877
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
9719
9878
|
"span",
|
|
9720
9879
|
{
|
|
9721
9880
|
className: cn("agg-paper-trading-badge items-center", placementClassName, classNames == null ? void 0 : classNames.root),
|
|
9722
9881
|
"data-testid": "agg-paper-trading-badge",
|
|
9723
9882
|
"data-placement": placement,
|
|
9724
|
-
children: /* @__PURE__ */ (0,
|
|
9883
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
9725
9884
|
"span",
|
|
9726
9885
|
{
|
|
9727
9886
|
className: cn(
|
|
@@ -9746,22 +9905,22 @@ var PaperTradingBadge = ({
|
|
|
9746
9905
|
PaperTradingBadge.displayName = "PaperTradingBadge";
|
|
9747
9906
|
|
|
9748
9907
|
// src/paper-trading/paper-trading-onboarding.tsx
|
|
9749
|
-
var
|
|
9908
|
+
var import_hooks45 = require("@agg-build/hooks");
|
|
9750
9909
|
|
|
9751
9910
|
// src/paper-trading/paper-onboarding-modal.tsx
|
|
9752
|
-
var
|
|
9753
|
-
var
|
|
9754
|
-
var
|
|
9911
|
+
var import_react21 = require("react");
|
|
9912
|
+
var import_hooks44 = require("@agg-build/hooks");
|
|
9913
|
+
var import_jsx_runtime145 = require("react/jsx-runtime");
|
|
9755
9914
|
var PaperOnboardingModal = ({
|
|
9756
9915
|
open,
|
|
9757
9916
|
onDismiss,
|
|
9758
9917
|
startingBalanceLabel,
|
|
9759
9918
|
classNames
|
|
9760
9919
|
}) => {
|
|
9761
|
-
const labels = (0,
|
|
9920
|
+
const labels = (0, import_hooks44.useLabels)();
|
|
9762
9921
|
const copy = labels.paperTrading.onboarding;
|
|
9763
|
-
const [stepIndex, setStepIndex] = (0,
|
|
9764
|
-
const steps = (0,
|
|
9922
|
+
const [stepIndex, setStepIndex] = (0, import_react21.useState)(0);
|
|
9923
|
+
const steps = (0, import_react21.useMemo)(
|
|
9765
9924
|
() => [
|
|
9766
9925
|
{
|
|
9767
9926
|
key: "realMarkets",
|
|
@@ -9788,17 +9947,17 @@ var PaperOnboardingModal = ({
|
|
|
9788
9947
|
const isFirst = stepIndex === 0;
|
|
9789
9948
|
const isLast = stepIndex === total - 1;
|
|
9790
9949
|
const step = steps[stepIndex];
|
|
9791
|
-
const handleBack = (0,
|
|
9950
|
+
const handleBack = (0, import_react21.useCallback)(() => {
|
|
9792
9951
|
setStepIndex((current) => Math.max(0, current - 1));
|
|
9793
9952
|
}, []);
|
|
9794
|
-
const handleNext = (0,
|
|
9953
|
+
const handleNext = (0, import_react21.useCallback)(() => {
|
|
9795
9954
|
if (isLast) {
|
|
9796
9955
|
onDismiss();
|
|
9797
9956
|
return;
|
|
9798
9957
|
}
|
|
9799
9958
|
setStepIndex((current) => Math.min(total - 1, current + 1));
|
|
9800
9959
|
}, [isLast, onDismiss, total]);
|
|
9801
|
-
const handleOpenChange = (0,
|
|
9960
|
+
const handleOpenChange = (0, import_react21.useCallback)(
|
|
9802
9961
|
(next) => {
|
|
9803
9962
|
if (next) return;
|
|
9804
9963
|
setStepIndex(0);
|
|
@@ -9806,7 +9965,7 @@ var PaperOnboardingModal = ({
|
|
|
9806
9965
|
},
|
|
9807
9966
|
[onDismiss]
|
|
9808
9967
|
);
|
|
9809
|
-
return /* @__PURE__ */ (0,
|
|
9968
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
9810
9969
|
Modal.Container,
|
|
9811
9970
|
{
|
|
9812
9971
|
maxWidth: "480px",
|
|
@@ -9824,9 +9983,9 @@ var PaperOnboardingModal = ({
|
|
|
9824
9983
|
// Only the radius needs overriding, from the container's default 16.
|
|
9825
9984
|
container: cn("rounded-agg-xl! md:rounded-agg-xl!", classNames == null ? void 0 : classNames.card)
|
|
9826
9985
|
},
|
|
9827
|
-
children: /* @__PURE__ */ (0,
|
|
9828
|
-
/* @__PURE__ */ (0,
|
|
9829
|
-
/* @__PURE__ */ (0,
|
|
9986
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: cn("agg-paper-onboarding", "flex w-full flex-col gap-5 p-6"), children: [
|
|
9987
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "flex w-full items-start justify-center gap-5", children: [
|
|
9988
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
9830
9989
|
"div",
|
|
9831
9990
|
{
|
|
9832
9991
|
className: cn(
|
|
@@ -9834,12 +9993,12 @@ var PaperOnboardingModal = ({
|
|
|
9834
9993
|
"rounded-agg-lg bg-agg-primary/10 text-agg-primary",
|
|
9835
9994
|
classNames == null ? void 0 : classNames.icon
|
|
9836
9995
|
),
|
|
9837
|
-
children: /* @__PURE__ */ (0,
|
|
9996
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Icon, { name: step.icon, className: "!h-6 !w-6", "aria-hidden": "true" })
|
|
9838
9997
|
}
|
|
9839
9998
|
),
|
|
9840
|
-
/* @__PURE__ */ (0,
|
|
9841
|
-
/* @__PURE__ */ (0,
|
|
9842
|
-
/* @__PURE__ */ (0,
|
|
9999
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-2 break-words", children: [
|
|
10000
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
10001
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
9843
10002
|
"p",
|
|
9844
10003
|
{
|
|
9845
10004
|
className: cn(
|
|
@@ -9852,7 +10011,7 @@ var PaperOnboardingModal = ({
|
|
|
9852
10011
|
children: copy.stepEyebrow({ current: stepIndex + 1, total })
|
|
9853
10012
|
}
|
|
9854
10013
|
),
|
|
9855
|
-
/* @__PURE__ */ (0,
|
|
10014
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
9856
10015
|
"p",
|
|
9857
10016
|
{
|
|
9858
10017
|
className: cn(
|
|
@@ -9863,11 +10022,11 @@ var PaperOnboardingModal = ({
|
|
|
9863
10022
|
}
|
|
9864
10023
|
)
|
|
9865
10024
|
] }),
|
|
9866
|
-
/* @__PURE__ */ (0,
|
|
10025
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("p", { className: cn("text-agg-sm leading-agg-5 text-agg-foreground", classNames == null ? void 0 : classNames.body), children: step.body })
|
|
9867
10026
|
] })
|
|
9868
10027
|
] }),
|
|
9869
|
-
/* @__PURE__ */ (0,
|
|
9870
|
-
/* @__PURE__ */ (0,
|
|
10028
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: cn("flex w-full items-center justify-between", classNames == null ? void 0 : classNames.footer), children: [
|
|
10029
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { className: cn("flex items-center gap-1", classNames == null ? void 0 : classNames.dots), "aria-hidden": "true", children: steps.map((dotStep, index) => /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
9871
10030
|
"span",
|
|
9872
10031
|
{
|
|
9873
10032
|
className: cn(
|
|
@@ -9877,8 +10036,8 @@ var PaperOnboardingModal = ({
|
|
|
9877
10036
|
},
|
|
9878
10037
|
dotStep.key
|
|
9879
10038
|
)) }),
|
|
9880
|
-
/* @__PURE__ */ (0,
|
|
9881
|
-
/* @__PURE__ */ (0,
|
|
10039
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
10040
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
9882
10041
|
Button,
|
|
9883
10042
|
{
|
|
9884
10043
|
variant: "secondary",
|
|
@@ -9888,7 +10047,7 @@ var PaperOnboardingModal = ({
|
|
|
9888
10047
|
children: isFirst ? copy.skip : copy.back
|
|
9889
10048
|
}
|
|
9890
10049
|
),
|
|
9891
|
-
/* @__PURE__ */ (0,
|
|
10050
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
9892
10051
|
Button,
|
|
9893
10052
|
{
|
|
9894
10053
|
variant: "primary",
|
|
@@ -9907,15 +10066,15 @@ var PaperOnboardingModal = ({
|
|
|
9907
10066
|
PaperOnboardingModal.displayName = "PaperOnboardingModal";
|
|
9908
10067
|
|
|
9909
10068
|
// src/paper-trading/paper-trading-onboarding.tsx
|
|
9910
|
-
var
|
|
10069
|
+
var import_jsx_runtime146 = require("react/jsx-runtime");
|
|
9911
10070
|
var FALLBACK_STARTING_BALANCE = 1e4;
|
|
9912
10071
|
var PaperTradingOnboarding = ({
|
|
9913
10072
|
classNames
|
|
9914
10073
|
}) => {
|
|
9915
|
-
const { isOpen, dismiss } = (0,
|
|
9916
|
-
const { paperStartingBalance } = (0,
|
|
10074
|
+
const { isOpen, dismiss } = (0, import_hooks45.usePaperOnboarding)();
|
|
10075
|
+
const { paperStartingBalance } = (0, import_hooks45.useAppConfig)();
|
|
9917
10076
|
if (!isOpen) return null;
|
|
9918
|
-
return /* @__PURE__ */ (0,
|
|
10077
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
9919
10078
|
PaperOnboardingModal,
|
|
9920
10079
|
{
|
|
9921
10080
|
open: true,
|
|
@@ -9930,24 +10089,24 @@ var PaperTradingOnboarding = ({
|
|
|
9930
10089
|
PaperTradingOnboarding.displayName = "PaperTradingOnboarding";
|
|
9931
10090
|
|
|
9932
10091
|
// src/profile/index.tsx
|
|
9933
|
-
var
|
|
9934
|
-
var
|
|
9935
|
-
var
|
|
10092
|
+
var import_react29 = require("react");
|
|
10093
|
+
var import_hooks53 = require("@agg-build/hooks");
|
|
10094
|
+
var import_sdk17 = require("@agg-build/sdk");
|
|
9936
10095
|
|
|
9937
10096
|
// src/trading/manage-betdex-account-modal.tsx
|
|
9938
|
-
var
|
|
9939
|
-
var
|
|
9940
|
-
var
|
|
10097
|
+
var import_react26 = require("react");
|
|
10098
|
+
var import_hooks50 = require("@agg-build/hooks");
|
|
10099
|
+
var Dialog7 = __toESM(require("@radix-ui/react-dialog"));
|
|
9941
10100
|
|
|
9942
10101
|
// src/pages/user-profile/components/betdex-account-card.tsx
|
|
9943
|
-
var
|
|
9944
|
-
var
|
|
9945
|
-
var
|
|
10102
|
+
var import_react24 = require("react");
|
|
10103
|
+
var import_hooks48 = require("@agg-build/hooks");
|
|
10104
|
+
var import_sdk16 = require("@agg-build/sdk");
|
|
9946
10105
|
|
|
9947
10106
|
// src/pages/user-profile/components/betdex-account-transfers.tsx
|
|
9948
|
-
var
|
|
9949
|
-
var
|
|
9950
|
-
var
|
|
10107
|
+
var import_react22 = require("react");
|
|
10108
|
+
var import_hooks46 = require("@agg-build/hooks");
|
|
10109
|
+
var import_jsx_runtime147 = require("react/jsx-runtime");
|
|
9951
10110
|
function hostedWithdrawalRaw(value) {
|
|
9952
10111
|
var _a;
|
|
9953
10112
|
const match = /^([0-9]{1,26})(?:\.([0-9]{1,6}))?$/.exec(value.trim());
|
|
@@ -9967,15 +10126,15 @@ function BetdexAccountTransfers({
|
|
|
9967
10126
|
canDeposit,
|
|
9968
10127
|
onWalletDeposit
|
|
9969
10128
|
}) {
|
|
9970
|
-
const labels = (0,
|
|
9971
|
-
const transfer = (0,
|
|
9972
|
-
const [showWithdraw, setShowWithdraw] = (0,
|
|
9973
|
-
const wallet = (0,
|
|
10129
|
+
const labels = (0, import_hooks46.useLabels)().userProfile.hostedBetdex;
|
|
10130
|
+
const transfer = (0, import_hooks46.useHostedVenueTransfers)(accountId, environment);
|
|
10131
|
+
const [showWithdraw, setShowWithdraw] = (0, import_react22.useState)(false);
|
|
10132
|
+
const wallet = (0, import_hooks46.useDepositAddresses)({
|
|
9974
10133
|
enabled: transfer.isAvailable && environment === "production" && showWithdraw
|
|
9975
10134
|
});
|
|
9976
|
-
const [amount2, setAmount] = (0,
|
|
9977
|
-
const [destination, setDestination] = (0,
|
|
9978
|
-
const [actionError, setActionError] = (0,
|
|
10135
|
+
const [amount2, setAmount] = (0, import_react22.useState)("");
|
|
10136
|
+
const [destination, setDestination] = (0, import_react22.useState)("");
|
|
10137
|
+
const [actionError, setActionError] = (0, import_react22.useState)(false);
|
|
9979
10138
|
const raw = hostedWithdrawalRaw(amount2);
|
|
9980
10139
|
const withinBalance = raw !== null && (availableRaw === void 0 || BigInt(raw) <= BigInt(availableRaw));
|
|
9981
10140
|
const validDestination = /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(destination.trim());
|
|
@@ -9986,9 +10145,9 @@ function BetdexAccountTransfers({
|
|
|
9986
10145
|
void work().catch(() => setActionError(true));
|
|
9987
10146
|
};
|
|
9988
10147
|
if (!transfer.isAvailable) return null;
|
|
9989
|
-
return /* @__PURE__ */ (0,
|
|
9990
|
-
/* @__PURE__ */ (0,
|
|
9991
|
-
canDeposit && environment === "production" && onWalletDeposit ? /* @__PURE__ */ (0,
|
|
10148
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "flex flex-col gap-3 border-t border-agg-separator pt-3", children: [
|
|
10149
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "flex flex-wrap gap-2", children: [
|
|
10150
|
+
canDeposit && environment === "production" && onWalletDeposit ? /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
9992
10151
|
Button,
|
|
9993
10152
|
{
|
|
9994
10153
|
type: "button",
|
|
@@ -10003,7 +10162,7 @@ function BetdexAccountTransfers({
|
|
|
10003
10162
|
children: labels.fromWallet
|
|
10004
10163
|
}
|
|
10005
10164
|
) : null,
|
|
10006
|
-
canDeposit ? /* @__PURE__ */ (0,
|
|
10165
|
+
canDeposit ? /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
10007
10166
|
Button,
|
|
10008
10167
|
{
|
|
10009
10168
|
type: "button",
|
|
@@ -10016,7 +10175,7 @@ function BetdexAccountTransfers({
|
|
|
10016
10175
|
children: labels.deposit
|
|
10017
10176
|
}
|
|
10018
10177
|
) : null,
|
|
10019
|
-
/* @__PURE__ */ (0,
|
|
10178
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
10020
10179
|
Button,
|
|
10021
10180
|
{
|
|
10022
10181
|
type: "button",
|
|
@@ -10028,11 +10187,11 @@ function BetdexAccountTransfers({
|
|
|
10028
10187
|
}
|
|
10029
10188
|
)
|
|
10030
10189
|
] }),
|
|
10031
|
-
transfer.deposit.data ? /* @__PURE__ */ (0,
|
|
10032
|
-
/* @__PURE__ */ (0,
|
|
10033
|
-
/* @__PURE__ */ (0,
|
|
10190
|
+
transfer.deposit.data ? /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "flex flex-col gap-2 agg-type-caption", children: [
|
|
10191
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("p", { className: "text-agg-muted-foreground", children: labels.depositInstructions[environment] }),
|
|
10192
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("label", { className: "flex flex-col gap-1 text-agg-muted-foreground", children: [
|
|
10034
10193
|
labels.depositAddress,
|
|
10035
|
-
/* @__PURE__ */ (0,
|
|
10194
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
10036
10195
|
"input",
|
|
10037
10196
|
{
|
|
10038
10197
|
readOnly: true,
|
|
@@ -10043,20 +10202,20 @@ function BetdexAccountTransfers({
|
|
|
10043
10202
|
)
|
|
10044
10203
|
] })
|
|
10045
10204
|
] }) : null,
|
|
10046
|
-
transfer.deposit.isError || transfer.withdrawal.isError || transfer.storageError || actionError ? /* @__PURE__ */ (0,
|
|
10047
|
-
transfer.request ? /* @__PURE__ */ (0,
|
|
10048
|
-
/* @__PURE__ */ (0,
|
|
10205
|
+
transfer.deposit.isError || transfer.withdrawal.isError || transfer.storageError || actionError ? /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("p", { role: "alert", className: "agg-type-caption text-agg-error", children: labels.transferUnavailable }) : null,
|
|
10206
|
+
transfer.request ? /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "flex flex-col gap-2 agg-type-caption", children: [
|
|
10207
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("p", { children: [
|
|
10049
10208
|
labels.withdrawalAmount,
|
|
10050
10209
|
": ",
|
|
10051
10210
|
amountText(transfer.request.amountRaw)
|
|
10052
10211
|
] }),
|
|
10053
|
-
/* @__PURE__ */ (0,
|
|
10212
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("p", { className: "break-all", children: [
|
|
10054
10213
|
labels.withdrawalDestination,
|
|
10055
10214
|
": ",
|
|
10056
10215
|
transfer.request.destinationAddress
|
|
10057
10216
|
] }),
|
|
10058
|
-
/* @__PURE__ */ (0,
|
|
10059
|
-
terminal ? /* @__PURE__ */ (0,
|
|
10217
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("p", { role: "status", children: result ? labels.withdrawalStatuses[result.status] : labels.withdrawalUnknown }),
|
|
10218
|
+
terminal ? /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
10060
10219
|
Button,
|
|
10061
10220
|
{
|
|
10062
10221
|
type: "button",
|
|
@@ -10071,7 +10230,7 @@ function BetdexAccountTransfers({
|
|
|
10071
10230
|
},
|
|
10072
10231
|
children: labels.withdrawalNew
|
|
10073
10232
|
}
|
|
10074
|
-
) : /* @__PURE__ */ (0,
|
|
10233
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
10075
10234
|
Button,
|
|
10076
10235
|
{
|
|
10077
10236
|
type: "button",
|
|
@@ -10084,7 +10243,7 @@ function BetdexAccountTransfers({
|
|
|
10084
10243
|
children: result ? labels.withdrawalCheck : labels.withdrawalRetry
|
|
10085
10244
|
}
|
|
10086
10245
|
)
|
|
10087
|
-
] }) : showWithdraw ? /* @__PURE__ */ (0,
|
|
10246
|
+
] }) : showWithdraw ? /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
10088
10247
|
"form",
|
|
10089
10248
|
{
|
|
10090
10249
|
className: "flex flex-col gap-3",
|
|
@@ -10094,9 +10253,9 @@ function BetdexAccountTransfers({
|
|
|
10094
10253
|
run(() => transfer.submit(raw, destination.trim()));
|
|
10095
10254
|
},
|
|
10096
10255
|
children: [
|
|
10097
|
-
/* @__PURE__ */ (0,
|
|
10256
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("label", { className: "flex flex-col gap-1 agg-type-caption text-agg-muted-foreground", children: [
|
|
10098
10257
|
labels.withdrawalAmount,
|
|
10099
|
-
/* @__PURE__ */ (0,
|
|
10258
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
10100
10259
|
"input",
|
|
10101
10260
|
{
|
|
10102
10261
|
inputMode: "decimal",
|
|
@@ -10107,7 +10266,7 @@ function BetdexAccountTransfers({
|
|
|
10107
10266
|
}
|
|
10108
10267
|
)
|
|
10109
10268
|
] }),
|
|
10110
|
-
environment === "production" ? /* @__PURE__ */ (0,
|
|
10269
|
+
environment === "production" ? /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
10111
10270
|
Button,
|
|
10112
10271
|
{
|
|
10113
10272
|
type: "button",
|
|
@@ -10122,9 +10281,9 @@ function BetdexAccountTransfers({
|
|
|
10122
10281
|
children: labels.toWallet
|
|
10123
10282
|
}
|
|
10124
10283
|
) : null,
|
|
10125
|
-
/* @__PURE__ */ (0,
|
|
10284
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("label", { className: "flex flex-col gap-1 agg-type-caption text-agg-muted-foreground", children: [
|
|
10126
10285
|
labels.withdrawalDestination,
|
|
10127
|
-
/* @__PURE__ */ (0,
|
|
10286
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
10128
10287
|
"input",
|
|
10129
10288
|
{
|
|
10130
10289
|
autoComplete: "off",
|
|
@@ -10135,7 +10294,7 @@ function BetdexAccountTransfers({
|
|
|
10135
10294
|
}
|
|
10136
10295
|
)
|
|
10137
10296
|
] }),
|
|
10138
|
-
/* @__PURE__ */ (0,
|
|
10297
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
10139
10298
|
Button,
|
|
10140
10299
|
{
|
|
10141
10300
|
type: "submit",
|
|
@@ -10154,9 +10313,9 @@ function BetdexAccountTransfers({
|
|
|
10154
10313
|
}
|
|
10155
10314
|
|
|
10156
10315
|
// src/pages/user-profile/components/betdex-account-activity.tsx
|
|
10157
|
-
var
|
|
10158
|
-
var
|
|
10159
|
-
var
|
|
10316
|
+
var import_react23 = require("react");
|
|
10317
|
+
var import_hooks47 = require("@agg-build/hooks");
|
|
10318
|
+
var import_jsx_runtime148 = require("react/jsx-runtime");
|
|
10160
10319
|
function amount(raw) {
|
|
10161
10320
|
const negative = raw.startsWith("-");
|
|
10162
10321
|
const digits = (negative ? raw.slice(1) : raw).padStart(19, "0");
|
|
@@ -10167,36 +10326,36 @@ function BetdexAccountActivity({
|
|
|
10167
10326
|
accountId,
|
|
10168
10327
|
environment
|
|
10169
10328
|
}) {
|
|
10170
|
-
const labels = (0,
|
|
10171
|
-
const [page, setPage] = (0,
|
|
10172
|
-
const { activity, isAvailable } = (0,
|
|
10329
|
+
const labels = (0, import_hooks47.useLabels)().userProfile.hostedBetdex;
|
|
10330
|
+
const [page, setPage] = (0, import_react23.useState)(0);
|
|
10331
|
+
const { activity, isAvailable } = (0, import_hooks47.useHostedVenueActivity)("betdex", page);
|
|
10173
10332
|
if (!isAvailable) return null;
|
|
10174
10333
|
const data = activity.data;
|
|
10175
10334
|
const valid = (data == null ? void 0 : data.accountId) === accountId && data.environment === environment && data.page === page;
|
|
10176
10335
|
const unavailable = activity.isError || !!data && !valid;
|
|
10177
|
-
return /* @__PURE__ */ (0,
|
|
10336
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)(
|
|
10178
10337
|
"section",
|
|
10179
10338
|
{
|
|
10180
10339
|
"aria-label": labels.activityTitle,
|
|
10181
10340
|
className: "flex flex-col gap-3 border-t border-agg-separator pt-3",
|
|
10182
10341
|
children: [
|
|
10183
|
-
/* @__PURE__ */ (0,
|
|
10184
|
-
/* @__PURE__ */ (0,
|
|
10185
|
-
activity.isPending ? /* @__PURE__ */ (0,
|
|
10186
|
-
unavailable ? /* @__PURE__ */ (0,
|
|
10187
|
-
valid && !unavailable ? data.items.length ? /* @__PURE__ */ (0,
|
|
10188
|
-
/* @__PURE__ */ (0,
|
|
10189
|
-
/* @__PURE__ */ (0,
|
|
10190
|
-
/* @__PURE__ */ (0,
|
|
10342
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("h4", { className: "agg-type-label text-agg-foreground", children: labels.activityTitle }),
|
|
10343
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("p", { className: "agg-type-caption text-agg-muted-foreground", children: labels.activityDescription }),
|
|
10344
|
+
activity.isPending ? /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(SkeletonBlock, { className: "h-16 w-full" }) : null,
|
|
10345
|
+
unavailable ? /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("p", { role: "status", className: "agg-type-caption text-agg-muted-foreground", children: labels.activityUnavailable }) : null,
|
|
10346
|
+
valid && !unavailable ? data.items.length ? /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("ul", { className: "flex flex-col gap-3 agg-type-caption", children: data.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("li", { className: "flex flex-col gap-1", children: [
|
|
10347
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex justify-between gap-3 text-agg-foreground", children: [
|
|
10348
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { children: labels.activityCodes[item.code] }),
|
|
10349
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("span", { className: "break-all tabular-nums", children: [
|
|
10191
10350
|
amount(item.amountRaw),
|
|
10192
10351
|
" ",
|
|
10193
10352
|
data.asset
|
|
10194
10353
|
] })
|
|
10195
10354
|
] }),
|
|
10196
|
-
/* @__PURE__ */ (0,
|
|
10197
|
-
] }, item.id)) }) : /* @__PURE__ */ (0,
|
|
10198
|
-
/* @__PURE__ */ (0,
|
|
10199
|
-
/* @__PURE__ */ (0,
|
|
10355
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("time", { dateTime: item.createdAt, className: "text-agg-muted-foreground", children: new Date(item.createdAt).toLocaleString() })
|
|
10356
|
+
] }, item.id)) }) : /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("p", { className: "agg-type-caption text-agg-muted-foreground", children: labels.activityEmpty }) : null,
|
|
10357
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex flex-wrap gap-2", children: [
|
|
10358
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
10200
10359
|
Button,
|
|
10201
10360
|
{
|
|
10202
10361
|
type: "button",
|
|
@@ -10207,7 +10366,7 @@ function BetdexAccountActivity({
|
|
|
10207
10366
|
children: labels.activityPrevious
|
|
10208
10367
|
}
|
|
10209
10368
|
),
|
|
10210
|
-
/* @__PURE__ */ (0,
|
|
10369
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
10211
10370
|
Button,
|
|
10212
10371
|
{
|
|
10213
10372
|
type: "button",
|
|
@@ -10220,7 +10379,7 @@ function BetdexAccountActivity({
|
|
|
10220
10379
|
children: labels.activityNext
|
|
10221
10380
|
}
|
|
10222
10381
|
),
|
|
10223
|
-
/* @__PURE__ */ (0,
|
|
10382
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
10224
10383
|
Button,
|
|
10225
10384
|
{
|
|
10226
10385
|
type: "button",
|
|
@@ -10240,46 +10399,46 @@ function BetdexAccountActivity({
|
|
|
10240
10399
|
}
|
|
10241
10400
|
|
|
10242
10401
|
// src/pages/user-profile/components/betdex-account-card.tsx
|
|
10243
|
-
var
|
|
10402
|
+
var import_jsx_runtime149 = require("react/jsx-runtime");
|
|
10244
10403
|
function BetdexAccountCard({
|
|
10245
10404
|
onWalletDeposit
|
|
10246
10405
|
} = {}) {
|
|
10247
10406
|
var _a;
|
|
10248
|
-
const [showActivity, setShowActivity] = (0,
|
|
10249
|
-
const labels = (0,
|
|
10250
|
-
const { account, provision, isAvailable } = (0,
|
|
10407
|
+
const [showActivity, setShowActivity] = (0, import_react24.useState)(false);
|
|
10408
|
+
const labels = (0, import_hooks48.useLabels)().userProfile.hostedBetdex;
|
|
10409
|
+
const { account, provision, isAvailable } = (0, import_hooks48.useHostedVenueAccount)("betdex");
|
|
10251
10410
|
const data = account.data;
|
|
10252
10411
|
if (!isAvailable || (data == null ? void 0 : data.status) === "disabled") return null;
|
|
10253
10412
|
const pending = provision.isPending || (data == null ? void 0 : data.status) === "provisioning";
|
|
10254
10413
|
const canCreate = (data == null ? void 0 : data.status) === "not_created" && data.provisioningEnabled;
|
|
10255
10414
|
const rawLabel = (raw) => formatUsd(Number(raw) / 1e6);
|
|
10256
|
-
return /* @__PURE__ */ (0,
|
|
10415
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(
|
|
10257
10416
|
"section",
|
|
10258
10417
|
{
|
|
10259
10418
|
"aria-label": labels.title,
|
|
10260
10419
|
className: "flex flex-col gap-3 rounded-agg-xl border border-agg-separator bg-agg-secondary p-5",
|
|
10261
10420
|
children: [
|
|
10262
|
-
/* @__PURE__ */ (0,
|
|
10263
|
-
/* @__PURE__ */ (0,
|
|
10264
|
-
/* @__PURE__ */ (0,
|
|
10421
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
10422
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(VenueLogo, { venue: import_sdk16.Venue.betdex, size: "small", className: "size-4" }),
|
|
10423
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("h3", { className: "agg-type-label text-agg-foreground", children: labels.title })
|
|
10265
10424
|
] }),
|
|
10266
|
-
/* @__PURE__ */ (0,
|
|
10267
|
-
(data == null ? void 0 : data.environment) === "sandbox" ? /* @__PURE__ */ (0,
|
|
10268
|
-
account.isPending ? /* @__PURE__ */ (0,
|
|
10269
|
-
(data == null ? void 0 : data.status) === "active" && data.balanceStatus === "available" && data.balance && !account.isError ? /* @__PURE__ */ (0,
|
|
10425
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { className: "agg-type-caption text-agg-muted-foreground", children: labels.description }),
|
|
10426
|
+
(data == null ? void 0 : data.environment) === "sandbox" ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { className: "agg-type-caption text-agg-warning", children: labels.sandbox }) : null,
|
|
10427
|
+
account.isPending ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(SkeletonBlock, { className: "h-10 w-full" }) : null,
|
|
10428
|
+
(data == null ? void 0 : data.status) === "active" && data.balanceStatus === "available" && data.balance && !account.isError ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("dl", { className: "flex flex-col gap-2 agg-type-caption", children: [
|
|
10270
10429
|
[labels.total, data.balance.totalRaw],
|
|
10271
10430
|
[labels.available, data.balance.availableRaw],
|
|
10272
10431
|
[labels.reserved, data.balance.unmatchedExposureRaw]
|
|
10273
|
-
].map(([label2, raw]) => /* @__PURE__ */ (0,
|
|
10274
|
-
/* @__PURE__ */ (0,
|
|
10275
|
-
/* @__PURE__ */ (0,
|
|
10432
|
+
].map(([label2, raw]) => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex justify-between gap-3", children: [
|
|
10433
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("dt", { className: "text-agg-muted-foreground", children: label2 }),
|
|
10434
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("dd", { className: "text-agg-foreground", children: rawLabel(raw) })
|
|
10276
10435
|
] }, label2)) }) : null,
|
|
10277
|
-
pending ? /* @__PURE__ */ (0,
|
|
10278
|
-
(data == null ? void 0 : data.status) === "suspended" ? /* @__PURE__ */ (0,
|
|
10279
|
-
account.isError || (data == null ? void 0 : data.status) === "unavailable" || (data == null ? void 0 : data.balanceStatus) === "unavailable" ? /* @__PURE__ */ (0,
|
|
10280
|
-
(data == null ? void 0 : data.status) === "not_created" && !data.provisioningEnabled ? /* @__PURE__ */ (0,
|
|
10281
|
-
provision.isError ? /* @__PURE__ */ (0,
|
|
10282
|
-
canCreate || (data == null ? void 0 : data.status) === "provisioning" ? /* @__PURE__ */ (0,
|
|
10436
|
+
pending ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { role: "status", className: "agg-type-caption text-agg-muted-foreground", children: labels.provisioning }) : null,
|
|
10437
|
+
(data == null ? void 0 : data.status) === "suspended" ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { role: "status", className: "agg-type-caption text-agg-muted-foreground", children: labels.suspended }) : null,
|
|
10438
|
+
account.isError || (data == null ? void 0 : data.status) === "unavailable" || (data == null ? void 0 : data.balanceStatus) === "unavailable" ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { role: "status", className: "agg-type-caption text-agg-muted-foreground", children: labels.unavailable }) : null,
|
|
10439
|
+
(data == null ? void 0 : data.status) === "not_created" && !data.provisioningEnabled ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { className: "agg-type-caption text-agg-muted-foreground", children: labels.provisioningUnavailable }) : null,
|
|
10440
|
+
provision.isError ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { role: "alert", className: "agg-type-caption text-agg-error", children: labels.creationFailed }) : null,
|
|
10441
|
+
canCreate || (data == null ? void 0 : data.status) === "provisioning" ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
10283
10442
|
Button,
|
|
10284
10443
|
{
|
|
10285
10444
|
type: "button",
|
|
@@ -10292,7 +10451,7 @@ function BetdexAccountCard({
|
|
|
10292
10451
|
children: (data == null ? void 0 : data.status) === "provisioning" ? labels.checkSetup : labels.createAccount
|
|
10293
10452
|
}
|
|
10294
10453
|
) : null,
|
|
10295
|
-
/* @__PURE__ */ (0,
|
|
10454
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
10296
10455
|
Button,
|
|
10297
10456
|
{
|
|
10298
10457
|
type: "button",
|
|
@@ -10305,11 +10464,11 @@ function BetdexAccountCard({
|
|
|
10305
10464
|
children: labels.refresh
|
|
10306
10465
|
}
|
|
10307
10466
|
),
|
|
10308
|
-
(data == null ? void 0 : data.accountId) && data.environment && ["active", "suspended"].includes(data.status) ? /* @__PURE__ */ (0,
|
|
10309
|
-
/* @__PURE__ */ (0,
|
|
10310
|
-
/* @__PURE__ */ (0,
|
|
10467
|
+
(data == null ? void 0 : data.accountId) && data.environment && ["active", "suspended"].includes(data.status) ? /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(import_jsx_runtime149.Fragment, { children: [
|
|
10468
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("details", { className: "group/agg-betdex-funds border-t border-agg-separator pt-3", children: [
|
|
10469
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("summary", { className: "flex min-h-11 cursor-pointer list-none items-center justify-between gap-3 text-agg-sm font-agg-bold text-agg-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary [&::-webkit-details-marker]:hidden", children: [
|
|
10311
10470
|
labels.manageFunds,
|
|
10312
|
-
/* @__PURE__ */ (0,
|
|
10471
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
10313
10472
|
Icon,
|
|
10314
10473
|
{
|
|
10315
10474
|
name: "chevron-down",
|
|
@@ -10318,7 +10477,7 @@ function BetdexAccountCard({
|
|
|
10318
10477
|
}
|
|
10319
10478
|
)
|
|
10320
10479
|
] }),
|
|
10321
|
-
/* @__PURE__ */ (0,
|
|
10480
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
10322
10481
|
BetdexAccountTransfers,
|
|
10323
10482
|
{
|
|
10324
10483
|
accountId: data.accountId,
|
|
@@ -10330,7 +10489,7 @@ function BetdexAccountCard({
|
|
|
10330
10489
|
`transfers:${data.accountId}:${data.environment}`
|
|
10331
10490
|
)
|
|
10332
10491
|
] }),
|
|
10333
|
-
/* @__PURE__ */ (0,
|
|
10492
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
10334
10493
|
Button,
|
|
10335
10494
|
{
|
|
10336
10495
|
type: "button",
|
|
@@ -10341,7 +10500,7 @@ function BetdexAccountCard({
|
|
|
10341
10500
|
children: showActivity ? labels.hideActivity : labels.showActivity
|
|
10342
10501
|
}
|
|
10343
10502
|
),
|
|
10344
|
-
showActivity ? /* @__PURE__ */ (0,
|
|
10503
|
+
showActivity ? /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
10345
10504
|
BetdexAccountActivity,
|
|
10346
10505
|
{
|
|
10347
10506
|
accountId: data.accountId,
|
|
@@ -10356,15 +10515,15 @@ function BetdexAccountCard({
|
|
|
10356
10515
|
}
|
|
10357
10516
|
|
|
10358
10517
|
// src/pages/user-profile/components/betdex-wallet-deposit.tsx
|
|
10359
|
-
var
|
|
10360
|
-
var
|
|
10518
|
+
var import_react25 = require("react");
|
|
10519
|
+
var import_hooks49 = require("@agg-build/hooks");
|
|
10361
10520
|
var import_withdraw2 = require("@agg-build/hooks/withdraw");
|
|
10362
|
-
var
|
|
10521
|
+
var import_jsx_runtime150 = require("react/jsx-runtime");
|
|
10363
10522
|
function BetdexWalletDeposit({
|
|
10364
10523
|
address,
|
|
10365
10524
|
onClose
|
|
10366
10525
|
}) {
|
|
10367
|
-
const labels = (0,
|
|
10526
|
+
const labels = (0, import_hooks49.useLabels)().userProfile.hostedBetdex;
|
|
10368
10527
|
const flow = (0, import_withdraw2.useWithdrawFlow)({
|
|
10369
10528
|
open: true,
|
|
10370
10529
|
onOpenChange: (open) => {
|
|
@@ -10372,12 +10531,12 @@ function BetdexWalletDeposit({
|
|
|
10372
10531
|
}
|
|
10373
10532
|
});
|
|
10374
10533
|
const { onWithdrawDestinationChange, onWithdrawNetworkChange, onWithdrawTokenChange } = flow;
|
|
10375
|
-
(0,
|
|
10534
|
+
(0, import_react25.useEffect)(() => {
|
|
10376
10535
|
onWithdrawDestinationChange(address);
|
|
10377
10536
|
onWithdrawNetworkChange("792703809");
|
|
10378
10537
|
onWithdrawTokenChange("USDC");
|
|
10379
10538
|
}, [address, onWithdrawDestinationChange, onWithdrawNetworkChange, onWithdrawTokenChange]);
|
|
10380
|
-
return /* @__PURE__ */ (0,
|
|
10539
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
10381
10540
|
WithdrawModal,
|
|
10382
10541
|
__spreadProps(__spreadValues({}, flow), {
|
|
10383
10542
|
transferTarget: {
|
|
@@ -10391,35 +10550,35 @@ function BetdexWalletDeposit({
|
|
|
10391
10550
|
}
|
|
10392
10551
|
|
|
10393
10552
|
// src/trading/manage-betdex-account-modal.tsx
|
|
10394
|
-
var
|
|
10553
|
+
var import_jsx_runtime151 = require("react/jsx-runtime");
|
|
10395
10554
|
function ManageBetdexAccountModal({
|
|
10396
10555
|
open,
|
|
10397
10556
|
onOpenChange,
|
|
10398
10557
|
userId
|
|
10399
10558
|
}) {
|
|
10400
|
-
const labels = (0,
|
|
10401
|
-
const [fundingTarget, setFundingTarget] = (0,
|
|
10559
|
+
const labels = (0, import_hooks50.useLabels)();
|
|
10560
|
+
const [fundingTarget, setFundingTarget] = (0, import_react26.useState)(
|
|
10402
10561
|
null
|
|
10403
10562
|
);
|
|
10404
10563
|
const currentTarget = (fundingTarget == null ? void 0 : fundingTarget.userId) === userId ? fundingTarget : null;
|
|
10405
|
-
(0,
|
|
10564
|
+
(0, import_react26.useEffect)(() => {
|
|
10406
10565
|
if (!open) setFundingTarget(null);
|
|
10407
10566
|
}, [open]);
|
|
10408
|
-
(0,
|
|
10409
|
-
return /* @__PURE__ */ (0,
|
|
10410
|
-
/* @__PURE__ */ (0,
|
|
10411
|
-
/* @__PURE__ */ (0,
|
|
10412
|
-
|
|
10567
|
+
(0, import_react26.useEffect)(() => setFundingTarget(null), [userId]);
|
|
10568
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)(import_jsx_runtime151.Fragment, { children: [
|
|
10569
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)(Modal, { open: open && !currentTarget, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)(Modal.Container, { maxWidth: "600px", "aria-label": labels.trading.manageBetdexAccount, children: [
|
|
10570
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
10571
|
+
Dialog7.Close,
|
|
10413
10572
|
{
|
|
10414
10573
|
"aria-label": labels.common.close,
|
|
10415
10574
|
className: "absolute right-4 top-4 z-10 flex size-11 cursor-pointer items-center justify-center rounded-agg-full text-agg-muted-foreground hover:bg-agg-quaternary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-accent",
|
|
10416
|
-
children: /* @__PURE__ */ (0,
|
|
10575
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(Icon, { name: "close", size: "medium" })
|
|
10417
10576
|
}
|
|
10418
10577
|
),
|
|
10419
|
-
/* @__PURE__ */ (0,
|
|
10420
|
-
/* @__PURE__ */ (0,
|
|
10421
|
-
/* @__PURE__ */ (0,
|
|
10422
|
-
open ? /* @__PURE__ */ (0,
|
|
10578
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsxs)(Modal.Body, { classNames: { root: "!px-5 !py-16" }, children: [
|
|
10579
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)(Dialog7.Title, { className: "sr-only", children: labels.trading.manageBetdexAccount }),
|
|
10580
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)(Dialog7.Description, { className: "sr-only", children: labels.userProfile.hostedBetdex.description }),
|
|
10581
|
+
open ? /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
10423
10582
|
BetdexAccountCard,
|
|
10424
10583
|
{
|
|
10425
10584
|
onWalletDeposit: userId ? (address) => setFundingTarget({ userId, address }) : void 0
|
|
@@ -10427,7 +10586,7 @@ function ManageBetdexAccountModal({
|
|
|
10427
10586
|
) : null
|
|
10428
10587
|
] })
|
|
10429
10588
|
] }) }),
|
|
10430
|
-
open && currentTarget ? /* @__PURE__ */ (0,
|
|
10589
|
+
open && currentTarget ? /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
10431
10590
|
BetdexWalletDeposit,
|
|
10432
10591
|
{
|
|
10433
10592
|
address: currentTarget.address,
|
|
@@ -10453,9 +10612,9 @@ var getProfileTabItems = () => [
|
|
|
10453
10612
|
];
|
|
10454
10613
|
|
|
10455
10614
|
// src/profile/tabs/about-tab.tsx
|
|
10456
|
-
var
|
|
10457
|
-
var
|
|
10458
|
-
var
|
|
10615
|
+
var import_react27 = require("react");
|
|
10616
|
+
var import_hooks51 = require("@agg-build/hooks");
|
|
10617
|
+
var import_jsx_runtime152 = require("react/jsx-runtime");
|
|
10459
10618
|
var AboutTab = ({
|
|
10460
10619
|
avatarPreview,
|
|
10461
10620
|
onDeleteProfile: _onDeleteProfile,
|
|
@@ -10465,13 +10624,13 @@ var AboutTab = ({
|
|
|
10465
10624
|
draftAvatarPreview,
|
|
10466
10625
|
avatarError: _avatarError
|
|
10467
10626
|
}) => {
|
|
10468
|
-
const labels = (0,
|
|
10469
|
-
const fileInputRef = (0,
|
|
10470
|
-
const handleAvatarClick = (0,
|
|
10627
|
+
const labels = (0, import_hooks51.useLabels)();
|
|
10628
|
+
const fileInputRef = (0, import_react27.useRef)(null);
|
|
10629
|
+
const handleAvatarClick = (0, import_react27.useCallback)(() => {
|
|
10471
10630
|
var _a;
|
|
10472
10631
|
(_a = fileInputRef.current) == null ? void 0 : _a.click();
|
|
10473
10632
|
}, []);
|
|
10474
|
-
const handleFileChange = (0,
|
|
10633
|
+
const handleFileChange = (0, import_react27.useCallback)(
|
|
10475
10634
|
(e) => {
|
|
10476
10635
|
var _a;
|
|
10477
10636
|
const file = (_a = e.target.files) == null ? void 0 : _a[0];
|
|
@@ -10487,8 +10646,8 @@ var AboutTab = ({
|
|
|
10487
10646
|
);
|
|
10488
10647
|
const resolvedPreview = draftAvatarPreview != null ? draftAvatarPreview : avatarPreview;
|
|
10489
10648
|
const hasAvatarPreview = Boolean(resolvedPreview);
|
|
10490
|
-
return /* @__PURE__ */ (0,
|
|
10491
|
-
/* @__PURE__ */ (0,
|
|
10649
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { className: "agg-profile-about flex flex-col gap-8", children: /* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("div", { className: "agg-profile-avatar-section flex w-full items-center gap-6", children: [
|
|
10650
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsxs)(
|
|
10492
10651
|
"button",
|
|
10493
10652
|
{
|
|
10494
10653
|
type: "button",
|
|
@@ -10505,13 +10664,13 @@ var AboutTab = ({
|
|
|
10505
10664
|
),
|
|
10506
10665
|
"aria-label": labels.onboarding.profileSetup.uploadProfilePictureAria,
|
|
10507
10666
|
children: [
|
|
10508
|
-
!hasAvatarPreview ? /* @__PURE__ */ (0,
|
|
10667
|
+
!hasAvatarPreview ? /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
10509
10668
|
"svg",
|
|
10510
10669
|
{
|
|
10511
10670
|
"aria-hidden": true,
|
|
10512
10671
|
viewBox: "0 0 80 80",
|
|
10513
10672
|
className: "pointer-events-none absolute inset-0 h-full w-full text-agg-separator group-hover:text-agg-muted-foreground",
|
|
10514
|
-
children: /* @__PURE__ */ (0,
|
|
10673
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
10515
10674
|
"circle",
|
|
10516
10675
|
{
|
|
10517
10676
|
cx: "40",
|
|
@@ -10525,18 +10684,18 @@ var AboutTab = ({
|
|
|
10525
10684
|
)
|
|
10526
10685
|
}
|
|
10527
10686
|
) : null,
|
|
10528
|
-
resolvedPreview ? /* @__PURE__ */ (0,
|
|
10687
|
+
resolvedPreview ? /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
10529
10688
|
RemoteImage,
|
|
10530
10689
|
{
|
|
10531
10690
|
src: resolvedPreview,
|
|
10532
10691
|
alt: labels.onboarding.profileSetup.profilePreviewAlt,
|
|
10533
10692
|
className: "h-full w-full object-cover"
|
|
10534
10693
|
}
|
|
10535
|
-
) : /* @__PURE__ */ (0,
|
|
10694
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(Icon, { name: "profile", className: "h-7 w-7 text-agg-muted-foreground" })
|
|
10536
10695
|
]
|
|
10537
10696
|
}
|
|
10538
10697
|
),
|
|
10539
|
-
/* @__PURE__ */ (0,
|
|
10698
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
10540
10699
|
"input",
|
|
10541
10700
|
{
|
|
10542
10701
|
ref: fileInputRef,
|
|
@@ -10547,8 +10706,8 @@ var AboutTab = ({
|
|
|
10547
10706
|
"aria-hidden": "true"
|
|
10548
10707
|
}
|
|
10549
10708
|
),
|
|
10550
|
-
/* @__PURE__ */ (0,
|
|
10551
|
-
/* @__PURE__ */ (0,
|
|
10709
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("div", { className: "agg-form-section flex min-w-0 flex-1 flex-col gap-2", children: [
|
|
10710
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
10552
10711
|
"label",
|
|
10553
10712
|
{
|
|
10554
10713
|
htmlFor: "profile-username",
|
|
@@ -10556,7 +10715,7 @@ var AboutTab = ({
|
|
|
10556
10715
|
children: "Username"
|
|
10557
10716
|
}
|
|
10558
10717
|
),
|
|
10559
|
-
/* @__PURE__ */ (0,
|
|
10718
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
10560
10719
|
"input",
|
|
10561
10720
|
{
|
|
10562
10721
|
id: "profile-username",
|
|
@@ -10583,9 +10742,9 @@ var AboutTab = ({
|
|
|
10583
10742
|
AboutTab.displayName = "AboutTab";
|
|
10584
10743
|
|
|
10585
10744
|
// src/profile/tabs/accounts-wallets-tab.tsx
|
|
10586
|
-
var
|
|
10587
|
-
var SectionTitle = ({ children }) => /* @__PURE__ */ (0,
|
|
10588
|
-
var AccountRow = ({ children, className }) => /* @__PURE__ */ (0,
|
|
10745
|
+
var import_jsx_runtime153 = require("react/jsx-runtime");
|
|
10746
|
+
var SectionTitle = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("h3", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children });
|
|
10747
|
+
var AccountRow = ({ children, className }) => /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
10589
10748
|
"div",
|
|
10590
10749
|
{
|
|
10591
10750
|
className: cn(
|
|
@@ -10601,11 +10760,11 @@ var AccountIdentity = ({
|
|
|
10601
10760
|
icon,
|
|
10602
10761
|
label: label2,
|
|
10603
10762
|
iconClassName
|
|
10604
|
-
}) => /* @__PURE__ */ (0,
|
|
10605
|
-
/* @__PURE__ */ (0,
|
|
10606
|
-
/* @__PURE__ */ (0,
|
|
10763
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
10764
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("span", { className: cn("flex h-5 w-5 shrink-0 items-center justify-center", iconClassName), children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(Icon, { name: icon, size: "small", color: "currentColor" }) }),
|
|
10765
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("span", { className: "truncate text-agg-base font-agg-normal leading-6 text-agg-foreground", children: label2 })
|
|
10607
10766
|
] });
|
|
10608
|
-
var ConnectTextButton = ({ onClick }) => /* @__PURE__ */ (0,
|
|
10767
|
+
var ConnectTextButton = ({ onClick }) => /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
10609
10768
|
"button",
|
|
10610
10769
|
{
|
|
10611
10770
|
type: "button",
|
|
@@ -10614,7 +10773,7 @@ var ConnectTextButton = ({ onClick }) => /* @__PURE__ */ (0, import_jsx_runtime1
|
|
|
10614
10773
|
children: "Connect"
|
|
10615
10774
|
}
|
|
10616
10775
|
);
|
|
10617
|
-
var DisconnectTextButton = ({ onClick }) => /* @__PURE__ */ (0,
|
|
10776
|
+
var DisconnectTextButton = ({ onClick }) => /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
10618
10777
|
"button",
|
|
10619
10778
|
{
|
|
10620
10779
|
type: "button",
|
|
@@ -10623,7 +10782,7 @@ var DisconnectTextButton = ({ onClick }) => /* @__PURE__ */ (0, import_jsx_runti
|
|
|
10623
10782
|
children: "Disconnect"
|
|
10624
10783
|
}
|
|
10625
10784
|
);
|
|
10626
|
-
var VerifiedBadge = () => /* @__PURE__ */ (0,
|
|
10785
|
+
var VerifiedBadge = () => /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(Icon, { name: "check-badge", size: "small", color: "var(--agg-color-primary, #536dfe)" });
|
|
10627
10786
|
var getWalletIconName = (wallet) => {
|
|
10628
10787
|
const chain = wallet.chain.toLowerCase();
|
|
10629
10788
|
if (chain === "solana" || chain === "svm") {
|
|
@@ -10641,12 +10800,12 @@ var ConnectedAccountRow = ({
|
|
|
10641
10800
|
onDisconnect
|
|
10642
10801
|
}) => {
|
|
10643
10802
|
const displayLabel = connected ? connectedLabel != null ? connectedLabel : label2 : label2;
|
|
10644
|
-
return /* @__PURE__ */ (0,
|
|
10645
|
-
/* @__PURE__ */ (0,
|
|
10646
|
-
/* @__PURE__ */ (0,
|
|
10647
|
-
connected ? /* @__PURE__ */ (0,
|
|
10803
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)(AccountRow, { className: "agg-social-account-row gap-4", children: [
|
|
10804
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
10805
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(AccountIdentity, { icon, label: displayLabel, iconClassName }),
|
|
10806
|
+
connected ? /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(VerifiedBadge, {}) : null
|
|
10648
10807
|
] }),
|
|
10649
|
-
connected ? /* @__PURE__ */ (0,
|
|
10808
|
+
connected ? /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(DisconnectTextButton, { onClick: onDisconnect }) : /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(ConnectTextButton, { onClick: onConnect })
|
|
10650
10809
|
] });
|
|
10651
10810
|
};
|
|
10652
10811
|
var AccountsWalletsTab = ({
|
|
@@ -10665,11 +10824,11 @@ var AccountsWalletsTab = ({
|
|
|
10665
10824
|
const google = socialAccounts == null ? void 0 : socialAccounts.google;
|
|
10666
10825
|
const apple = socialAccounts == null ? void 0 : socialAccounts.apple;
|
|
10667
10826
|
const hasEmail = Boolean(email);
|
|
10668
|
-
return /* @__PURE__ */ (0,
|
|
10669
|
-
/* @__PURE__ */ (0,
|
|
10670
|
-
/* @__PURE__ */ (0,
|
|
10671
|
-
/* @__PURE__ */ (0,
|
|
10672
|
-
/* @__PURE__ */ (0,
|
|
10827
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "agg-accounts-wallets-tab flex flex-col gap-6", children: [
|
|
10828
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "agg-social-accounts-section flex flex-col gap-3", children: [
|
|
10829
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(SectionTitle, { children: "Connected accounts" }),
|
|
10830
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "agg-social-accounts-list flex flex-col gap-4", children: [
|
|
10831
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
10673
10832
|
ConnectedAccountRow,
|
|
10674
10833
|
{
|
|
10675
10834
|
icon: "google",
|
|
@@ -10681,7 +10840,7 @@ var AccountsWalletsTab = ({
|
|
|
10681
10840
|
onDisconnect: onDisconnectGoogle
|
|
10682
10841
|
}
|
|
10683
10842
|
),
|
|
10684
|
-
/* @__PURE__ */ (0,
|
|
10843
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
10685
10844
|
ConnectedAccountRow,
|
|
10686
10845
|
{
|
|
10687
10846
|
icon: "apple",
|
|
@@ -10693,7 +10852,7 @@ var AccountsWalletsTab = ({
|
|
|
10693
10852
|
onDisconnect: onDisconnectApple
|
|
10694
10853
|
}
|
|
10695
10854
|
),
|
|
10696
|
-
/* @__PURE__ */ (0,
|
|
10855
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
10697
10856
|
ConnectedAccountRow,
|
|
10698
10857
|
{
|
|
10699
10858
|
icon: "twitter",
|
|
@@ -10705,7 +10864,7 @@ var AccountsWalletsTab = ({
|
|
|
10705
10864
|
onDisconnect: onDisconnectTwitter
|
|
10706
10865
|
}
|
|
10707
10866
|
),
|
|
10708
|
-
/* @__PURE__ */ (0,
|
|
10867
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
10709
10868
|
ConnectedAccountRow,
|
|
10710
10869
|
{
|
|
10711
10870
|
icon: "email",
|
|
@@ -10718,12 +10877,12 @@ var AccountsWalletsTab = ({
|
|
|
10718
10877
|
)
|
|
10719
10878
|
] })
|
|
10720
10879
|
] }),
|
|
10721
|
-
wallets.length > 0 ? /* @__PURE__ */ (0,
|
|
10722
|
-
/* @__PURE__ */ (0,
|
|
10723
|
-
/* @__PURE__ */ (0,
|
|
10880
|
+
wallets.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "agg-wallets-section flex flex-col gap-3", children: [
|
|
10881
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(SectionTitle, { children: "Wallets" }),
|
|
10882
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { className: "flex flex-col gap-2", children: wallets.map((wallet) => {
|
|
10724
10883
|
var _a;
|
|
10725
|
-
return /* @__PURE__ */ (0,
|
|
10726
|
-
/* @__PURE__ */ (0,
|
|
10884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(AccountRow, { className: "gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
10885
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
10727
10886
|
AccountIdentity,
|
|
10728
10887
|
{
|
|
10729
10888
|
icon: getWalletIconName(wallet),
|
|
@@ -10731,7 +10890,7 @@ var AccountsWalletsTab = ({
|
|
|
10731
10890
|
label: (_a = wallet.displayAddress) != null ? _a : wallet.address
|
|
10732
10891
|
}
|
|
10733
10892
|
),
|
|
10734
|
-
/* @__PURE__ */ (0,
|
|
10893
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(VerifiedBadge, {})
|
|
10735
10894
|
] }) }, `${wallet.chain}:${wallet.address}`);
|
|
10736
10895
|
}) })
|
|
10737
10896
|
] }) : null
|
|
@@ -10740,9 +10899,9 @@ var AccountsWalletsTab = ({
|
|
|
10740
10899
|
AccountsWalletsTab.displayName = "AccountsWalletsTab";
|
|
10741
10900
|
|
|
10742
10901
|
// src/profile/tabs/trading-access-tab.tsx
|
|
10743
|
-
var
|
|
10744
|
-
var
|
|
10745
|
-
var
|
|
10902
|
+
var import_hooks52 = require("@agg-build/hooks");
|
|
10903
|
+
var import_react28 = require("react");
|
|
10904
|
+
var import_jsx_runtime154 = require("react/jsx-runtime");
|
|
10746
10905
|
var TRADING_ACCESS_VENUES = [
|
|
10747
10906
|
"kalshi",
|
|
10748
10907
|
"betdex",
|
|
@@ -10759,8 +10918,8 @@ var TRADING_ACCESS_VENUES = [
|
|
|
10759
10918
|
"pred"
|
|
10760
10919
|
];
|
|
10761
10920
|
var TRADING_ACCESS_VENUE_ITEMS = TRADING_ACCESS_VENUES.map((id) => ({ id }));
|
|
10762
|
-
var SectionTitle2 = ({ children }) => /* @__PURE__ */ (0,
|
|
10763
|
-
var AccessRow = ({ children }) => /* @__PURE__ */ (0,
|
|
10921
|
+
var SectionTitle2 = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime154.jsx)("h3", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children });
|
|
10922
|
+
var AccessRow = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
10764
10923
|
"div",
|
|
10765
10924
|
{
|
|
10766
10925
|
className: cn(
|
|
@@ -10772,17 +10931,17 @@ var AccessRow = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime153.jsx)
|
|
|
10772
10931
|
}
|
|
10773
10932
|
);
|
|
10774
10933
|
var AvailableStatus = () => {
|
|
10775
|
-
const labels = (0,
|
|
10776
|
-
return /* @__PURE__ */ (0,
|
|
10777
|
-
/* @__PURE__ */ (0,
|
|
10778
|
-
/* @__PURE__ */ (0,
|
|
10934
|
+
const labels = (0, import_hooks52.useLabels)();
|
|
10935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
10936
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(Icon, { name: "check-badge", size: "small", className: "text-agg-primary" }),
|
|
10937
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground whitespace-nowrap", children: labels.trading.tradingAccessAvailable })
|
|
10779
10938
|
] });
|
|
10780
10939
|
};
|
|
10781
10940
|
var GeoblockedStatus = () => {
|
|
10782
|
-
const labels = (0,
|
|
10783
|
-
return /* @__PURE__ */ (0,
|
|
10784
|
-
/* @__PURE__ */ (0,
|
|
10785
|
-
/* @__PURE__ */ (0,
|
|
10941
|
+
const labels = (0, import_hooks52.useLabels)();
|
|
10942
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex items-center gap-2 text-agg-muted-foreground", children: [
|
|
10943
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(Icon, { name: "warning-filled", size: "small", color: "currentColor" }),
|
|
10944
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-agg-sm font-agg-normal leading-agg-5 whitespace-nowrap", children: labels.trading.venueUnavailableInRegion })
|
|
10786
10945
|
] });
|
|
10787
10946
|
};
|
|
10788
10947
|
var TradingAccessTab = ({
|
|
@@ -10792,26 +10951,26 @@ var TradingAccessTab = ({
|
|
|
10792
10951
|
onConfigureBetdex
|
|
10793
10952
|
}) => {
|
|
10794
10953
|
var _a;
|
|
10795
|
-
const labels = (0,
|
|
10796
|
-
const { disabledVenues, isLoading: isAppConfigLoading } = (0,
|
|
10797
|
-
const { isLocationBlocked } = (0,
|
|
10954
|
+
const labels = (0, import_hooks52.useLabels)();
|
|
10955
|
+
const { disabledVenues, isLoading: isAppConfigLoading } = (0, import_hooks52.useAppConfig)();
|
|
10956
|
+
const { isLocationBlocked } = (0, import_hooks52.useGeoBlock)();
|
|
10798
10957
|
const hasBetdexAccount = (_a = venueAccounts == null ? void 0 : venueAccounts.some((account) => account.venue === "betdex")) != null ? _a : false;
|
|
10799
|
-
const visibleVenues = (0,
|
|
10800
|
-
const visible = (0,
|
|
10958
|
+
const visibleVenues = (0, import_react28.useMemo)(() => {
|
|
10959
|
+
const visible = (0, import_hooks52.getVisibleVenuesByConfig)(TRADING_ACCESS_VENUE_ITEMS, disabledVenues);
|
|
10801
10960
|
return TRADING_ACCESS_VENUE_ITEMS.filter(
|
|
10802
10961
|
(item) => visible.includes(item) || item.id === "betdex" && hasBetdexAccount
|
|
10803
10962
|
);
|
|
10804
10963
|
}, [disabledVenues, hasBetdexAccount]);
|
|
10805
|
-
return /* @__PURE__ */ (0,
|
|
10806
|
-
/* @__PURE__ */ (0,
|
|
10807
|
-
/* @__PURE__ */ (0,
|
|
10964
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "agg-trading-access-section flex flex-col gap-4", children: [
|
|
10965
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(SectionTitle2, { children: labels.trading.tradingAccessVenues }),
|
|
10966
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { className: "flex flex-col gap-3", children: visibleVenues.map(({ id: venue }) => {
|
|
10808
10967
|
var _a2;
|
|
10809
10968
|
const venueAccount = venueAccounts == null ? void 0 : venueAccounts.find((account) => account.venue === venue);
|
|
10810
10969
|
const isKalshi = venue === "kalshi";
|
|
10811
10970
|
const isBetdex = venue === "betdex";
|
|
10812
10971
|
const canManageBetdex = isBetdex && hasBetdexAccount && !isAppConfigLoading;
|
|
10813
10972
|
const isConnected = (venueAccount == null ? void 0 : venueAccount.status) === "active";
|
|
10814
|
-
const availabilityState = (0,
|
|
10973
|
+
const availabilityState = (0, import_hooks52.getVenueAvailabilityState)({
|
|
10815
10974
|
venueId: venue,
|
|
10816
10975
|
disabledVenues,
|
|
10817
10976
|
isConfigLoading: (isKalshi || isBetdex) && isAppConfigLoading,
|
|
@@ -10819,12 +10978,12 @@ var TradingAccessTab = ({
|
|
|
10819
10978
|
});
|
|
10820
10979
|
const displayName = (_a2 = venueLogoLabels[venue]) != null ? _a2 : venue;
|
|
10821
10980
|
if (availabilityState === "hidden" && !canManageBetdex) return null;
|
|
10822
|
-
return /* @__PURE__ */ (0,
|
|
10823
|
-
/* @__PURE__ */ (0,
|
|
10824
|
-
/* @__PURE__ */ (0,
|
|
10825
|
-
/* @__PURE__ */ (0,
|
|
10981
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(AccessRow, { children: [
|
|
10982
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
10983
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(VenueLogo, { venue, size: "small" }),
|
|
10984
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "truncate text-agg-base font-agg-normal leading-6 text-agg-foreground", children: displayName })
|
|
10826
10985
|
] }),
|
|
10827
|
-
isBetdex && (availabilityState === "available" || canManageBetdex) ? /* @__PURE__ */ (0,
|
|
10986
|
+
isBetdex && (availabilityState === "available" || canManageBetdex) ? /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
10828
10987
|
"button",
|
|
10829
10988
|
{
|
|
10830
10989
|
type: "button",
|
|
@@ -10834,7 +10993,7 @@ var TradingAccessTab = ({
|
|
|
10834
10993
|
className: "min-h-11 shrink-0 cursor-pointer text-agg-sm font-agg-bold leading-agg-5 text-agg-primary whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary disabled:cursor-not-allowed disabled:opacity-60",
|
|
10835
10994
|
children: labels.trading.configureBetdexAccount
|
|
10836
10995
|
}
|
|
10837
|
-
) : availabilityState === "geoblocked" ? /* @__PURE__ */ (0,
|
|
10996
|
+
) : availabilityState === "geoblocked" ? /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(GeoblockedStatus, {}) : isKalshi && !isConnected ? /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
10838
10997
|
"button",
|
|
10839
10998
|
{
|
|
10840
10999
|
type: "button",
|
|
@@ -10843,9 +11002,9 @@ var TradingAccessTab = ({
|
|
|
10843
11002
|
className: "shrink-0 cursor-pointer text-agg-sm font-agg-bold leading-agg-5 text-agg-primary whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary disabled:cursor-not-allowed disabled:opacity-60",
|
|
10844
11003
|
children: labels.trading.tradingAccessAddKalshiAccount
|
|
10845
11004
|
}
|
|
10846
|
-
) : isKalshi ? /* @__PURE__ */ (0,
|
|
10847
|
-
/* @__PURE__ */ (0,
|
|
10848
|
-
onDisconnectKalshi ? /* @__PURE__ */ (0,
|
|
11005
|
+
) : isKalshi ? /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex items-center gap-4", children: [
|
|
11006
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(AvailableStatus, {}),
|
|
11007
|
+
onDisconnectKalshi ? /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
10849
11008
|
"button",
|
|
10850
11009
|
{
|
|
10851
11010
|
type: "button",
|
|
@@ -10854,7 +11013,7 @@ var TradingAccessTab = ({
|
|
|
10854
11013
|
children: labels.auth.disconnect
|
|
10855
11014
|
}
|
|
10856
11015
|
) : null
|
|
10857
|
-
] }) : /* @__PURE__ */ (0,
|
|
11016
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(AvailableStatus, {})
|
|
10858
11017
|
] }, venue);
|
|
10859
11018
|
}) })
|
|
10860
11019
|
] });
|
|
@@ -10862,7 +11021,7 @@ var TradingAccessTab = ({
|
|
|
10862
11021
|
TradingAccessTab.displayName = "TradingAccessTab";
|
|
10863
11022
|
|
|
10864
11023
|
// src/profile/index.tsx
|
|
10865
|
-
var
|
|
11024
|
+
var import_jsx_runtime155 = require("react/jsx-runtime");
|
|
10866
11025
|
var ProfileModal = ({
|
|
10867
11026
|
open,
|
|
10868
11027
|
onOpenChange,
|
|
@@ -10886,35 +11045,35 @@ var ProfileModal = ({
|
|
|
10886
11045
|
onDisconnectExchange
|
|
10887
11046
|
}) => {
|
|
10888
11047
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
10889
|
-
const client = (0,
|
|
10890
|
-
const { user } = (0,
|
|
11048
|
+
const client = (0, import_hooks53.useAggClient)();
|
|
11049
|
+
const { user } = (0, import_hooks53.useAggAuthState)();
|
|
10891
11050
|
const toastCtx = useOptionalToast();
|
|
10892
|
-
const [activeTab, setActiveTab] = (0,
|
|
10893
|
-
const profileTabItems = (0,
|
|
11051
|
+
const [activeTab, setActiveTab] = (0, import_react29.useState)(PROFILE_TAB_KEYS.PROFILE_ACCOUNTS);
|
|
11052
|
+
const profileTabItems = (0, import_react29.useMemo)(() => getProfileTabItems(), []);
|
|
10894
11053
|
const resolvedInitialUsername = (_a = username != null ? username : user == null ? void 0 : user.username) != null ? _a : "";
|
|
10895
|
-
const [draftUsername, setDraftUsername] = (0,
|
|
10896
|
-
const [draftAvatarFile, setDraftAvatarFile] = (0,
|
|
10897
|
-
const [draftAvatarPreview, setDraftAvatarPreview] = (0,
|
|
10898
|
-
const [isSaving, setIsSaving] = (0,
|
|
10899
|
-
const [avatarTypeError, setAvatarTypeError] = (0,
|
|
10900
|
-
const [isConnectKalshiModalOpen, setIsConnectKalshiModalOpen] = (0,
|
|
10901
|
-
const [betdexAccountUserId, setBetdexAccountUserId] = (0,
|
|
11054
|
+
const [draftUsername, setDraftUsername] = (0, import_react29.useState)(resolvedInitialUsername);
|
|
11055
|
+
const [draftAvatarFile, setDraftAvatarFile] = (0, import_react29.useState)();
|
|
11056
|
+
const [draftAvatarPreview, setDraftAvatarPreview] = (0, import_react29.useState)();
|
|
11057
|
+
const [isSaving, setIsSaving] = (0, import_react29.useState)(false);
|
|
11058
|
+
const [avatarTypeError, setAvatarTypeError] = (0, import_react29.useState)(null);
|
|
11059
|
+
const [isConnectKalshiModalOpen, setIsConnectKalshiModalOpen] = (0, import_react29.useState)(false);
|
|
11060
|
+
const [betdexAccountUserId, setBetdexAccountUserId] = (0, import_react29.useState)(null);
|
|
10902
11061
|
const isBetdexAccountModalOpen = !!(user == null ? void 0 : user.id) && betdexAccountUserId === user.id;
|
|
10903
|
-
const { data: kalshiStatus, refetch: refetchKalshiStatus } = (0,
|
|
10904
|
-
|
|
11062
|
+
const { data: kalshiStatus, refetch: refetchKalshiStatus } = (0, import_hooks53.useVenueKeyStatus)(
|
|
11063
|
+
import_sdk17.Venue.kalshi,
|
|
10905
11064
|
open
|
|
10906
11065
|
);
|
|
10907
|
-
(0,
|
|
11066
|
+
(0, import_react29.useEffect)(() => {
|
|
10908
11067
|
var _a2;
|
|
10909
11068
|
setDraftUsername((_a2 = username != null ? username : user == null ? void 0 : user.username) != null ? _a2 : "");
|
|
10910
11069
|
}, [username, user == null ? void 0 : user.username]);
|
|
10911
|
-
(0,
|
|
11070
|
+
(0, import_react29.useEffect)(() => {
|
|
10912
11071
|
if (open) return;
|
|
10913
11072
|
setIsConnectKalshiModalOpen(false);
|
|
10914
11073
|
setBetdexAccountUserId(null);
|
|
10915
11074
|
}, [open]);
|
|
10916
|
-
(0,
|
|
10917
|
-
const handleOpenChange = (0,
|
|
11075
|
+
(0, import_react29.useEffect)(() => setBetdexAccountUserId(null), [user == null ? void 0 : user.id]);
|
|
11076
|
+
const handleOpenChange = (0, import_react29.useCallback)(
|
|
10918
11077
|
(isOpen) => {
|
|
10919
11078
|
var _a2;
|
|
10920
11079
|
if (!isOpen) {
|
|
@@ -10938,7 +11097,7 @@ var ProfileModal = ({
|
|
|
10938
11097
|
setDraftAvatarPreview
|
|
10939
11098
|
]
|
|
10940
11099
|
);
|
|
10941
|
-
const handleDraftAvatarChange = (0,
|
|
11100
|
+
const handleDraftAvatarChange = (0, import_react29.useCallback)(
|
|
10942
11101
|
(file, preview) => {
|
|
10943
11102
|
const ACCEPTED_AVATAR_TYPES = ["image/jpeg", "image/png", "image/gif", "image/webp"];
|
|
10944
11103
|
if (file && !ACCEPTED_AVATAR_TYPES.includes(file.type)) {
|
|
@@ -10953,7 +11112,7 @@ var ProfileModal = ({
|
|
|
10953
11112
|
);
|
|
10954
11113
|
const originalUsername = (_b = username != null ? username : user == null ? void 0 : user.username) != null ? _b : "";
|
|
10955
11114
|
const hasChanges = draftUsername !== originalUsername || draftAvatarFile !== void 0;
|
|
10956
|
-
const handleSave = (0,
|
|
11115
|
+
const handleSave = (0, import_react29.useCallback)(() => __async(null, null, function* () {
|
|
10957
11116
|
var _a2, _b2, _c2;
|
|
10958
11117
|
setIsSaving(true);
|
|
10959
11118
|
try {
|
|
@@ -11008,16 +11167,16 @@ var ProfileModal = ({
|
|
|
11008
11167
|
originalUsername,
|
|
11009
11168
|
toastCtx
|
|
11010
11169
|
]);
|
|
11011
|
-
const handleCancel = (0,
|
|
11170
|
+
const handleCancel = (0, import_react29.useCallback)(() => {
|
|
11012
11171
|
handleOpenChange(false);
|
|
11013
11172
|
}, [handleOpenChange]);
|
|
11014
|
-
const handleVerifyKalshi = (0,
|
|
11173
|
+
const handleVerifyKalshi = (0, import_react29.useCallback)(
|
|
11015
11174
|
(credentials) => __async(null, null, function* () {
|
|
11016
11175
|
if (onConnectKalshi) {
|
|
11017
11176
|
yield onConnectKalshi(credentials);
|
|
11018
11177
|
} else {
|
|
11019
11178
|
yield client.upsertVenueKey({
|
|
11020
|
-
venue:
|
|
11179
|
+
venue: import_sdk17.Venue.kalshi,
|
|
11021
11180
|
credentials: {
|
|
11022
11181
|
keyId: credentials.apiKeyId,
|
|
11023
11182
|
privateKey: credentials.privateKey
|
|
@@ -11029,12 +11188,12 @@ var ProfileModal = ({
|
|
|
11029
11188
|
}),
|
|
11030
11189
|
[client, onConnectKalshi, refetchKalshiStatus]
|
|
11031
11190
|
);
|
|
11032
|
-
const handleDisconnectKalshi = (0,
|
|
11033
|
-
yield client.deleteVenueKey(
|
|
11191
|
+
const handleDisconnectKalshi = (0, import_react29.useCallback)(() => __async(null, null, function* () {
|
|
11192
|
+
yield client.deleteVenueKey(import_sdk17.Venue.kalshi);
|
|
11034
11193
|
yield refetchKalshiStatus();
|
|
11035
|
-
onDisconnectExchange == null ? void 0 : onDisconnectExchange(
|
|
11194
|
+
onDisconnectExchange == null ? void 0 : onDisconnectExchange(import_sdk17.Venue.kalshi);
|
|
11036
11195
|
}), [client, onDisconnectExchange, refetchKalshiStatus]);
|
|
11037
|
-
const resolvedVenueAccounts = (0,
|
|
11196
|
+
const resolvedVenueAccounts = (0, import_react29.useMemo)(() => {
|
|
11038
11197
|
var _a2;
|
|
11039
11198
|
const nonKalshiAccounts = (_a2 = user == null ? void 0 : user.venueAccounts) == null ? void 0 : _a2.filter((account) => account.venue !== "kalshi");
|
|
11040
11199
|
if (!kalshiStatus) return user == null ? void 0 : user.venueAccounts;
|
|
@@ -11043,7 +11202,7 @@ var ProfileModal = ({
|
|
|
11043
11202
|
...nonKalshiAccounts != null ? nonKalshiAccounts : [],
|
|
11044
11203
|
{
|
|
11045
11204
|
id: "kalshi-venue-key",
|
|
11046
|
-
venue:
|
|
11205
|
+
venue: import_sdk17.Venue.kalshi,
|
|
11047
11206
|
status: "active",
|
|
11048
11207
|
kycStatus: kalshiStatus.kycStatus
|
|
11049
11208
|
}
|
|
@@ -11090,7 +11249,7 @@ var ProfileModal = ({
|
|
|
11090
11249
|
if (typeof window === "undefined") return;
|
|
11091
11250
|
((_a2 = window.top) != null ? _a2 : window).location.assign(url);
|
|
11092
11251
|
};
|
|
11093
|
-
const surfaceError = (0,
|
|
11252
|
+
const surfaceError = (0, import_react29.useCallback)(
|
|
11094
11253
|
(err, title2) => {
|
|
11095
11254
|
const message = (err == null ? void 0 : err.message) || "Something went wrong. Please try again.";
|
|
11096
11255
|
if (toastCtx) {
|
|
@@ -11101,7 +11260,7 @@ var ProfileModal = ({
|
|
|
11101
11260
|
},
|
|
11102
11261
|
[toastCtx]
|
|
11103
11262
|
);
|
|
11104
|
-
const handleConnectTwitter = (0,
|
|
11263
|
+
const handleConnectTwitter = (0, import_react29.useCallback)(() => __async(null, null, function* () {
|
|
11105
11264
|
try {
|
|
11106
11265
|
const result = yield client.linkAccount({
|
|
11107
11266
|
provider: "twitter",
|
|
@@ -11115,7 +11274,7 @@ var ProfileModal = ({
|
|
|
11115
11274
|
surfaceError(err, "Could not connect X (Twitter)");
|
|
11116
11275
|
}
|
|
11117
11276
|
}), [client, onConnectTwitter, surfaceError]);
|
|
11118
|
-
const handleConnectGoogle = (0,
|
|
11277
|
+
const handleConnectGoogle = (0, import_react29.useCallback)(() => __async(null, null, function* () {
|
|
11119
11278
|
try {
|
|
11120
11279
|
const result = yield client.linkAccount({
|
|
11121
11280
|
provider: "google",
|
|
@@ -11129,7 +11288,7 @@ var ProfileModal = ({
|
|
|
11129
11288
|
surfaceError(err, "Could not connect Google");
|
|
11130
11289
|
}
|
|
11131
11290
|
}), [client, onConnectGoogle, surfaceError]);
|
|
11132
|
-
const handleConnectApple = (0,
|
|
11291
|
+
const handleConnectApple = (0, import_react29.useCallback)(() => __async(null, null, function* () {
|
|
11133
11292
|
try {
|
|
11134
11293
|
const result = yield client.linkAccount({
|
|
11135
11294
|
provider: "apple",
|
|
@@ -11143,7 +11302,7 @@ var ProfileModal = ({
|
|
|
11143
11302
|
surfaceError(err, "Could not connect Apple");
|
|
11144
11303
|
}
|
|
11145
11304
|
}), [client, onConnectApple, surfaceError]);
|
|
11146
|
-
const handleDisconnectTwitter = (0,
|
|
11305
|
+
const handleDisconnectTwitter = (0, import_react29.useCallback)(() => __async(null, null, function* () {
|
|
11147
11306
|
try {
|
|
11148
11307
|
yield client.disconnectAccount("twitter");
|
|
11149
11308
|
yield client.getCurrentUser();
|
|
@@ -11152,7 +11311,7 @@ var ProfileModal = ({
|
|
|
11152
11311
|
surfaceError(err, "Could not disconnect X (Twitter)");
|
|
11153
11312
|
}
|
|
11154
11313
|
}), [client, onDisconnectTwitter, surfaceError]);
|
|
11155
|
-
const handleDisconnectGoogle = (0,
|
|
11314
|
+
const handleDisconnectGoogle = (0, import_react29.useCallback)(() => __async(null, null, function* () {
|
|
11156
11315
|
try {
|
|
11157
11316
|
yield client.disconnectAccount("google");
|
|
11158
11317
|
yield client.getCurrentUser();
|
|
@@ -11161,7 +11320,7 @@ var ProfileModal = ({
|
|
|
11161
11320
|
surfaceError(err, "Could not disconnect Google");
|
|
11162
11321
|
}
|
|
11163
11322
|
}), [client, onDisconnectGoogle, surfaceError]);
|
|
11164
|
-
const handleDisconnectApple = (0,
|
|
11323
|
+
const handleDisconnectApple = (0, import_react29.useCallback)(() => __async(null, null, function* () {
|
|
11165
11324
|
try {
|
|
11166
11325
|
yield client.disconnectAccount("apple");
|
|
11167
11326
|
yield client.getCurrentUser();
|
|
@@ -11170,7 +11329,7 @@ var ProfileModal = ({
|
|
|
11170
11329
|
surfaceError(err, "Could not disconnect Apple");
|
|
11171
11330
|
}
|
|
11172
11331
|
}), [client, onDisconnectApple, surfaceError]);
|
|
11173
|
-
const handleConnectEmail = (0,
|
|
11332
|
+
const handleConnectEmail = (0, import_react29.useCallback)(() => __async(null, null, function* () {
|
|
11174
11333
|
var _a2;
|
|
11175
11334
|
const typedEmail = typeof window !== "undefined" ? (_a2 = window.prompt("Enter your email to receive a magic link")) == null ? void 0 : _a2.trim() : void 0;
|
|
11176
11335
|
if (!typedEmail) return;
|
|
@@ -11189,7 +11348,7 @@ var ProfileModal = ({
|
|
|
11189
11348
|
surfaceError(err, "Could not connect email");
|
|
11190
11349
|
}
|
|
11191
11350
|
}), [client, onConnectEmail, surfaceError, toastCtx]);
|
|
11192
|
-
const handleDisconnectWallet = (0,
|
|
11351
|
+
const handleDisconnectWallet = (0, import_react29.useCallback)(
|
|
11193
11352
|
(wallet) => __async(null, null, function* () {
|
|
11194
11353
|
const normalizedChain = wallet.chain.toLowerCase();
|
|
11195
11354
|
const provider = normalizedChain === "solana" || normalizedChain === "svm" ? "solana_wallet" : "wallet";
|
|
@@ -11203,7 +11362,7 @@ var ProfileModal = ({
|
|
|
11203
11362
|
}),
|
|
11204
11363
|
[client, onDisconnectWallet, surfaceError]
|
|
11205
11364
|
);
|
|
11206
|
-
const providerActionMap = (0,
|
|
11365
|
+
const providerActionMap = (0, import_react29.useMemo)(
|
|
11207
11366
|
() => ({
|
|
11208
11367
|
twitter: {
|
|
11209
11368
|
connect: () => {
|
|
@@ -11245,7 +11404,7 @@ var ProfileModal = ({
|
|
|
11245
11404
|
handleDisconnectTwitter
|
|
11246
11405
|
]
|
|
11247
11406
|
);
|
|
11248
|
-
const resolvedWallets = (0,
|
|
11407
|
+
const resolvedWallets = (0, import_react29.useMemo)(() => {
|
|
11249
11408
|
var _a2, _b2;
|
|
11250
11409
|
if (wallets) return wallets;
|
|
11251
11410
|
const walletAccounts = (_b2 = (_a2 = user == null ? void 0 : user.accounts) == null ? void 0 : _a2.filter((account) => {
|
|
@@ -11264,13 +11423,13 @@ var ProfileModal = ({
|
|
|
11264
11423
|
};
|
|
11265
11424
|
});
|
|
11266
11425
|
}, [user == null ? void 0 : user.accounts, wallets]);
|
|
11267
|
-
return /* @__PURE__ */ (0,
|
|
11426
|
+
return /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)(
|
|
11268
11427
|
Modal,
|
|
11269
11428
|
{
|
|
11270
11429
|
open: open && !isConnectKalshiModalOpen && !isBetdexAccountModalOpen,
|
|
11271
11430
|
onOpenChange: handleOpenChange,
|
|
11272
11431
|
children: [
|
|
11273
|
-
/* @__PURE__ */ (0,
|
|
11432
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsxs)(
|
|
11274
11433
|
Modal.Container,
|
|
11275
11434
|
{
|
|
11276
11435
|
maxWidth: "800px",
|
|
@@ -11279,8 +11438,8 @@ var ProfileModal = ({
|
|
|
11279
11438
|
container: cn("agg-profile-modal", "min-h-[37.5rem]")
|
|
11280
11439
|
},
|
|
11281
11440
|
children: [
|
|
11282
|
-
/* @__PURE__ */ (0,
|
|
11283
|
-
/* @__PURE__ */ (0,
|
|
11441
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(Modal.Header, { title: "Edit Profile", classNames: { root: "agg-profile-modal-header" } }),
|
|
11442
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("div", { className: "agg-profile-tabs sm:hidden w-full", children: /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
11284
11443
|
Tabs,
|
|
11285
11444
|
{
|
|
11286
11445
|
className: "w-full [&>div]:w-full",
|
|
@@ -11289,14 +11448,14 @@ var ProfileModal = ({
|
|
|
11289
11448
|
items: profileTabItems.map((tab) => ({
|
|
11290
11449
|
value: tab.value,
|
|
11291
11450
|
label: tab.label,
|
|
11292
|
-
icon: /* @__PURE__ */ (0,
|
|
11451
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(Icon, { name: tab.icon, size: "small" })
|
|
11293
11452
|
})),
|
|
11294
11453
|
value: activeTab,
|
|
11295
11454
|
onChange: (val) => setActiveTab(val)
|
|
11296
11455
|
}
|
|
11297
11456
|
) }),
|
|
11298
|
-
/* @__PURE__ */ (0,
|
|
11299
|
-
/* @__PURE__ */ (0,
|
|
11457
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(Modal.Body, { classNames: { root: cn("agg-profile-modal-body", "overflow-x-visible") }, children: /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: "agg-profile-layout flex flex-col sm:flex-row sm:gap-10", children: [
|
|
11458
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("div", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
11300
11459
|
"nav",
|
|
11301
11460
|
{
|
|
11302
11461
|
className: cn(
|
|
@@ -11312,7 +11471,7 @@ var ProfileModal = ({
|
|
|
11312
11471
|
"aria-label": "Profile sections",
|
|
11313
11472
|
children: profileTabItems.map((tab) => {
|
|
11314
11473
|
const isActive = activeTab === tab.value;
|
|
11315
|
-
return /* @__PURE__ */ (0,
|
|
11474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)(
|
|
11316
11475
|
"button",
|
|
11317
11476
|
{
|
|
11318
11477
|
type: "button",
|
|
@@ -11328,9 +11487,9 @@ var ProfileModal = ({
|
|
|
11328
11487
|
isActive ? "font-agg-normal text-agg-foreground bg-agg-secondary-hover" : "font-agg-normal text-agg-foreground"
|
|
11329
11488
|
),
|
|
11330
11489
|
children: [
|
|
11331
|
-
isActive ? /* @__PURE__ */ (0,
|
|
11332
|
-
/* @__PURE__ */ (0,
|
|
11333
|
-
/* @__PURE__ */ (0,
|
|
11490
|
+
isActive ? /* @__PURE__ */ (0, import_jsx_runtime155.jsx)("div", { className: "absolute left-0 top-0 bottom-0 w-1 bg-agg-primary" }) : null,
|
|
11491
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(Icon, { name: tab.icon, size: "small", color: "currentColor" }),
|
|
11492
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("span", { className: "shrink-0 whitespace-nowrap", children: tab.label })
|
|
11334
11493
|
]
|
|
11335
11494
|
},
|
|
11336
11495
|
tab.value
|
|
@@ -11338,9 +11497,9 @@ var ProfileModal = ({
|
|
|
11338
11497
|
})
|
|
11339
11498
|
}
|
|
11340
11499
|
) }),
|
|
11341
|
-
/* @__PURE__ */ (0,
|
|
11342
|
-
activeTab === PROFILE_TAB_KEYS.PROFILE_ACCOUNTS ? /* @__PURE__ */ (0,
|
|
11343
|
-
/* @__PURE__ */ (0,
|
|
11500
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: "agg-profile-content min-w-0 flex-1", children: [
|
|
11501
|
+
activeTab === PROFILE_TAB_KEYS.PROFILE_ACCOUNTS ? /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: "agg-profile-accounts-tab flex flex-col gap-8", children: [
|
|
11502
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
11344
11503
|
AboutTab,
|
|
11345
11504
|
{
|
|
11346
11505
|
username: username != null ? username : user == null ? void 0 : user.username,
|
|
@@ -11354,7 +11513,7 @@ var ProfileModal = ({
|
|
|
11354
11513
|
avatarError: avatarTypeError
|
|
11355
11514
|
}
|
|
11356
11515
|
),
|
|
11357
|
-
/* @__PURE__ */ (0,
|
|
11516
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
11358
11517
|
AccountsWalletsTab,
|
|
11359
11518
|
{
|
|
11360
11519
|
socialAccounts: resolvedSocialAccounts,
|
|
@@ -11373,7 +11532,7 @@ var ProfileModal = ({
|
|
|
11373
11532
|
}
|
|
11374
11533
|
)
|
|
11375
11534
|
] }) : null,
|
|
11376
|
-
activeTab === PROFILE_TAB_KEYS.TRADING_ACCESS ? /* @__PURE__ */ (0,
|
|
11535
|
+
activeTab === PROFILE_TAB_KEYS.TRADING_ACCESS ? /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
11377
11536
|
TradingAccessTab,
|
|
11378
11537
|
{
|
|
11379
11538
|
venueAccounts: resolvedVenueAccounts,
|
|
@@ -11385,9 +11544,9 @@ var ProfileModal = ({
|
|
|
11385
11544
|
) : null
|
|
11386
11545
|
] })
|
|
11387
11546
|
] }) }),
|
|
11388
|
-
/* @__PURE__ */ (0,
|
|
11389
|
-
/* @__PURE__ */ (0,
|
|
11390
|
-
/* @__PURE__ */ (0,
|
|
11547
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsxs)(Modal.Footer, { classNames: { root: "agg-profile-modal-footer" }, children: [
|
|
11548
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(Button, { variant: "secondary", size: "large", onClick: handleCancel, className: "min-w-[120px]", children: "Cancel" }),
|
|
11549
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
11391
11550
|
Button,
|
|
11392
11551
|
{
|
|
11393
11552
|
variant: "primary",
|
|
@@ -11402,7 +11561,7 @@ var ProfileModal = ({
|
|
|
11402
11561
|
]
|
|
11403
11562
|
}
|
|
11404
11563
|
),
|
|
11405
|
-
/* @__PURE__ */ (0,
|
|
11564
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
11406
11565
|
ManageBetdexAccountModal,
|
|
11407
11566
|
{
|
|
11408
11567
|
userId: user == null ? void 0 : user.id,
|
|
@@ -11414,7 +11573,7 @@ var ProfileModal = ({
|
|
|
11414
11573
|
},
|
|
11415
11574
|
(_j = user == null ? void 0 : user.id) != null ? _j : "signed-out"
|
|
11416
11575
|
),
|
|
11417
|
-
/* @__PURE__ */ (0,
|
|
11576
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
11418
11577
|
ConnectKalshiModal,
|
|
11419
11578
|
{
|
|
11420
11579
|
open: open && isConnectKalshiModalOpen,
|
|
@@ -11429,33 +11588,33 @@ var ProfileModal = ({
|
|
|
11429
11588
|
ProfileModal.displayName = "ProfileModal";
|
|
11430
11589
|
|
|
11431
11590
|
// src/geo-block-modal/index.tsx
|
|
11432
|
-
var
|
|
11433
|
-
var
|
|
11434
|
-
var
|
|
11591
|
+
var import_hooks54 = require("@agg-build/hooks");
|
|
11592
|
+
var import_react30 = require("react");
|
|
11593
|
+
var import_jsx_runtime156 = require("react/jsx-runtime");
|
|
11435
11594
|
var GeoBlockModal = ({
|
|
11436
11595
|
open,
|
|
11437
11596
|
onOpenChange,
|
|
11438
11597
|
onConfirm,
|
|
11439
11598
|
classNames
|
|
11440
11599
|
}) => {
|
|
11441
|
-
const labels = (0,
|
|
11442
|
-
const handleConfirm = (0,
|
|
11600
|
+
const labels = (0, import_hooks54.useLabels)();
|
|
11601
|
+
const handleConfirm = (0, import_react30.useCallback)(() => {
|
|
11443
11602
|
onConfirm == null ? void 0 : onConfirm();
|
|
11444
11603
|
onOpenChange(false);
|
|
11445
11604
|
}, [onConfirm, onOpenChange]);
|
|
11446
|
-
return /* @__PURE__ */ (0,
|
|
11605
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
11447
11606
|
Modal,
|
|
11448
11607
|
{
|
|
11449
11608
|
open,
|
|
11450
11609
|
onOpenChange,
|
|
11451
11610
|
"aria-label": labels.trading.geoBlockModalAriaLabel,
|
|
11452
|
-
children: /* @__PURE__ */ (0,
|
|
11611
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)(
|
|
11453
11612
|
Modal.Container,
|
|
11454
11613
|
{
|
|
11455
11614
|
maxWidth: "480px",
|
|
11456
11615
|
classNames: { container: cn("!rounded-agg-2xl", classNames == null ? void 0 : classNames.container) },
|
|
11457
11616
|
children: [
|
|
11458
|
-
/* @__PURE__ */ (0,
|
|
11617
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
11459
11618
|
Modal.Header,
|
|
11460
11619
|
{
|
|
11461
11620
|
title: "",
|
|
@@ -11467,19 +11626,19 @@ var GeoBlockModal = ({
|
|
|
11467
11626
|
}
|
|
11468
11627
|
}
|
|
11469
11628
|
),
|
|
11470
|
-
/* @__PURE__ */ (0,
|
|
11471
|
-
/* @__PURE__ */ (0,
|
|
11629
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(Modal.Body, { classNames: { root: cn("!px-10 !pt-0 !pb-12", classNames == null ? void 0 : classNames.body) }, children: /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "flex flex-col items-center gap-8", children: [
|
|
11630
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
11472
11631
|
Icon,
|
|
11473
11632
|
{
|
|
11474
11633
|
name: "internet-security",
|
|
11475
11634
|
className: "h-[60px] w-[60px] text-agg-muted-foreground"
|
|
11476
11635
|
}
|
|
11477
11636
|
),
|
|
11478
|
-
/* @__PURE__ */ (0,
|
|
11479
|
-
/* @__PURE__ */ (0,
|
|
11480
|
-
/* @__PURE__ */ (0,
|
|
11637
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "flex flex-col items-center gap-3 text-center", children: [
|
|
11638
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("h2", { className: "text-agg-2xl font-agg-bold leading-agg-8 text-agg-foreground", children: labels.trading.geoBlockModalTitle }),
|
|
11639
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("p", { className: "text-agg-base font-agg-normal leading-agg-6 text-agg-foreground", children: labels.trading.geoBlockModalDescription })
|
|
11481
11640
|
] }),
|
|
11482
|
-
/* @__PURE__ */ (0,
|
|
11641
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
11483
11642
|
Button,
|
|
11484
11643
|
{
|
|
11485
11644
|
variant: "secondary",
|
|
@@ -11499,27 +11658,27 @@ var GeoBlockModal = ({
|
|
|
11499
11658
|
GeoBlockModal.displayName = "GeoBlockModal";
|
|
11500
11659
|
|
|
11501
11660
|
// src/geo-block-banner/index.tsx
|
|
11502
|
-
var
|
|
11503
|
-
var
|
|
11661
|
+
var import_hooks55 = require("@agg-build/hooks");
|
|
11662
|
+
var import_jsx_runtime157 = require("react/jsx-runtime");
|
|
11504
11663
|
var GeoBlockBanner = ({
|
|
11505
11664
|
venue,
|
|
11506
11665
|
termsUrl = AGG_TERMS_OF_SERVICE_URL,
|
|
11507
11666
|
className
|
|
11508
11667
|
}) => {
|
|
11509
|
-
const labels = (0,
|
|
11668
|
+
const labels = (0, import_hooks55.useLabels)();
|
|
11510
11669
|
const message = venue ? labels.trading.geoBlockVenueMessage(venue) : labels.trading.geoBlockGenericMessage;
|
|
11511
|
-
return /* @__PURE__ */ (0,
|
|
11670
|
+
return /* @__PURE__ */ (0, import_jsx_runtime157.jsxs)(
|
|
11512
11671
|
"div",
|
|
11513
11672
|
{
|
|
11514
11673
|
className: cn("flex items-center gap-5 rounded-agg-lg bg-agg-secondary-hover p-3", className),
|
|
11515
11674
|
role: "status",
|
|
11516
11675
|
children: [
|
|
11517
|
-
/* @__PURE__ */ (0,
|
|
11676
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("p", { className: "min-w-0 flex-1 text-agg-xs leading-agg-4 text-agg-foreground", children: [
|
|
11518
11677
|
message,
|
|
11519
|
-
/* @__PURE__ */ (0,
|
|
11678
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("a", { href: termsUrl, className: "underline", target: "_blank", rel: "noreferrer noopener", children: labels.trading.geoBlockTermsLink }),
|
|
11520
11679
|
labels.trading.geoBlockMessageSuffix
|
|
11521
11680
|
] }),
|
|
11522
|
-
/* @__PURE__ */ (0,
|
|
11681
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)(Icon, { name: "internet-security", className: "h-6 w-6 shrink-0 text-agg-muted-foreground" })
|
|
11523
11682
|
]
|
|
11524
11683
|
}
|
|
11525
11684
|
);
|
|
@@ -11527,9 +11686,9 @@ var GeoBlockBanner = ({
|
|
|
11527
11686
|
GeoBlockBanner.displayName = "GeoBlockBanner";
|
|
11528
11687
|
|
|
11529
11688
|
// src/kyc/shared-kyc-modal.tsx
|
|
11530
|
-
var
|
|
11531
|
-
var
|
|
11532
|
-
var
|
|
11689
|
+
var import_hooks56 = require("@agg-build/hooks");
|
|
11690
|
+
var Dialog8 = __toESM(require("@radix-ui/react-dialog"));
|
|
11691
|
+
var import_jsx_runtime158 = require("react/jsx-runtime");
|
|
11533
11692
|
var SharedKycModal = ({
|
|
11534
11693
|
open,
|
|
11535
11694
|
state = "initial",
|
|
@@ -11537,46 +11696,46 @@ var SharedKycModal = ({
|
|
|
11537
11696
|
onOpenChange,
|
|
11538
11697
|
onStartVerification
|
|
11539
11698
|
}) => {
|
|
11540
|
-
const labels = (0,
|
|
11699
|
+
const labels = (0, import_hooks56.useLabels)();
|
|
11541
11700
|
const modalLabels = labels.trading.sharedKyc.modal;
|
|
11542
11701
|
const isInitiating = state === "initiating";
|
|
11543
11702
|
const handleOpenChange = (nextOpen) => {
|
|
11544
11703
|
if (isInitiating && !nextOpen) return;
|
|
11545
11704
|
onOpenChange(nextOpen);
|
|
11546
11705
|
};
|
|
11547
|
-
return /* @__PURE__ */ (0,
|
|
11706
|
+
return /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(
|
|
11548
11707
|
Modal.Container,
|
|
11549
11708
|
{
|
|
11550
11709
|
maxWidth: "420px",
|
|
11551
11710
|
"aria-label": modalLabels.ariaLabel,
|
|
11552
11711
|
classNames: { container: "!rounded-agg-2xl" },
|
|
11553
11712
|
children: [
|
|
11554
|
-
/* @__PURE__ */ (0,
|
|
11555
|
-
|
|
11713
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)("div", { className: "flex h-14 shrink-0 items-center justify-end px-5", children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
|
|
11714
|
+
Dialog8.Close,
|
|
11556
11715
|
{
|
|
11557
11716
|
"aria-label": labels.common.close,
|
|
11558
11717
|
disabled: isInitiating,
|
|
11559
11718
|
className: "flex size-11 cursor-pointer items-center justify-center rounded-agg-full text-agg-foreground hover:bg-agg-secondary-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary disabled:cursor-not-allowed disabled:opacity-50",
|
|
11560
|
-
children: /* @__PURE__ */ (0,
|
|
11719
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Icon, { name: "close", size: "small", "aria-hidden": "true" })
|
|
11561
11720
|
}
|
|
11562
11721
|
) }),
|
|
11563
|
-
/* @__PURE__ */ (0,
|
|
11722
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Modal.Body, { classNames: { root: "!px-8 !pb-9 !pt-0" }, children: state === "success" ? /* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(
|
|
11564
11723
|
"div",
|
|
11565
11724
|
{
|
|
11566
11725
|
className: "flex flex-col items-center gap-6 text-center",
|
|
11567
11726
|
role: "status",
|
|
11568
11727
|
"aria-live": "polite",
|
|
11569
11728
|
children: [
|
|
11570
|
-
/* @__PURE__ */ (0,
|
|
11571
|
-
/* @__PURE__ */ (0,
|
|
11572
|
-
/* @__PURE__ */ (0,
|
|
11573
|
-
/* @__PURE__ */ (0,
|
|
11729
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)("div", { className: "flex size-12 items-center justify-center rounded-agg-full border border-agg-success bg-agg-success/10 text-agg-success", children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Icon, { name: "success-check", className: "size-5", "aria-hidden": "true" }) }),
|
|
11730
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
|
|
11731
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Dialog8.Title, { children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Typography, { as: "span", variant: "body-large-strong", children: modalLabels.successTitle }) }),
|
|
11732
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Dialog8.Description, { children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Typography, { as: "span", variant: "label", className: "text-pretty text-agg-foreground", children: modalLabels.successDescription }) })
|
|
11574
11733
|
] }),
|
|
11575
|
-
/* @__PURE__ */ (0,
|
|
11734
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Button, { variant: "secondary", size: "large", onClick: () => handleOpenChange(false), children: modalLabels.done })
|
|
11576
11735
|
]
|
|
11577
11736
|
}
|
|
11578
|
-
) : /* @__PURE__ */ (0,
|
|
11579
|
-
/* @__PURE__ */ (0,
|
|
11737
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime158.jsxs)("div", { className: "flex flex-col items-center gap-6 text-center", children: [
|
|
11738
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
|
|
11580
11739
|
Icon,
|
|
11581
11740
|
{
|
|
11582
11741
|
name: "user-trust",
|
|
@@ -11584,11 +11743,11 @@ var SharedKycModal = ({
|
|
|
11584
11743
|
"aria-hidden": "true"
|
|
11585
11744
|
}
|
|
11586
11745
|
),
|
|
11587
|
-
/* @__PURE__ */ (0,
|
|
11588
|
-
/* @__PURE__ */ (0,
|
|
11589
|
-
/* @__PURE__ */ (0,
|
|
11746
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
|
|
11747
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Dialog8.Title, { children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Typography, { as: "span", variant: "body-large-strong", children: state === "pending" ? modalLabels.pendingTitle : modalLabels.title }) }),
|
|
11748
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Dialog8.Description, { children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Typography, { as: "span", variant: "label", className: "text-pretty text-agg-foreground", children: state === "pending" ? modalLabels.pendingDescription : modalLabels.freeDescription }) })
|
|
11590
11749
|
] }),
|
|
11591
|
-
state === "error" || state === "pending" && errorMessage ? /* @__PURE__ */ (0,
|
|
11750
|
+
state === "error" || state === "pending" && errorMessage ? /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
|
|
11592
11751
|
InlineAlert,
|
|
11593
11752
|
{
|
|
11594
11753
|
tone: "error",
|
|
@@ -11596,8 +11755,8 @@ var SharedKycModal = ({
|
|
|
11596
11755
|
message: errorMessage || modalLabels.error
|
|
11597
11756
|
}
|
|
11598
11757
|
) : null,
|
|
11599
|
-
/* @__PURE__ */ (0,
|
|
11600
|
-
/* @__PURE__ */ (0,
|
|
11758
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsxs)("div", { className: "flex flex-col items-center gap-4", children: [
|
|
11759
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
|
|
11601
11760
|
Button,
|
|
11602
11761
|
{
|
|
11603
11762
|
variant: "primary",
|
|
@@ -11609,7 +11768,7 @@ var SharedKycModal = ({
|
|
|
11609
11768
|
children: state === "pending" ? modalLabels.checkStatus : modalLabels.startVerification
|
|
11610
11769
|
}
|
|
11611
11770
|
),
|
|
11612
|
-
/* @__PURE__ */ (0,
|
|
11771
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
|
|
11613
11772
|
Button,
|
|
11614
11773
|
{
|
|
11615
11774
|
variant: "tertiary",
|
|
@@ -11631,6 +11790,7 @@ SharedKycModal.displayName = "SharedKycModal";
|
|
|
11631
11790
|
CARD_NETWORK_OPTIONS,
|
|
11632
11791
|
ConnectAccountsStep,
|
|
11633
11792
|
ConnectKalshiModal,
|
|
11793
|
+
ConnectNovigModal,
|
|
11634
11794
|
ConnectOnchainModal,
|
|
11635
11795
|
ConnectProphetxModal,
|
|
11636
11796
|
DepositModal,
|