@retinalabsllc/zairusjs 5.1.8 → 5.1.15
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/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +96 -49
- package/dist/index.mjs +96 -49
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -566,6 +566,7 @@ declare const Banner: React.FC<BannerProps>;
|
|
|
566
566
|
interface UniversalOrganizationPageProps {
|
|
567
567
|
initialOrgName: string;
|
|
568
568
|
initialSlug: string;
|
|
569
|
+
initialUsername?: string;
|
|
569
570
|
orgId: string;
|
|
570
571
|
isReadOnly?: boolean;
|
|
571
572
|
slugPrefixUrl?: string;
|
|
@@ -1035,7 +1036,7 @@ interface UniversalTransactionPageProps {
|
|
|
1035
1036
|
activeTypeFilter: string;
|
|
1036
1037
|
onTypeFilterChange: (type: string) => void;
|
|
1037
1038
|
onReportTransaction?: (tx: UniversalTransaction) => void;
|
|
1038
|
-
onGenerateReceipt?: (tx: UniversalTransaction) => void
|
|
1039
|
+
onGenerateReceipt?: (tx: UniversalTransaction) => void | Promise<void>;
|
|
1039
1040
|
}
|
|
1040
1041
|
declare const UniversalTransactionPage: React.FC<UniversalTransactionPageProps>;
|
|
1041
1042
|
|
package/dist/index.d.ts
CHANGED
|
@@ -566,6 +566,7 @@ declare const Banner: React.FC<BannerProps>;
|
|
|
566
566
|
interface UniversalOrganizationPageProps {
|
|
567
567
|
initialOrgName: string;
|
|
568
568
|
initialSlug: string;
|
|
569
|
+
initialUsername?: string;
|
|
569
570
|
orgId: string;
|
|
570
571
|
isReadOnly?: boolean;
|
|
571
572
|
slugPrefixUrl?: string;
|
|
@@ -1035,7 +1036,7 @@ interface UniversalTransactionPageProps {
|
|
|
1035
1036
|
activeTypeFilter: string;
|
|
1036
1037
|
onTypeFilterChange: (type: string) => void;
|
|
1037
1038
|
onReportTransaction?: (tx: UniversalTransaction) => void;
|
|
1038
|
-
onGenerateReceipt?: (tx: UniversalTransaction) => void
|
|
1039
|
+
onGenerateReceipt?: (tx: UniversalTransaction) => void | Promise<void>;
|
|
1039
1040
|
}
|
|
1040
1041
|
declare const UniversalTransactionPage: React.FC<UniversalTransactionPageProps>;
|
|
1041
1042
|
|
package/dist/index.js
CHANGED
|
@@ -784,7 +784,7 @@ function AuthFormInner2({
|
|
|
784
784
|
className: "mt-0.5 w-4 h-4 bg-white border-neutral-300 rounded text-black focus:ring-black cursor-pointer",
|
|
785
785
|
required: true
|
|
786
786
|
}
|
|
787
|
-
), /* @__PURE__ */ import_react6.default.createElement("label", { htmlFor: "zairus-terms", className: "text-[11px] text-neutral-500 cursor-pointer leading-snug" }, "I agree to ", companyName, "'s ", /* @__PURE__ */ import_react6.default.createElement("a", { href: termsUrl, target: "_blank", rel: "noreferrer", className: "text-[#1f26d6]
|
|
787
|
+
), /* @__PURE__ */ import_react6.default.createElement("label", { htmlFor: "zairus-terms", className: "text-[11px] text-neutral-500 cursor-pointer leading-snug" }, "I agree to ", companyName, "'s ", /* @__PURE__ */ import_react6.default.createElement("a", { href: termsUrl, target: "_blank", rel: "noreferrer", className: "text-[#1f26d6] " }, "Terms of Service"), " and ", /* @__PURE__ */ import_react6.default.createElement("a", { href: privacyUrl, target: "_blank", rel: "noreferrer", className: "text-[#1f26d6] " }, "Privacy Policy"), "."))), /* @__PURE__ */ import_react6.default.createElement(
|
|
788
788
|
ThreeDActionButton,
|
|
789
789
|
{
|
|
790
790
|
type: "submit",
|
|
@@ -2361,6 +2361,7 @@ var InputSpinner4 = () => /* @__PURE__ */ import_react43.default.createElement("
|
|
|
2361
2361
|
var UniversalOrganizationPage = ({
|
|
2362
2362
|
initialOrgName,
|
|
2363
2363
|
initialSlug,
|
|
2364
|
+
initialUsername,
|
|
2364
2365
|
orgId,
|
|
2365
2366
|
isReadOnly = false,
|
|
2366
2367
|
slugPrefixUrl = ".aeona.eth",
|
|
@@ -2368,8 +2369,9 @@ var UniversalOrganizationPage = ({
|
|
|
2368
2369
|
onSaveConfiguration,
|
|
2369
2370
|
onCheckSlugAvailability
|
|
2370
2371
|
}) => {
|
|
2372
|
+
const resolvedInitialUsername = initialUsername || initialSlug;
|
|
2371
2373
|
const [web3Name, setWeb3Name] = (0, import_react43.useState)(initialOrgName);
|
|
2372
|
-
const [username, setUsername] = (0, import_react43.useState)(
|
|
2374
|
+
const [username, setUsername] = (0, import_react43.useState)(resolvedInitialUsername);
|
|
2373
2375
|
const [slug, setSlug] = (0, import_react43.useState)(initialSlug);
|
|
2374
2376
|
const [isCheckingSlug, setIsCheckingSlug] = (0, import_react43.useState)(false);
|
|
2375
2377
|
const [slugAvailable, setSlugAvailable] = (0, import_react43.useState)(null);
|
|
@@ -2377,8 +2379,8 @@ var UniversalOrganizationPage = ({
|
|
|
2377
2379
|
(0, import_react43.useEffect)(() => {
|
|
2378
2380
|
setWeb3Name(initialOrgName || "");
|
|
2379
2381
|
setSlug(initialSlug || "");
|
|
2380
|
-
setUsername(initialSlug || "");
|
|
2381
|
-
}, [initialOrgName, initialSlug]);
|
|
2382
|
+
setUsername(initialUsername || initialSlug || "");
|
|
2383
|
+
}, [initialOrgName, initialSlug, initialUsername]);
|
|
2382
2384
|
const handleWeb3NameChange = (val) => {
|
|
2383
2385
|
setWeb3Name(val.replace(/[^a-zA-Z0-9\s-]/g, "").substring(0, 50));
|
|
2384
2386
|
};
|
|
@@ -2426,7 +2428,7 @@ var UniversalOrganizationPage = ({
|
|
|
2426
2428
|
organizationId: orgId,
|
|
2427
2429
|
organizationName: web3Name !== initialOrgName ? web3Name : void 0,
|
|
2428
2430
|
slug: slug !== initialSlug ? slug : void 0,
|
|
2429
|
-
username: username !==
|
|
2431
|
+
username: username !== resolvedInitialUsername ? username : void 0
|
|
2430
2432
|
// Transmit extra input parameter cleanly
|
|
2431
2433
|
};
|
|
2432
2434
|
const responseData = await onSaveConfiguration(payload);
|
|
@@ -2442,9 +2444,9 @@ var UniversalOrganizationPage = ({
|
|
|
2442
2444
|
setIsSubmitting(false);
|
|
2443
2445
|
}
|
|
2444
2446
|
};
|
|
2445
|
-
const hasChanges = web3Name !== initialOrgName || slug !== initialSlug || username !==
|
|
2447
|
+
const hasChanges = web3Name !== initialOrgName || slug !== initialSlug || username !== resolvedInitialUsername;
|
|
2446
2448
|
const isSaveDisabled = isSubmitting || isReadOnly || isCheckingSlug || !hasChanges || web3Name.length < 3 || slug.length < 3 || username.length < 3 || slug !== initialSlug && slugAvailable === false;
|
|
2447
|
-
return /* @__PURE__ */ import_react43.default.createElement("div", { className: "flex flex-col gap-8 animate-in max-w-5xl rounded-2xl p-6 bg-white fade-in duration-300 " }, /* @__PURE__ */ import_react43.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react43.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react43.default.createElement("div", null, /* @__PURE__ */ import_react43.default.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "
|
|
2449
|
+
return /* @__PURE__ */ import_react43.default.createElement("div", { className: "flex flex-col gap-8 animate-in max-w-5xl rounded-2xl p-6 bg-white fade-in duration-300 " }, /* @__PURE__ */ import_react43.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react43.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react43.default.createElement("div", null, /* @__PURE__ */ import_react43.default.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Public Profile"), /* @__PURE__ */ import_react43.default.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your financial payment handle identifiers and global public cryptographic signature identity details.")), isReadOnly && /* @__PURE__ */ import_react43.default.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-50 text-neutral-500 rounded-full shrink-0" }, /* @__PURE__ */ import_react43.default.createElement(import_react44.HugeiconsIcon, { icon: import_core_free_icons11.CircleLock02Icon, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ import_react43.default.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ import_react43.default.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ import_react43.default.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ import_react43.default.createElement(
|
|
2448
2450
|
TextInput,
|
|
2449
2451
|
{
|
|
2450
2452
|
label: "Display Name",
|
|
@@ -2492,7 +2494,7 @@ var UniversalOrganizationPage = ({
|
|
|
2492
2494
|
onClick: () => {
|
|
2493
2495
|
setWeb3Name(initialOrgName);
|
|
2494
2496
|
setSlug(initialSlug);
|
|
2495
|
-
setUsername(
|
|
2497
|
+
setUsername(resolvedInitialUsername);
|
|
2496
2498
|
},
|
|
2497
2499
|
className: "text-[11px] tracking-widest text-neutral-500 hover:text-black transition-colors outline-none"
|
|
2498
2500
|
},
|
|
@@ -3918,6 +3920,7 @@ var UniversalTrashView = ({
|
|
|
3918
3920
|
// src/components/UniversalTransactionPage.tsx
|
|
3919
3921
|
var import_react72 = __toESM(require("react"));
|
|
3920
3922
|
var import_react73 = require("@hugeicons/react");
|
|
3923
|
+
var import_react_hot_toast10 = __toESM(require("react-hot-toast"));
|
|
3921
3924
|
var import_core_free_icons25 = require("@hugeicons/core-free-icons");
|
|
3922
3925
|
var PageSpinner6 = () => /* @__PURE__ */ import_react72.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react72.default.createElement(import_react73.HugeiconsIcon, { icon: import_core_free_icons25.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
3923
3926
|
var formatDate3 = (dateInput) => {
|
|
@@ -3951,6 +3954,7 @@ var UniversalTransactionPage = ({
|
|
|
3951
3954
|
onGenerateReceipt
|
|
3952
3955
|
}) => {
|
|
3953
3956
|
const [selectedTransaction, setSelectedTransaction] = (0, import_react72.useState)(null);
|
|
3957
|
+
const [isGeneratingReceipt, setIsGeneratingReceipt] = (0, import_react72.useState)(false);
|
|
3954
3958
|
const [localSearchQuery, setLocalSearchQuery] = (0, import_react72.useState)(searchQuery);
|
|
3955
3959
|
const [isTyping, setIsTyping] = (0, import_react72.useState)(false);
|
|
3956
3960
|
const [isDirectionModalOpen, setIsDirectionModalOpen] = (0, import_react72.useState)(false);
|
|
@@ -3987,6 +3991,18 @@ var UniversalTransactionPage = ({
|
|
|
3987
3991
|
if (tx.metadata?.description) return tx.metadata.description;
|
|
3988
3992
|
return tx.type === "CARD_TRANSACTION" ? "Card Transaction" : "Wallet Transaction";
|
|
3989
3993
|
};
|
|
3994
|
+
const handleGenerateReceipt = async () => {
|
|
3995
|
+
if (!onGenerateReceipt || !selectedTransaction) return;
|
|
3996
|
+
setIsGeneratingReceipt(true);
|
|
3997
|
+
try {
|
|
3998
|
+
await onGenerateReceipt(selectedTransaction);
|
|
3999
|
+
import_react_hot_toast10.default.success("Receipt generated successfully.");
|
|
4000
|
+
} catch (error) {
|
|
4001
|
+
import_react_hot_toast10.default.error("Failed to generate receipt.");
|
|
4002
|
+
} finally {
|
|
4003
|
+
setIsGeneratingReceipt(false);
|
|
4004
|
+
}
|
|
4005
|
+
};
|
|
3990
4006
|
const isListLoading = isLoading || isTyping;
|
|
3991
4007
|
const primaryBaseShadow = `inset 0 1.5px 0 0 rgba(255, 255, 255, 0.3), inset 0 -2px 0 0 rgba(0, 0, 0, 0.5), 0 3px 0 0 #0c0c0c, 0 6px 10px rgba(0, 0, 0, 0.3)`;
|
|
3992
4008
|
const primaryHoverShadow = `inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35), inset 0 -2px 0 0 rgba(0, 0, 0, 0.5), 0 4px 0 0 #0c0c0c, 0 8px 12px rgba(0, 0, 0, 0.35)`;
|
|
@@ -4041,37 +4057,59 @@ var UniversalTransactionPage = ({
|
|
|
4041
4057
|
className: "p-2 border border-neutral-100 rounded-full bg-white text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
4042
4058
|
},
|
|
4043
4059
|
/* @__PURE__ */ import_react72.default.createElement(import_react73.HugeiconsIcon, { icon: import_core_free_icons25.ArrowRight01Icon, size: 14 })
|
|
4044
|
-
)))))), selectedTransaction && /* @__PURE__ */ import_react72.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ import_react72.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ import_react72.default.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Details"), /* @__PURE__ */ import_react72.default.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react72.default.createElement(import_react73.HugeiconsIcon, { icon: import_core_free_icons25.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react72.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: `w-12 h-12 rounded-full
|
|
4060
|
+
)))))), selectedTransaction && /* @__PURE__ */ import_react72.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ import_react72.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ import_react72.default.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Details"), /* @__PURE__ */ import_react72.default.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react72.default.createElement(import_react73.HugeiconsIcon, { icon: import_core_free_icons25.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react72.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: `w-12 h-12 rounded-full flex items-center justify-center mb-4 ${selectedTransaction.direction === "CREDIT" ? "bg-neutral-100 text-neutral-6000" : "bg-neutral-100 text-neutral-600"}` }, /* @__PURE__ */ import_react72.default.createElement(import_react73.HugeiconsIcon, { icon: selectedTransaction.direction === "CREDIT" ? import_core_free_icons25.ArrowDownRight01Icon : import_core_free_icons25.ArrowUpRight01Icon, size: 20 })), /* @__PURE__ */ import_react72.default.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedTransaction.direction === "CREDIT" ? "+" : "-", selectedTransaction.amount, " ", selectedTransaction.currency), /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50" }, selectedTransaction.status), selectedTransaction.type === "WALLET_TRANSACTION" && /* @__PURE__ */ import_react72.default.createElement(
|
|
4061
|
+
"a",
|
|
4062
|
+
{
|
|
4063
|
+
href: `https://basescan.org/tx/${selectedTransaction.reference}`,
|
|
4064
|
+
target: "_blank",
|
|
4065
|
+
rel: "noopener noreferrer",
|
|
4066
|
+
className: "text-[11px] text-[#1f26d6] mt-4 transition-colors tracking-wide"
|
|
4067
|
+
},
|
|
4068
|
+
"View in block explorer"
|
|
4069
|
+
)), /* @__PURE__ */ import_react72.default.createElement("div", { className: "grid grid-cols-1 gap-y-8 gap-x-4 mb-10 mt-6" }, /* @__PURE__ */ import_react72.default.createElement("div", null, /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Reference ID"), /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[13px] text-black break-all" }, selectedTransaction.reference)), /* @__PURE__ */ import_react72.default.createElement("div", null, /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Date & Time"), /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[13px] text-black" }, formatDate3(selectedTransaction.createdAt), " at ", formatTime(selectedTransaction.createdAt))), /* @__PURE__ */ import_react72.default.createElement("div", null, /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Transaction Type"), /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[13px] text-black capitalize" }, selectedTransaction.type.replace("_", " ").toLowerCase())), /* @__PURE__ */ import_react72.default.createElement("div", null, /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Flow Direction"), /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[13px] text-black capitalize" }, selectedTransaction.direction.toLowerCase())), selectedTransaction.metadata && Object.entries(selectedTransaction.metadata).map(([key, value]) => {
|
|
4070
|
+
if (value === null || value === void 0 || typeof value === "object") return null;
|
|
4071
|
+
const formattedKey = key.replace(/([A-Z])/g, " $1").replace(/^./, (str) => str.toUpperCase());
|
|
4072
|
+
return /* @__PURE__ */ import_react72.default.createElement("div", { key }, /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, formattedKey), /* @__PURE__ */ import_react72.default.createElement("span", { className: "text-[13px] text-black break-all" }, String(value)));
|
|
4073
|
+
})), /* @__PURE__ */ import_react72.default.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ import_react72.default.createElement(
|
|
4045
4074
|
"button",
|
|
4046
4075
|
{
|
|
4047
|
-
onClick:
|
|
4048
|
-
|
|
4049
|
-
|
|
4076
|
+
onClick: handleGenerateReceipt,
|
|
4077
|
+
disabled: isGeneratingReceipt,
|
|
4078
|
+
className: "relative w-full flex items-center justify-center py-2 rounded-full bg-neutral-950 text-white transition-all duration-150 select-none outline-none disabled:opacity-70 disabled:cursor-not-allowed",
|
|
4079
|
+
style: !isGeneratingReceipt ? { boxShadow: primaryBaseShadow } : {},
|
|
4050
4080
|
onMouseEnter: (e) => {
|
|
4051
|
-
|
|
4052
|
-
|
|
4081
|
+
if (!isGeneratingReceipt) {
|
|
4082
|
+
e.currentTarget.style.boxShadow = primaryHoverShadow;
|
|
4083
|
+
e.currentTarget.style.transform = "translateY(-1px)";
|
|
4084
|
+
}
|
|
4053
4085
|
},
|
|
4054
4086
|
onMouseLeave: (e) => {
|
|
4055
|
-
|
|
4056
|
-
|
|
4087
|
+
if (!isGeneratingReceipt) {
|
|
4088
|
+
e.currentTarget.style.boxShadow = primaryBaseShadow;
|
|
4089
|
+
e.currentTarget.style.transform = "translateY(0px)";
|
|
4090
|
+
}
|
|
4057
4091
|
},
|
|
4058
4092
|
onMouseDown: (e) => {
|
|
4059
|
-
|
|
4060
|
-
|
|
4093
|
+
if (!isGeneratingReceipt) {
|
|
4094
|
+
e.currentTarget.style.boxShadow = primaryActiveShadow;
|
|
4095
|
+
e.currentTarget.style.transform = "translateY(2px)";
|
|
4096
|
+
}
|
|
4061
4097
|
},
|
|
4062
4098
|
onMouseUp: (e) => {
|
|
4063
|
-
|
|
4099
|
+
if (!isGeneratingReceipt) {
|
|
4100
|
+
e.currentTarget.style.transform = "translateY(-1px)";
|
|
4101
|
+
}
|
|
4064
4102
|
}
|
|
4065
4103
|
},
|
|
4066
4104
|
/* @__PURE__ */ import_react72.default.createElement("span", { className: "absolute inset-0 rounded-full bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none" }),
|
|
4067
|
-
/* @__PURE__ */ import_react72.default.createElement("span", { className: "relative z-10 text-[13px] tracking-wide" }, "
|
|
4105
|
+
/* @__PURE__ */ import_react72.default.createElement("span", { className: "relative z-10 flex items-center justify-center gap-2 text-[13px] tracking-wide" }, isGeneratingReceipt ? /* @__PURE__ */ import_react72.default.createElement(import_react73.HugeiconsIcon, { icon: import_core_free_icons25.Loading03Icon, size: 14, className: "animate-spin" }) : null, isGeneratingReceipt ? "Generating..." : "Generate Receipt")
|
|
4068
4106
|
), /* @__PURE__ */ import_react72.default.createElement(
|
|
4069
4107
|
"button",
|
|
4070
4108
|
{
|
|
4071
|
-
onClick: () =>
|
|
4072
|
-
className: "w-full flex items-center justify-center py-2 rounded-full
|
|
4109
|
+
onClick: () => onReportTransaction && onReportTransaction(selectedTransaction),
|
|
4110
|
+
className: "w-full flex items-center justify-center py-2 rounded-full border border-neutral-200 text-black hover:bg-neutral-50 transition-colors outline-none text-[13px] tracking-wide"
|
|
4073
4111
|
},
|
|
4074
|
-
"
|
|
4112
|
+
"Report Transaction"
|
|
4075
4113
|
))))), isDirectionModalOpen && /* @__PURE__ */ import_react72.default.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setIsDirectionModalOpen(false) }), /* @__PURE__ */ import_react72.default.createElement("div", { ref: directionDropdownRef, className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "p-6 text-center w-full" }, /* @__PURE__ */ import_react72.default.createElement("h3", { className: "text-[14px] text-black tracking-tight" }, "Payment Type")), /* @__PURE__ */ import_react72.default.createElement("div", { className: "w-full flex flex-col pl-2 pr-2" }, ["ALL", "CREDIT", "DEBIT"].map((option) => /* @__PURE__ */ import_react72.default.createElement(
|
|
4076
4114
|
"button",
|
|
4077
4115
|
{
|
|
@@ -4216,7 +4254,8 @@ var UniversalHomeView = ({
|
|
|
4216
4254
|
{
|
|
4217
4255
|
...transactionsProps,
|
|
4218
4256
|
hideControls: true,
|
|
4219
|
-
hideBalanceAmounts: isBalanceHidden
|
|
4257
|
+
hideBalanceAmounts: isBalanceHidden,
|
|
4258
|
+
hidePagination: true
|
|
4220
4259
|
}
|
|
4221
4260
|
)));
|
|
4222
4261
|
};
|
|
@@ -4294,7 +4333,15 @@ var UniversalWalletPage = ({
|
|
|
4294
4333
|
} }), /* @__PURE__ */ import_react76.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, showToast && /* @__PURE__ */ import_react76.default.createElement("div", { className: "absolute top-4 left-1/2 -translate-x-1/2 z-50 bg-neutral-900 text-white px-5 py-2.5 rounded-full text-[12px] font-medium tracking-wide shadow-xl animate-in slide-in-from-top-4 fade-in duration-200 pointer-events-none whitespace-nowrap" }, "Address copied to clipboard"), /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ import_react76.default.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Wallet Details"), /* @__PURE__ */ import_react76.default.createElement("button", { onClick: () => {
|
|
4295
4334
|
setSelectedWallet(null);
|
|
4296
4335
|
setShowToast(false);
|
|
4297
|
-
}, className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react76.default.createElement(import_react77.HugeiconsIcon, { icon: import_core_free_icons27.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-2" }, /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ import_react76.default.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14 mb-4" }), /* @__PURE__ */ import_react76.default.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 font-medium ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedWallet.balance, " ", selectedWallet.currency), /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50 uppercase mt-1" }, selectedWallet.network, " NETWORK")), renderQrCode && /* @__PURE__ */ import_react76.default.createElement("div", { className: "w-full flex justify-center mb-
|
|
4336
|
+
}, className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react76.default.createElement(import_react77.HugeiconsIcon, { icon: import_core_free_icons27.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-2" }, /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ import_react76.default.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14 mb-4" }), /* @__PURE__ */ import_react76.default.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 font-medium ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedWallet.balance, " ", selectedWallet.currency), /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50 uppercase mt-1" }, selectedWallet.network, " NETWORK")), renderQrCode && /* @__PURE__ */ import_react76.default.createElement("div", { className: "w-full flex justify-center mb-6" }, renderQrCode(selectedWallet)), /* @__PURE__ */ import_react76.default.createElement("div", { className: "mb-5" }, /* @__PURE__ */ import_react76.default.createElement(
|
|
4337
|
+
Banner,
|
|
4338
|
+
{
|
|
4339
|
+
type: "warning",
|
|
4340
|
+
title: "Important Deposit Warning",
|
|
4341
|
+
message: `Please send exactly ${selectedWallet.currency} to this address, and ensure you select the ${selectedWallet.network} network. Sending a different coin or using the wrong network will result in the permanent loss of your funds.`,
|
|
4342
|
+
isDismissible: false
|
|
4343
|
+
}
|
|
4344
|
+
)), /* @__PURE__ */ import_react76.default.createElement("div", { className: "grid grid-cols-1 gap-y-6 gap-x-4 mb-10" }, /* @__PURE__ */ import_react76.default.createElement("div", null, /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Address"), /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[13px] text-black break-all font-medium" }, selectedWallet.address)), /* @__PURE__ */ import_react76.default.createElement("div", null, /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Name"), /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[13px] text-black" }, selectedWallet.name))), /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ import_react76.default.createElement(
|
|
4298
4345
|
"button",
|
|
4299
4346
|
{
|
|
4300
4347
|
disabled: isGeneratingStatement,
|
|
@@ -4439,7 +4486,7 @@ var Stagger = ({ steps, currentStep }) => {
|
|
|
4439
4486
|
|
|
4440
4487
|
// src/components/UniversalRegistrationFlow.tsx
|
|
4441
4488
|
var import_react88 = __toESM(require("react"));
|
|
4442
|
-
var
|
|
4489
|
+
var import_react_hot_toast11 = __toESM(require("react-hot-toast"));
|
|
4443
4490
|
var import_react89 = require("@hugeicons/react");
|
|
4444
4491
|
var import_core_free_icons32 = require("@hugeicons/core-free-icons");
|
|
4445
4492
|
var MACRO_STEPS = ["Details", "Documents", "Review", "Submit"];
|
|
@@ -4641,7 +4688,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4641
4688
|
if (data.appStatus === "QUEUED" || data.appStatus === "REJECTED") setMacroStep(0);
|
|
4642
4689
|
}
|
|
4643
4690
|
}).catch(() => {
|
|
4644
|
-
|
|
4691
|
+
import_react_hot_toast11.default.error("Uh oh! Something went wrong while loading.");
|
|
4645
4692
|
}).finally(() => setIsBooting(false));
|
|
4646
4693
|
}, [applicationId, type, apiEndpoint]);
|
|
4647
4694
|
const saveProgress = async (newFormData = formData, newFormState = formState, newMacro = macroStep) => {
|
|
@@ -4653,11 +4700,11 @@ var UniversalRegistrationFlow = ({
|
|
|
4653
4700
|
setIsAborting(true);
|
|
4654
4701
|
const data = await baseApi("abort");
|
|
4655
4702
|
if (data.success) {
|
|
4656
|
-
|
|
4703
|
+
import_react_hot_toast11.default.success("Application aborted.");
|
|
4657
4704
|
setAppStatus("DRAFT");
|
|
4658
4705
|
setMacroStep(0);
|
|
4659
4706
|
setIsAbortModalOpen(false);
|
|
4660
|
-
} else
|
|
4707
|
+
} else import_react_hot_toast11.default.error(data.error || "Uh oh! Something went wrong.");
|
|
4661
4708
|
setIsAborting(false);
|
|
4662
4709
|
};
|
|
4663
4710
|
const handleBack = () => {
|
|
@@ -4700,7 +4747,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4700
4747
|
setIsAnalyzingNature(true);
|
|
4701
4748
|
const data = await baseApi("analyze_nature", { description: formData.businessDesc });
|
|
4702
4749
|
if (data.success) setSuggestedNature(data.data);
|
|
4703
|
-
else
|
|
4750
|
+
else import_react_hot_toast11.default.error(data.error || "Uh oh! Something went wrong.");
|
|
4704
4751
|
setIsAnalyzingNature(false);
|
|
4705
4752
|
};
|
|
4706
4753
|
const pollNameCheckJob = async (jobId) => {
|
|
@@ -4709,7 +4756,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4709
4756
|
setNameCheckResult(poll.data.result);
|
|
4710
4757
|
setIsCheckingName(false);
|
|
4711
4758
|
} else if (poll.success && poll.data.status === "error") {
|
|
4712
|
-
|
|
4759
|
+
import_react_hot_toast11.default.error(poll.data.error || "Uh oh! Something went wrong.");
|
|
4713
4760
|
setIsCheckingName(false);
|
|
4714
4761
|
} else setTimeout(() => pollNameCheckJob(jobId), 3e3);
|
|
4715
4762
|
};
|
|
@@ -4727,7 +4774,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4727
4774
|
const data = await baseApi("check_name_start", { name: nameToCheck, lineOfBusiness: formData.natureOfBusiness?.specificLabel });
|
|
4728
4775
|
if (data.success && data.data.jobId) pollNameCheckJob(data.data.jobId);
|
|
4729
4776
|
else {
|
|
4730
|
-
|
|
4777
|
+
import_react_hot_toast11.default.error(data.error || "Uh oh! Something went wrong.");
|
|
4731
4778
|
setIsCheckingName(false);
|
|
4732
4779
|
}
|
|
4733
4780
|
};
|
|
@@ -4752,7 +4799,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4752
4799
|
throw new Error(data.error || "Failed to secure upload URL.");
|
|
4753
4800
|
}
|
|
4754
4801
|
} catch (error) {
|
|
4755
|
-
|
|
4802
|
+
import_react_hot_toast11.default.error(error.message);
|
|
4756
4803
|
} finally {
|
|
4757
4804
|
if (optType === "other1") {
|
|
4758
4805
|
setIsUploadingOther1(false);
|
|
@@ -4803,7 +4850,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4803
4850
|
const maxAllowed = Math.max(0, 100 - otherSharesSum);
|
|
4804
4851
|
if (numValue > maxAllowed) {
|
|
4805
4852
|
numValue = maxAllowed;
|
|
4806
|
-
|
|
4853
|
+
import_react_hot_toast11.default.error(`Total shares cannot exceed 100%. Remaining: ${maxAllowed}%`, { id: "share-limit" });
|
|
4807
4854
|
} else if (numValue < 0) numValue = 0;
|
|
4808
4855
|
updated[index] = { ...updated[index], [key]: numValue.toString() };
|
|
4809
4856
|
}
|
|
@@ -4834,7 +4881,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4834
4881
|
updatedMembers[memberIndex] = { ...updatedMembers[memberIndex], idExtractedData: data.data, idFileUrl: uploadData.data.fileUrl, idMetadata: { fileName: file.name, contentType: file.type, fileSizeInBytes: file.size } };
|
|
4835
4882
|
setFormData({ ...formData, members: updatedMembers });
|
|
4836
4883
|
saveProgress({ ...formData, members: updatedMembers });
|
|
4837
|
-
} else
|
|
4884
|
+
} else import_react_hot_toast11.default.error(data.error || "Uh oh! Something went wrong.");
|
|
4838
4885
|
} else {
|
|
4839
4886
|
if (docType === "passport") setGlobalUploadingPassport(true);
|
|
4840
4887
|
else setGlobalUploadingSignature(true);
|
|
@@ -4851,10 +4898,10 @@ var UniversalRegistrationFlow = ({
|
|
|
4851
4898
|
}
|
|
4852
4899
|
setFormData({ ...formData, members: updatedMembers });
|
|
4853
4900
|
saveProgress({ ...formData, members: updatedMembers });
|
|
4854
|
-
} else
|
|
4901
|
+
} else import_react_hot_toast11.default.error(`Failed to secure upload URL for ${docType}.`);
|
|
4855
4902
|
}
|
|
4856
4903
|
} catch (error) {
|
|
4857
|
-
|
|
4904
|
+
import_react_hot_toast11.default.error(error.message);
|
|
4858
4905
|
} finally {
|
|
4859
4906
|
if (docType === "id") setGlobalExtractingId(false);
|
|
4860
4907
|
else if (docType === "passport") setGlobalUploadingPassport(false);
|
|
@@ -4903,7 +4950,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4903
4950
|
setFormData(updatedForm);
|
|
4904
4951
|
saveProgress(updatedForm);
|
|
4905
4952
|
} else {
|
|
4906
|
-
|
|
4953
|
+
import_react_hot_toast11.default.error(data.error || "Uh oh! Something went wrong.");
|
|
4907
4954
|
setAiTasks([{ id: "1", label: "Document Scanned", status: "success" }, { id: "2", label: "Extraction Failed", status: "error" }]);
|
|
4908
4955
|
}
|
|
4909
4956
|
} else {
|
|
@@ -4923,10 +4970,10 @@ var UniversalRegistrationFlow = ({
|
|
|
4923
4970
|
approveSection("signatureApproved", updatedForm);
|
|
4924
4971
|
}
|
|
4925
4972
|
setFormData(updatedForm);
|
|
4926
|
-
} else
|
|
4973
|
+
} else import_react_hot_toast11.default.error(data.error || `Failed to upload ${docType}.`);
|
|
4927
4974
|
}
|
|
4928
4975
|
} catch (error) {
|
|
4929
|
-
|
|
4976
|
+
import_react_hot_toast11.default.error(error.message);
|
|
4930
4977
|
} finally {
|
|
4931
4978
|
if (docType === "id") {
|
|
4932
4979
|
setGlobalExtractingId(false);
|
|
@@ -5009,10 +5056,10 @@ var UniversalRegistrationFlow = ({
|
|
|
5009
5056
|
}
|
|
5010
5057
|
const data = await baseApi("submit", finalJsonPayload);
|
|
5011
5058
|
if (data.success) {
|
|
5012
|
-
|
|
5059
|
+
import_react_hot_toast11.default.success("Application Submitted!");
|
|
5013
5060
|
onRedirectToApplication(applicationId);
|
|
5014
5061
|
} else {
|
|
5015
|
-
|
|
5062
|
+
import_react_hot_toast11.default.error(data.error || "Uh oh! Something went wrong.");
|
|
5016
5063
|
setIsSubmitting(false);
|
|
5017
5064
|
}
|
|
5018
5065
|
};
|
|
@@ -5061,7 +5108,7 @@ var UniversalRegistrationFlow = ({
|
|
|
5061
5108
|
|
|
5062
5109
|
// src/components/UniversalDeveloperSettings.tsx
|
|
5063
5110
|
var import_react90 = __toESM(require("react"));
|
|
5064
|
-
var
|
|
5111
|
+
var import_react_hot_toast12 = require("react-hot-toast");
|
|
5065
5112
|
var import_react91 = require("@hugeicons/react");
|
|
5066
5113
|
var import_core_free_icons33 = require("@hugeicons/core-free-icons");
|
|
5067
5114
|
var ButtonSpinner5 = () => /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, size: 16, className: "animate-spin text-current" });
|
|
@@ -5108,13 +5155,13 @@ SECRET_KEY="${secKey}"
|
|
|
5108
5155
|
if (res.success && res.data) {
|
|
5109
5156
|
setPublicKey(res.data.publicKey);
|
|
5110
5157
|
downloadEnvironmentFile(res.data.publicKey, res.data.secretKey);
|
|
5111
|
-
|
|
5158
|
+
import_react_hot_toast12.toast.success("Keys generated. Check your downloads folder.");
|
|
5112
5159
|
setIsRollModalOpen(false);
|
|
5113
5160
|
} else {
|
|
5114
|
-
|
|
5161
|
+
import_react_hot_toast12.toast.error(res.error || "Uh oh! Something went wrong.");
|
|
5115
5162
|
}
|
|
5116
5163
|
} catch (error) {
|
|
5117
|
-
|
|
5164
|
+
import_react_hot_toast12.toast.error("Uh oh! Something went wrong.");
|
|
5118
5165
|
} finally {
|
|
5119
5166
|
setIsGenerating(false);
|
|
5120
5167
|
}
|
|
@@ -5127,12 +5174,12 @@ SECRET_KEY="${secKey}"
|
|
|
5127
5174
|
const res = await onSaveWebhook(webhookUrl);
|
|
5128
5175
|
if (res.success && res.data) {
|
|
5129
5176
|
setWebhookUrl(res.data.webhookUrl || "");
|
|
5130
|
-
|
|
5177
|
+
import_react_hot_toast12.toast.success("Webhook URL updated.");
|
|
5131
5178
|
} else {
|
|
5132
|
-
|
|
5179
|
+
import_react_hot_toast12.toast.error(res.error || "Uh oh! Something went wrong.");
|
|
5133
5180
|
}
|
|
5134
5181
|
} catch (error) {
|
|
5135
|
-
|
|
5182
|
+
import_react_hot_toast12.toast.error("Uh oh! Something went wrong.");
|
|
5136
5183
|
} finally {
|
|
5137
5184
|
setIsSavingWebhook(false);
|
|
5138
5185
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -689,7 +689,7 @@ function AuthFormInner2({
|
|
|
689
689
|
className: "mt-0.5 w-4 h-4 bg-white border-neutral-300 rounded text-black focus:ring-black cursor-pointer",
|
|
690
690
|
required: true
|
|
691
691
|
}
|
|
692
|
-
), /* @__PURE__ */ React5.createElement("label", { htmlFor: "zairus-terms", className: "text-[11px] text-neutral-500 cursor-pointer leading-snug" }, "I agree to ", companyName, "'s ", /* @__PURE__ */ React5.createElement("a", { href: termsUrl, target: "_blank", rel: "noreferrer", className: "text-[#1f26d6]
|
|
692
|
+
), /* @__PURE__ */ React5.createElement("label", { htmlFor: "zairus-terms", className: "text-[11px] text-neutral-500 cursor-pointer leading-snug" }, "I agree to ", companyName, "'s ", /* @__PURE__ */ React5.createElement("a", { href: termsUrl, target: "_blank", rel: "noreferrer", className: "text-[#1f26d6] " }, "Terms of Service"), " and ", /* @__PURE__ */ React5.createElement("a", { href: privacyUrl, target: "_blank", rel: "noreferrer", className: "text-[#1f26d6] " }, "Privacy Policy"), "."))), /* @__PURE__ */ React5.createElement(
|
|
693
693
|
ThreeDActionButton,
|
|
694
694
|
{
|
|
695
695
|
type: "submit",
|
|
@@ -2280,6 +2280,7 @@ var InputSpinner4 = () => /* @__PURE__ */ React29.createElement("svg", { classNa
|
|
|
2280
2280
|
var UniversalOrganizationPage = ({
|
|
2281
2281
|
initialOrgName,
|
|
2282
2282
|
initialSlug,
|
|
2283
|
+
initialUsername,
|
|
2283
2284
|
orgId,
|
|
2284
2285
|
isReadOnly = false,
|
|
2285
2286
|
slugPrefixUrl = ".aeona.eth",
|
|
@@ -2287,8 +2288,9 @@ var UniversalOrganizationPage = ({
|
|
|
2287
2288
|
onSaveConfiguration,
|
|
2288
2289
|
onCheckSlugAvailability
|
|
2289
2290
|
}) => {
|
|
2291
|
+
const resolvedInitialUsername = initialUsername || initialSlug;
|
|
2290
2292
|
const [web3Name, setWeb3Name] = useState17(initialOrgName);
|
|
2291
|
-
const [username, setUsername] = useState17(
|
|
2293
|
+
const [username, setUsername] = useState17(resolvedInitialUsername);
|
|
2292
2294
|
const [slug, setSlug] = useState17(initialSlug);
|
|
2293
2295
|
const [isCheckingSlug, setIsCheckingSlug] = useState17(false);
|
|
2294
2296
|
const [slugAvailable, setSlugAvailable] = useState17(null);
|
|
@@ -2296,8 +2298,8 @@ var UniversalOrganizationPage = ({
|
|
|
2296
2298
|
useEffect13(() => {
|
|
2297
2299
|
setWeb3Name(initialOrgName || "");
|
|
2298
2300
|
setSlug(initialSlug || "");
|
|
2299
|
-
setUsername(initialSlug || "");
|
|
2300
|
-
}, [initialOrgName, initialSlug]);
|
|
2301
|
+
setUsername(initialUsername || initialSlug || "");
|
|
2302
|
+
}, [initialOrgName, initialSlug, initialUsername]);
|
|
2301
2303
|
const handleWeb3NameChange = (val) => {
|
|
2302
2304
|
setWeb3Name(val.replace(/[^a-zA-Z0-9\s-]/g, "").substring(0, 50));
|
|
2303
2305
|
};
|
|
@@ -2345,7 +2347,7 @@ var UniversalOrganizationPage = ({
|
|
|
2345
2347
|
organizationId: orgId,
|
|
2346
2348
|
organizationName: web3Name !== initialOrgName ? web3Name : void 0,
|
|
2347
2349
|
slug: slug !== initialSlug ? slug : void 0,
|
|
2348
|
-
username: username !==
|
|
2350
|
+
username: username !== resolvedInitialUsername ? username : void 0
|
|
2349
2351
|
// Transmit extra input parameter cleanly
|
|
2350
2352
|
};
|
|
2351
2353
|
const responseData = await onSaveConfiguration(payload);
|
|
@@ -2361,9 +2363,9 @@ var UniversalOrganizationPage = ({
|
|
|
2361
2363
|
setIsSubmitting(false);
|
|
2362
2364
|
}
|
|
2363
2365
|
};
|
|
2364
|
-
const hasChanges = web3Name !== initialOrgName || slug !== initialSlug || username !==
|
|
2366
|
+
const hasChanges = web3Name !== initialOrgName || slug !== initialSlug || username !== resolvedInitialUsername;
|
|
2365
2367
|
const isSaveDisabled = isSubmitting || isReadOnly || isCheckingSlug || !hasChanges || web3Name.length < 3 || slug.length < 3 || username.length < 3 || slug !== initialSlug && slugAvailable === false;
|
|
2366
|
-
return /* @__PURE__ */ React29.createElement("div", { className: "flex flex-col gap-8 animate-in max-w-5xl rounded-2xl p-6 bg-white fade-in duration-300 " }, /* @__PURE__ */ React29.createElement(ManagedToaster, null), /* @__PURE__ */ React29.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React29.createElement("div", null, /* @__PURE__ */ React29.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "
|
|
2368
|
+
return /* @__PURE__ */ React29.createElement("div", { className: "flex flex-col gap-8 animate-in max-w-5xl rounded-2xl p-6 bg-white fade-in duration-300 " }, /* @__PURE__ */ React29.createElement(ManagedToaster, null), /* @__PURE__ */ React29.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React29.createElement("div", null, /* @__PURE__ */ React29.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Public Profile"), /* @__PURE__ */ React29.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your financial payment handle identifiers and global public cryptographic signature identity details.")), isReadOnly && /* @__PURE__ */ React29.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-50 text-neutral-500 rounded-full shrink-0" }, /* @__PURE__ */ React29.createElement(HugeiconsIcon15, { icon: CircleLock02Icon, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ React29.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ React29.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ React29.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ React29.createElement(
|
|
2367
2369
|
TextInput,
|
|
2368
2370
|
{
|
|
2369
2371
|
label: "Display Name",
|
|
@@ -2411,7 +2413,7 @@ var UniversalOrganizationPage = ({
|
|
|
2411
2413
|
onClick: () => {
|
|
2412
2414
|
setWeb3Name(initialOrgName);
|
|
2413
2415
|
setSlug(initialSlug);
|
|
2414
|
-
setUsername(
|
|
2416
|
+
setUsername(resolvedInitialUsername);
|
|
2415
2417
|
},
|
|
2416
2418
|
className: "text-[11px] tracking-widest text-neutral-500 hover:text-black transition-colors outline-none"
|
|
2417
2419
|
},
|
|
@@ -3901,6 +3903,7 @@ var UniversalTrashView = ({
|
|
|
3901
3903
|
// src/components/UniversalTransactionPage.tsx
|
|
3902
3904
|
import React44, { useState as useState28, useEffect as useEffect19, useRef as useRef12 } from "react";
|
|
3903
3905
|
import { HugeiconsIcon as HugeiconsIcon29 } from "@hugeicons/react";
|
|
3906
|
+
import toast9 from "react-hot-toast";
|
|
3904
3907
|
import {
|
|
3905
3908
|
ArrowLeft01Icon as ArrowLeft01Icon10,
|
|
3906
3909
|
ArrowRight01Icon as ArrowRight01Icon10,
|
|
@@ -3944,6 +3947,7 @@ var UniversalTransactionPage = ({
|
|
|
3944
3947
|
onGenerateReceipt
|
|
3945
3948
|
}) => {
|
|
3946
3949
|
const [selectedTransaction, setSelectedTransaction] = useState28(null);
|
|
3950
|
+
const [isGeneratingReceipt, setIsGeneratingReceipt] = useState28(false);
|
|
3947
3951
|
const [localSearchQuery, setLocalSearchQuery] = useState28(searchQuery);
|
|
3948
3952
|
const [isTyping, setIsTyping] = useState28(false);
|
|
3949
3953
|
const [isDirectionModalOpen, setIsDirectionModalOpen] = useState28(false);
|
|
@@ -3980,6 +3984,18 @@ var UniversalTransactionPage = ({
|
|
|
3980
3984
|
if (tx.metadata?.description) return tx.metadata.description;
|
|
3981
3985
|
return tx.type === "CARD_TRANSACTION" ? "Card Transaction" : "Wallet Transaction";
|
|
3982
3986
|
};
|
|
3987
|
+
const handleGenerateReceipt = async () => {
|
|
3988
|
+
if (!onGenerateReceipt || !selectedTransaction) return;
|
|
3989
|
+
setIsGeneratingReceipt(true);
|
|
3990
|
+
try {
|
|
3991
|
+
await onGenerateReceipt(selectedTransaction);
|
|
3992
|
+
toast9.success("Receipt generated successfully.");
|
|
3993
|
+
} catch (error) {
|
|
3994
|
+
toast9.error("Failed to generate receipt.");
|
|
3995
|
+
} finally {
|
|
3996
|
+
setIsGeneratingReceipt(false);
|
|
3997
|
+
}
|
|
3998
|
+
};
|
|
3983
3999
|
const isListLoading = isLoading || isTyping;
|
|
3984
4000
|
const primaryBaseShadow = `inset 0 1.5px 0 0 rgba(255, 255, 255, 0.3), inset 0 -2px 0 0 rgba(0, 0, 0, 0.5), 0 3px 0 0 #0c0c0c, 0 6px 10px rgba(0, 0, 0, 0.3)`;
|
|
3985
4001
|
const primaryHoverShadow = `inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35), inset 0 -2px 0 0 rgba(0, 0, 0, 0.5), 0 4px 0 0 #0c0c0c, 0 8px 12px rgba(0, 0, 0, 0.35)`;
|
|
@@ -4034,37 +4050,59 @@ var UniversalTransactionPage = ({
|
|
|
4034
4050
|
className: "p-2 border border-neutral-100 rounded-full bg-white text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
4035
4051
|
},
|
|
4036
4052
|
/* @__PURE__ */ React44.createElement(HugeiconsIcon29, { icon: ArrowRight01Icon10, size: 14 })
|
|
4037
|
-
)))))), selectedTransaction && /* @__PURE__ */ React44.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React44.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ React44.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Details"), /* @__PURE__ */ React44.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon29, { icon: CancelCircleIcon2, size: 18 }))), /* @__PURE__ */ React44.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ React44.createElement("div", { className: `w-12 h-12 rounded-full
|
|
4053
|
+
)))))), selectedTransaction && /* @__PURE__ */ React44.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React44.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ React44.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Details"), /* @__PURE__ */ React44.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon29, { icon: CancelCircleIcon2, size: 18 }))), /* @__PURE__ */ React44.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ React44.createElement("div", { className: `w-12 h-12 rounded-full flex items-center justify-center mb-4 ${selectedTransaction.direction === "CREDIT" ? "bg-neutral-100 text-neutral-6000" : "bg-neutral-100 text-neutral-600"}` }, /* @__PURE__ */ React44.createElement(HugeiconsIcon29, { icon: selectedTransaction.direction === "CREDIT" ? ArrowDownRight01Icon : ArrowUpRight01Icon, size: 20 })), /* @__PURE__ */ React44.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedTransaction.direction === "CREDIT" ? "+" : "-", selectedTransaction.amount, " ", selectedTransaction.currency), /* @__PURE__ */ React44.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50" }, selectedTransaction.status), selectedTransaction.type === "WALLET_TRANSACTION" && /* @__PURE__ */ React44.createElement(
|
|
4054
|
+
"a",
|
|
4055
|
+
{
|
|
4056
|
+
href: `https://basescan.org/tx/${selectedTransaction.reference}`,
|
|
4057
|
+
target: "_blank",
|
|
4058
|
+
rel: "noopener noreferrer",
|
|
4059
|
+
className: "text-[11px] text-[#1f26d6] mt-4 transition-colors tracking-wide"
|
|
4060
|
+
},
|
|
4061
|
+
"View in block explorer"
|
|
4062
|
+
)), /* @__PURE__ */ React44.createElement("div", { className: "grid grid-cols-1 gap-y-8 gap-x-4 mb-10 mt-6" }, /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Reference ID"), /* @__PURE__ */ React44.createElement("span", { className: "text-[13px] text-black break-all" }, selectedTransaction.reference)), /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Date & Time"), /* @__PURE__ */ React44.createElement("span", { className: "text-[13px] text-black" }, formatDate3(selectedTransaction.createdAt), " at ", formatTime(selectedTransaction.createdAt))), /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Transaction Type"), /* @__PURE__ */ React44.createElement("span", { className: "text-[13px] text-black capitalize" }, selectedTransaction.type.replace("_", " ").toLowerCase())), /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Flow Direction"), /* @__PURE__ */ React44.createElement("span", { className: "text-[13px] text-black capitalize" }, selectedTransaction.direction.toLowerCase())), selectedTransaction.metadata && Object.entries(selectedTransaction.metadata).map(([key, value]) => {
|
|
4063
|
+
if (value === null || value === void 0 || typeof value === "object") return null;
|
|
4064
|
+
const formattedKey = key.replace(/([A-Z])/g, " $1").replace(/^./, (str) => str.toUpperCase());
|
|
4065
|
+
return /* @__PURE__ */ React44.createElement("div", { key }, /* @__PURE__ */ React44.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, formattedKey), /* @__PURE__ */ React44.createElement("span", { className: "text-[13px] text-black break-all" }, String(value)));
|
|
4066
|
+
})), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React44.createElement(
|
|
4038
4067
|
"button",
|
|
4039
4068
|
{
|
|
4040
|
-
onClick:
|
|
4041
|
-
|
|
4042
|
-
|
|
4069
|
+
onClick: handleGenerateReceipt,
|
|
4070
|
+
disabled: isGeneratingReceipt,
|
|
4071
|
+
className: "relative w-full flex items-center justify-center py-2 rounded-full bg-neutral-950 text-white transition-all duration-150 select-none outline-none disabled:opacity-70 disabled:cursor-not-allowed",
|
|
4072
|
+
style: !isGeneratingReceipt ? { boxShadow: primaryBaseShadow } : {},
|
|
4043
4073
|
onMouseEnter: (e) => {
|
|
4044
|
-
|
|
4045
|
-
|
|
4074
|
+
if (!isGeneratingReceipt) {
|
|
4075
|
+
e.currentTarget.style.boxShadow = primaryHoverShadow;
|
|
4076
|
+
e.currentTarget.style.transform = "translateY(-1px)";
|
|
4077
|
+
}
|
|
4046
4078
|
},
|
|
4047
4079
|
onMouseLeave: (e) => {
|
|
4048
|
-
|
|
4049
|
-
|
|
4080
|
+
if (!isGeneratingReceipt) {
|
|
4081
|
+
e.currentTarget.style.boxShadow = primaryBaseShadow;
|
|
4082
|
+
e.currentTarget.style.transform = "translateY(0px)";
|
|
4083
|
+
}
|
|
4050
4084
|
},
|
|
4051
4085
|
onMouseDown: (e) => {
|
|
4052
|
-
|
|
4053
|
-
|
|
4086
|
+
if (!isGeneratingReceipt) {
|
|
4087
|
+
e.currentTarget.style.boxShadow = primaryActiveShadow;
|
|
4088
|
+
e.currentTarget.style.transform = "translateY(2px)";
|
|
4089
|
+
}
|
|
4054
4090
|
},
|
|
4055
4091
|
onMouseUp: (e) => {
|
|
4056
|
-
|
|
4092
|
+
if (!isGeneratingReceipt) {
|
|
4093
|
+
e.currentTarget.style.transform = "translateY(-1px)";
|
|
4094
|
+
}
|
|
4057
4095
|
}
|
|
4058
4096
|
},
|
|
4059
4097
|
/* @__PURE__ */ React44.createElement("span", { className: "absolute inset-0 rounded-full bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none" }),
|
|
4060
|
-
/* @__PURE__ */ React44.createElement("span", { className: "relative z-10 text-[13px] tracking-wide" }, "
|
|
4098
|
+
/* @__PURE__ */ React44.createElement("span", { className: "relative z-10 flex items-center justify-center gap-2 text-[13px] tracking-wide" }, isGeneratingReceipt ? /* @__PURE__ */ React44.createElement(HugeiconsIcon29, { icon: Loading03Icon15, size: 14, className: "animate-spin" }) : null, isGeneratingReceipt ? "Generating..." : "Generate Receipt")
|
|
4061
4099
|
), /* @__PURE__ */ React44.createElement(
|
|
4062
4100
|
"button",
|
|
4063
4101
|
{
|
|
4064
|
-
onClick: () =>
|
|
4065
|
-
className: "w-full flex items-center justify-center py-2 rounded-full
|
|
4102
|
+
onClick: () => onReportTransaction && onReportTransaction(selectedTransaction),
|
|
4103
|
+
className: "w-full flex items-center justify-center py-2 rounded-full border border-neutral-200 text-black hover:bg-neutral-50 transition-colors outline-none text-[13px] tracking-wide"
|
|
4066
4104
|
},
|
|
4067
|
-
"
|
|
4105
|
+
"Report Transaction"
|
|
4068
4106
|
))))), isDirectionModalOpen && /* @__PURE__ */ React44.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React44.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setIsDirectionModalOpen(false) }), /* @__PURE__ */ React44.createElement("div", { ref: directionDropdownRef, className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React44.createElement("div", { className: "p-6 text-center w-full" }, /* @__PURE__ */ React44.createElement("h3", { className: "text-[14px] text-black tracking-tight" }, "Payment Type")), /* @__PURE__ */ React44.createElement("div", { className: "w-full flex flex-col pl-2 pr-2" }, ["ALL", "CREDIT", "DEBIT"].map((option) => /* @__PURE__ */ React44.createElement(
|
|
4069
4107
|
"button",
|
|
4070
4108
|
{
|
|
@@ -4209,7 +4247,8 @@ var UniversalHomeView = ({
|
|
|
4209
4247
|
{
|
|
4210
4248
|
...transactionsProps,
|
|
4211
4249
|
hideControls: true,
|
|
4212
|
-
hideBalanceAmounts: isBalanceHidden
|
|
4250
|
+
hideBalanceAmounts: isBalanceHidden,
|
|
4251
|
+
hidePagination: true
|
|
4213
4252
|
}
|
|
4214
4253
|
)));
|
|
4215
4254
|
};
|
|
@@ -4291,7 +4330,15 @@ var UniversalWalletPage = ({
|
|
|
4291
4330
|
} }), /* @__PURE__ */ React46.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, showToast && /* @__PURE__ */ React46.createElement("div", { className: "absolute top-4 left-1/2 -translate-x-1/2 z-50 bg-neutral-900 text-white px-5 py-2.5 rounded-full text-[12px] font-medium tracking-wide shadow-xl animate-in slide-in-from-top-4 fade-in duration-200 pointer-events-none whitespace-nowrap" }, "Address copied to clipboard"), /* @__PURE__ */ React46.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React46.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Wallet Details"), /* @__PURE__ */ React46.createElement("button", { onClick: () => {
|
|
4292
4331
|
setSelectedWallet(null);
|
|
4293
4332
|
setShowToast(false);
|
|
4294
|
-
}, className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React46.createElement(HugeiconsIcon31, { icon: CancelCircleIcon3, size: 18 }))), /* @__PURE__ */ React46.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-2" }, /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React46.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14 mb-4" }), /* @__PURE__ */ React46.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 font-medium ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedWallet.balance, " ", selectedWallet.currency), /* @__PURE__ */ React46.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50 uppercase mt-1" }, selectedWallet.network, " NETWORK")), renderQrCode && /* @__PURE__ */ React46.createElement("div", { className: "w-full flex justify-center mb-
|
|
4333
|
+
}, className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React46.createElement(HugeiconsIcon31, { icon: CancelCircleIcon3, size: 18 }))), /* @__PURE__ */ React46.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-2" }, /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React46.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14 mb-4" }), /* @__PURE__ */ React46.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 font-medium ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedWallet.balance, " ", selectedWallet.currency), /* @__PURE__ */ React46.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50 uppercase mt-1" }, selectedWallet.network, " NETWORK")), renderQrCode && /* @__PURE__ */ React46.createElement("div", { className: "w-full flex justify-center mb-6" }, renderQrCode(selectedWallet)), /* @__PURE__ */ React46.createElement("div", { className: "mb-5" }, /* @__PURE__ */ React46.createElement(
|
|
4334
|
+
Banner,
|
|
4335
|
+
{
|
|
4336
|
+
type: "warning",
|
|
4337
|
+
title: "Important Deposit Warning",
|
|
4338
|
+
message: `Please send exactly ${selectedWallet.currency} to this address, and ensure you select the ${selectedWallet.network} network. Sending a different coin or using the wrong network will result in the permanent loss of your funds.`,
|
|
4339
|
+
isDismissible: false
|
|
4340
|
+
}
|
|
4341
|
+
)), /* @__PURE__ */ React46.createElement("div", { className: "grid grid-cols-1 gap-y-6 gap-x-4 mb-10" }, /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Address"), /* @__PURE__ */ React46.createElement("span", { className: "text-[13px] text-black break-all font-medium" }, selectedWallet.address)), /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Name"), /* @__PURE__ */ React46.createElement("span", { className: "text-[13px] text-black" }, selectedWallet.name))), /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React46.createElement(
|
|
4295
4342
|
"button",
|
|
4296
4343
|
{
|
|
4297
4344
|
disabled: isGeneratingStatement,
|
|
@@ -4436,7 +4483,7 @@ var Stagger = ({ steps, currentStep }) => {
|
|
|
4436
4483
|
|
|
4437
4484
|
// src/components/UniversalRegistrationFlow.tsx
|
|
4438
4485
|
import React53, { useState as useState32, useEffect as useEffect21, useRef as useRef13 } from "react";
|
|
4439
|
-
import
|
|
4486
|
+
import toast10 from "react-hot-toast";
|
|
4440
4487
|
import { HugeiconsIcon as HugeiconsIcon36 } from "@hugeicons/react";
|
|
4441
4488
|
import { CheckmarkBadge01Icon as CheckmarkBadge01Icon2, Upload01Icon as Upload01Icon3, Loading03Icon as Loading03Icon18, PencilEdit01Icon as PencilEdit01Icon2, Delete02Icon as Delete02Icon3, SignatureIcon, IdentificationIcon, ArrowLeft01Icon as ArrowLeft01Icon11, HourglassIcon } from "@hugeicons/core-free-icons";
|
|
4442
4489
|
var MACRO_STEPS = ["Details", "Documents", "Review", "Submit"];
|
|
@@ -4638,7 +4685,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4638
4685
|
if (data.appStatus === "QUEUED" || data.appStatus === "REJECTED") setMacroStep(0);
|
|
4639
4686
|
}
|
|
4640
4687
|
}).catch(() => {
|
|
4641
|
-
|
|
4688
|
+
toast10.error("Uh oh! Something went wrong while loading.");
|
|
4642
4689
|
}).finally(() => setIsBooting(false));
|
|
4643
4690
|
}, [applicationId, type, apiEndpoint]);
|
|
4644
4691
|
const saveProgress = async (newFormData = formData, newFormState = formState, newMacro = macroStep) => {
|
|
@@ -4650,11 +4697,11 @@ var UniversalRegistrationFlow = ({
|
|
|
4650
4697
|
setIsAborting(true);
|
|
4651
4698
|
const data = await baseApi("abort");
|
|
4652
4699
|
if (data.success) {
|
|
4653
|
-
|
|
4700
|
+
toast10.success("Application aborted.");
|
|
4654
4701
|
setAppStatus("DRAFT");
|
|
4655
4702
|
setMacroStep(0);
|
|
4656
4703
|
setIsAbortModalOpen(false);
|
|
4657
|
-
} else
|
|
4704
|
+
} else toast10.error(data.error || "Uh oh! Something went wrong.");
|
|
4658
4705
|
setIsAborting(false);
|
|
4659
4706
|
};
|
|
4660
4707
|
const handleBack = () => {
|
|
@@ -4697,7 +4744,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4697
4744
|
setIsAnalyzingNature(true);
|
|
4698
4745
|
const data = await baseApi("analyze_nature", { description: formData.businessDesc });
|
|
4699
4746
|
if (data.success) setSuggestedNature(data.data);
|
|
4700
|
-
else
|
|
4747
|
+
else toast10.error(data.error || "Uh oh! Something went wrong.");
|
|
4701
4748
|
setIsAnalyzingNature(false);
|
|
4702
4749
|
};
|
|
4703
4750
|
const pollNameCheckJob = async (jobId) => {
|
|
@@ -4706,7 +4753,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4706
4753
|
setNameCheckResult(poll.data.result);
|
|
4707
4754
|
setIsCheckingName(false);
|
|
4708
4755
|
} else if (poll.success && poll.data.status === "error") {
|
|
4709
|
-
|
|
4756
|
+
toast10.error(poll.data.error || "Uh oh! Something went wrong.");
|
|
4710
4757
|
setIsCheckingName(false);
|
|
4711
4758
|
} else setTimeout(() => pollNameCheckJob(jobId), 3e3);
|
|
4712
4759
|
};
|
|
@@ -4724,7 +4771,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4724
4771
|
const data = await baseApi("check_name_start", { name: nameToCheck, lineOfBusiness: formData.natureOfBusiness?.specificLabel });
|
|
4725
4772
|
if (data.success && data.data.jobId) pollNameCheckJob(data.data.jobId);
|
|
4726
4773
|
else {
|
|
4727
|
-
|
|
4774
|
+
toast10.error(data.error || "Uh oh! Something went wrong.");
|
|
4728
4775
|
setIsCheckingName(false);
|
|
4729
4776
|
}
|
|
4730
4777
|
};
|
|
@@ -4749,7 +4796,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4749
4796
|
throw new Error(data.error || "Failed to secure upload URL.");
|
|
4750
4797
|
}
|
|
4751
4798
|
} catch (error) {
|
|
4752
|
-
|
|
4799
|
+
toast10.error(error.message);
|
|
4753
4800
|
} finally {
|
|
4754
4801
|
if (optType === "other1") {
|
|
4755
4802
|
setIsUploadingOther1(false);
|
|
@@ -4800,7 +4847,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4800
4847
|
const maxAllowed = Math.max(0, 100 - otherSharesSum);
|
|
4801
4848
|
if (numValue > maxAllowed) {
|
|
4802
4849
|
numValue = maxAllowed;
|
|
4803
|
-
|
|
4850
|
+
toast10.error(`Total shares cannot exceed 100%. Remaining: ${maxAllowed}%`, { id: "share-limit" });
|
|
4804
4851
|
} else if (numValue < 0) numValue = 0;
|
|
4805
4852
|
updated[index] = { ...updated[index], [key]: numValue.toString() };
|
|
4806
4853
|
}
|
|
@@ -4831,7 +4878,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4831
4878
|
updatedMembers[memberIndex] = { ...updatedMembers[memberIndex], idExtractedData: data.data, idFileUrl: uploadData.data.fileUrl, idMetadata: { fileName: file.name, contentType: file.type, fileSizeInBytes: file.size } };
|
|
4832
4879
|
setFormData({ ...formData, members: updatedMembers });
|
|
4833
4880
|
saveProgress({ ...formData, members: updatedMembers });
|
|
4834
|
-
} else
|
|
4881
|
+
} else toast10.error(data.error || "Uh oh! Something went wrong.");
|
|
4835
4882
|
} else {
|
|
4836
4883
|
if (docType === "passport") setGlobalUploadingPassport(true);
|
|
4837
4884
|
else setGlobalUploadingSignature(true);
|
|
@@ -4848,10 +4895,10 @@ var UniversalRegistrationFlow = ({
|
|
|
4848
4895
|
}
|
|
4849
4896
|
setFormData({ ...formData, members: updatedMembers });
|
|
4850
4897
|
saveProgress({ ...formData, members: updatedMembers });
|
|
4851
|
-
} else
|
|
4898
|
+
} else toast10.error(`Failed to secure upload URL for ${docType}.`);
|
|
4852
4899
|
}
|
|
4853
4900
|
} catch (error) {
|
|
4854
|
-
|
|
4901
|
+
toast10.error(error.message);
|
|
4855
4902
|
} finally {
|
|
4856
4903
|
if (docType === "id") setGlobalExtractingId(false);
|
|
4857
4904
|
else if (docType === "passport") setGlobalUploadingPassport(false);
|
|
@@ -4900,7 +4947,7 @@ var UniversalRegistrationFlow = ({
|
|
|
4900
4947
|
setFormData(updatedForm);
|
|
4901
4948
|
saveProgress(updatedForm);
|
|
4902
4949
|
} else {
|
|
4903
|
-
|
|
4950
|
+
toast10.error(data.error || "Uh oh! Something went wrong.");
|
|
4904
4951
|
setAiTasks([{ id: "1", label: "Document Scanned", status: "success" }, { id: "2", label: "Extraction Failed", status: "error" }]);
|
|
4905
4952
|
}
|
|
4906
4953
|
} else {
|
|
@@ -4920,10 +4967,10 @@ var UniversalRegistrationFlow = ({
|
|
|
4920
4967
|
approveSection("signatureApproved", updatedForm);
|
|
4921
4968
|
}
|
|
4922
4969
|
setFormData(updatedForm);
|
|
4923
|
-
} else
|
|
4970
|
+
} else toast10.error(data.error || `Failed to upload ${docType}.`);
|
|
4924
4971
|
}
|
|
4925
4972
|
} catch (error) {
|
|
4926
|
-
|
|
4973
|
+
toast10.error(error.message);
|
|
4927
4974
|
} finally {
|
|
4928
4975
|
if (docType === "id") {
|
|
4929
4976
|
setGlobalExtractingId(false);
|
|
@@ -5006,10 +5053,10 @@ var UniversalRegistrationFlow = ({
|
|
|
5006
5053
|
}
|
|
5007
5054
|
const data = await baseApi("submit", finalJsonPayload);
|
|
5008
5055
|
if (data.success) {
|
|
5009
|
-
|
|
5056
|
+
toast10.success("Application Submitted!");
|
|
5010
5057
|
onRedirectToApplication(applicationId);
|
|
5011
5058
|
} else {
|
|
5012
|
-
|
|
5059
|
+
toast10.error(data.error || "Uh oh! Something went wrong.");
|
|
5013
5060
|
setIsSubmitting(false);
|
|
5014
5061
|
}
|
|
5015
5062
|
};
|
|
@@ -5058,7 +5105,7 @@ var UniversalRegistrationFlow = ({
|
|
|
5058
5105
|
|
|
5059
5106
|
// src/components/UniversalDeveloperSettings.tsx
|
|
5060
5107
|
import React54, { useState as useState33, useEffect as useEffect22 } from "react";
|
|
5061
|
-
import { toast as
|
|
5108
|
+
import { toast as toast11 } from "react-hot-toast";
|
|
5062
5109
|
import { HugeiconsIcon as HugeiconsIcon37 } from "@hugeicons/react";
|
|
5063
5110
|
import { Loading03Icon as Loading03Icon19, CircleLock02Icon as CircleLock02Icon5 } from "@hugeicons/core-free-icons";
|
|
5064
5111
|
var ButtonSpinner5 = () => /* @__PURE__ */ React54.createElement(HugeiconsIcon37, { icon: Loading03Icon19, size: 16, className: "animate-spin text-current" });
|
|
@@ -5105,13 +5152,13 @@ SECRET_KEY="${secKey}"
|
|
|
5105
5152
|
if (res.success && res.data) {
|
|
5106
5153
|
setPublicKey(res.data.publicKey);
|
|
5107
5154
|
downloadEnvironmentFile(res.data.publicKey, res.data.secretKey);
|
|
5108
|
-
|
|
5155
|
+
toast11.success("Keys generated. Check your downloads folder.");
|
|
5109
5156
|
setIsRollModalOpen(false);
|
|
5110
5157
|
} else {
|
|
5111
|
-
|
|
5158
|
+
toast11.error(res.error || "Uh oh! Something went wrong.");
|
|
5112
5159
|
}
|
|
5113
5160
|
} catch (error) {
|
|
5114
|
-
|
|
5161
|
+
toast11.error("Uh oh! Something went wrong.");
|
|
5115
5162
|
} finally {
|
|
5116
5163
|
setIsGenerating(false);
|
|
5117
5164
|
}
|
|
@@ -5124,12 +5171,12 @@ SECRET_KEY="${secKey}"
|
|
|
5124
5171
|
const res = await onSaveWebhook(webhookUrl);
|
|
5125
5172
|
if (res.success && res.data) {
|
|
5126
5173
|
setWebhookUrl(res.data.webhookUrl || "");
|
|
5127
|
-
|
|
5174
|
+
toast11.success("Webhook URL updated.");
|
|
5128
5175
|
} else {
|
|
5129
|
-
|
|
5176
|
+
toast11.error(res.error || "Uh oh! Something went wrong.");
|
|
5130
5177
|
}
|
|
5131
5178
|
} catch (error) {
|
|
5132
|
-
|
|
5179
|
+
toast11.error("Uh oh! Something went wrong.");
|
|
5133
5180
|
} finally {
|
|
5134
5181
|
setIsSavingWebhook(false);
|
|
5135
5182
|
}
|