@loafmarkets/ui 0.1.348 → 0.1.350
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 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +46 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +46 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -586,6 +586,8 @@ type LoginPopupProps = {
|
|
|
586
586
|
onSubmitReferralCode?: (code: string) => Promise<void> | void;
|
|
587
587
|
/** Handler invoked when the user selects "Sign in with Wallet". */
|
|
588
588
|
onWalletLogin?: () => Promise<void> | void;
|
|
589
|
+
/** Handler invoked when the user selects "Sign in with Passkey". When omitted, the button is hidden. */
|
|
590
|
+
onPasskeyLogin?: () => Promise<void> | void;
|
|
589
591
|
/** Current KYC status — used to show "Resume Verification" when previously started. */
|
|
590
592
|
kycStatus?: 'NOT_STARTED' | 'PENDING' | 'ON_HOLD' | 'VERIFIED' | 'REJECTED';
|
|
591
593
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -586,6 +586,8 @@ type LoginPopupProps = {
|
|
|
586
586
|
onSubmitReferralCode?: (code: string) => Promise<void> | void;
|
|
587
587
|
/** Handler invoked when the user selects "Sign in with Wallet". */
|
|
588
588
|
onWalletLogin?: () => Promise<void> | void;
|
|
589
|
+
/** Handler invoked when the user selects "Sign in with Passkey". When omitted, the button is hidden. */
|
|
590
|
+
onPasskeyLogin?: () => Promise<void> | void;
|
|
589
591
|
/** Current KYC status — used to show "Resume Verification" when previously started. */
|
|
590
592
|
kycStatus?: 'NOT_STARTED' | 'PENDING' | 'ON_HOLD' | 'VERIFIED' | 'REJECTED';
|
|
591
593
|
};
|
package/dist/index.js
CHANGED
|
@@ -6445,6 +6445,7 @@ var LoginPopup = ({
|
|
|
6445
6445
|
onClose,
|
|
6446
6446
|
onOpenEarlyAccess,
|
|
6447
6447
|
onWalletLogin,
|
|
6448
|
+
onPasskeyLogin,
|
|
6448
6449
|
isAuthenticated,
|
|
6449
6450
|
currentUser,
|
|
6450
6451
|
onSendEmailCode,
|
|
@@ -6555,6 +6556,20 @@ var LoginPopup = ({
|
|
|
6555
6556
|
onOpenEarlyAccess();
|
|
6556
6557
|
}
|
|
6557
6558
|
};
|
|
6559
|
+
const handlePasskeyLogin = async () => {
|
|
6560
|
+
if (!onPasskeyLogin) return;
|
|
6561
|
+
setError("");
|
|
6562
|
+
setLoading(true);
|
|
6563
|
+
try {
|
|
6564
|
+
await onPasskeyLogin();
|
|
6565
|
+
onClose();
|
|
6566
|
+
} catch (err) {
|
|
6567
|
+
const message = err instanceof Error ? err.message : "Passkey sign-in failed";
|
|
6568
|
+
setError(message);
|
|
6569
|
+
} finally {
|
|
6570
|
+
setLoading(false);
|
|
6571
|
+
}
|
|
6572
|
+
};
|
|
6558
6573
|
const handleEmailClick = (signUp = false) => {
|
|
6559
6574
|
setIsSignUp(signUp);
|
|
6560
6575
|
setView("email");
|
|
@@ -6812,6 +6827,10 @@ var LoginPopup = ({
|
|
|
6812
6827
|
/* @__PURE__ */ jsxRuntime.jsxs(LoginButton, { onClick: handleWalletLogin, children: [
|
|
6813
6828
|
/* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 18v1c0 1.1-.9 2-2 2H5c-1.11 0-2-.9-2-2V5c0-1.1.89-2 2-2h14c1.1 0 2 .9 2 2v1h-9c-1.11 0-2 .9-2 2v8c0 1.1.89 2 2 2h9zm-9-2h10V8H12v8zm4-2.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z" }) }),
|
|
6814
6829
|
"Sign in with Wallet"
|
|
6830
|
+
] }),
|
|
6831
|
+
onPasskeyLogin && /* @__PURE__ */ jsxRuntime.jsxs(LoginButton, { onClick: handlePasskeyLogin, disabled: loading, children: [
|
|
6832
|
+
/* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 2C9.79 2 8 3.79 8 6v4H6c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2h-2V6c0-2.21-1.79-4-4-4zm-2 4c0-1.1.9-2 2-2s2 .9 2 2v4h-4V6zm2 9a2 2 0 100 4 2 2 0 000-4z" }) }),
|
|
6833
|
+
"Sign in with Passkey"
|
|
6815
6834
|
] })
|
|
6816
6835
|
] }),
|
|
6817
6836
|
/* @__PURE__ */ jsxRuntime.jsx("div", { style: { textAlign: "center", marginTop: "0.5rem", marginBottom: "1rem" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -13807,7 +13826,9 @@ function PortfolioActivityPanel({
|
|
|
13807
13826
|
}
|
|
13808
13827
|
};
|
|
13809
13828
|
const mergedOrderHistory = React5.useMemo(() => {
|
|
13810
|
-
if (showSubscriptionsTab || offeringOrders.length === 0)
|
|
13829
|
+
if (showSubscriptionsTab || offeringOrders.length === 0) {
|
|
13830
|
+
return [...orderHistory].sort((a, b) => b.createdAt - a.createdAt);
|
|
13831
|
+
}
|
|
13811
13832
|
const mapped = offeringOrders.map((o, i) => ({
|
|
13812
13833
|
id: o.ipoOrderId ?? -(i + 1),
|
|
13813
13834
|
propertyId: 0,
|
|
@@ -13828,6 +13849,22 @@ function PortfolioActivityPanel({
|
|
|
13828
13849
|
}));
|
|
13829
13850
|
return [...orderHistory, ...mapped].sort((a, b) => b.createdAt - a.createdAt);
|
|
13830
13851
|
}, [showSubscriptionsTab, offeringOrders, orderHistory]);
|
|
13852
|
+
const sortedOpenOrders = React5.useMemo(
|
|
13853
|
+
() => [...openOrders].sort((a, b) => b.createdAt - a.createdAt),
|
|
13854
|
+
[openOrders]
|
|
13855
|
+
);
|
|
13856
|
+
const sortedOfferingOrders = React5.useMemo(
|
|
13857
|
+
() => [...offeringOrders].sort((a, b) => b.createdAt - a.createdAt),
|
|
13858
|
+
[offeringOrders]
|
|
13859
|
+
);
|
|
13860
|
+
const sortedTradeHistory = React5.useMemo(
|
|
13861
|
+
() => [...tradeHistory].sort((a, b) => b.executedAt - a.executedAt),
|
|
13862
|
+
[tradeHistory]
|
|
13863
|
+
);
|
|
13864
|
+
const sortedTransfers = React5.useMemo(
|
|
13865
|
+
() => [...transfers].sort((a, b) => b.createdAt - a.createdAt),
|
|
13866
|
+
[transfers]
|
|
13867
|
+
);
|
|
13831
13868
|
const positionsCount = positions.length;
|
|
13832
13869
|
const openOrdersCount = React5.useMemo(
|
|
13833
13870
|
() => openOrders.filter((o) => o.status === "OPEN" || o.status === "PARTIALLY_FILLED").length,
|
|
@@ -13852,25 +13889,25 @@ function PortfolioActivityPanel({
|
|
|
13852
13889
|
const activeDataLength = (() => {
|
|
13853
13890
|
switch (activeTab) {
|
|
13854
13891
|
case "subscriptions":
|
|
13855
|
-
return
|
|
13892
|
+
return sortedOfferingOrders.length;
|
|
13856
13893
|
case "open-orders":
|
|
13857
|
-
return
|
|
13894
|
+
return sortedOpenOrders.length;
|
|
13858
13895
|
case "orders":
|
|
13859
13896
|
return mergedOrderHistory.length;
|
|
13860
13897
|
case "trades":
|
|
13861
|
-
return
|
|
13898
|
+
return sortedTradeHistory.length;
|
|
13862
13899
|
case "transfers":
|
|
13863
|
-
return
|
|
13900
|
+
return sortedTransfers.length;
|
|
13864
13901
|
default:
|
|
13865
13902
|
return 0;
|
|
13866
13903
|
}
|
|
13867
13904
|
})();
|
|
13868
13905
|
const totalPages = Math.ceil(activeDataLength / pageSize);
|
|
13869
|
-
const pagedOfferingOrders =
|
|
13870
|
-
const pagedOpenOrders =
|
|
13906
|
+
const pagedOfferingOrders = sortedOfferingOrders.slice(currentPage * pageSize, (currentPage + 1) * pageSize);
|
|
13907
|
+
const pagedOpenOrders = sortedOpenOrders.slice(currentPage * pageSize, (currentPage + 1) * pageSize);
|
|
13871
13908
|
const pagedOrderHistory = mergedOrderHistory.slice(currentPage * pageSize, (currentPage + 1) * pageSize);
|
|
13872
|
-
const pagedTradeHistory =
|
|
13873
|
-
const pagedTransfers =
|
|
13909
|
+
const pagedTradeHistory = sortedTradeHistory.slice(currentPage * pageSize, (currentPage + 1) * pageSize);
|
|
13910
|
+
const pagedTransfers = sortedTransfers.slice(currentPage * pageSize, (currentPage + 1) * pageSize);
|
|
13874
13911
|
return /* @__PURE__ */ jsxRuntime.jsxs(Container2, { className, style, children: [
|
|
13875
13912
|
/* @__PURE__ */ jsxRuntime.jsx(PanelTitle, { children: "Activity" }),
|
|
13876
13913
|
/* @__PURE__ */ jsxRuntime.jsxs(TabContainer, { children: [
|