@loafmarkets/ui 0.1.27 → 0.1.28

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 CHANGED
@@ -712,6 +712,13 @@ type PropertySubscription = {
712
712
  timestamp: string;
713
713
  status?: string;
714
714
  };
715
+ type IpoRecentOrder = {
716
+ buyerAddress: string;
717
+ buyerHandle: string;
718
+ quantity: number;
719
+ timestamp: number;
720
+ txHash: string;
721
+ };
715
722
 
716
723
  type PropertyBuyProps = {
717
724
  propertyName?: string;
@@ -730,8 +737,10 @@ type PropertyBuyProps = {
730
737
  initialUserSubscriptions?: PropertySubscription[];
731
738
  opensAt?: number | null;
732
739
  isPrivateClient?: boolean;
740
+ recentOrders?: readonly IpoRecentOrder[];
741
+ ordersAllocated?: number;
733
742
  };
734
- declare function PropertyBuy({ propertyName, propertyLocation: propertyLocationLabel, tokenDisplayName, tokenSymbol, isAuthenticated, onSignIn, saleData, walletUsdcBalance, walletPropertyTokenBalance, onPurchase, purchaseStatus, purchaseError, onDeposit, initialUserSubscriptions, opensAt, isPrivateClient, }: PropertyBuyProps): react_jsx_runtime.JSX.Element;
743
+ declare function PropertyBuy({ propertyName, propertyLocation: propertyLocationLabel, tokenDisplayName, tokenSymbol, isAuthenticated, onSignIn, saleData, walletUsdcBalance, walletPropertyTokenBalance, onPurchase, purchaseStatus, purchaseError, onDeposit, initialUserSubscriptions, opensAt, isPrivateClient, recentOrders, ordersAllocated, }: PropertyBuyProps): react_jsx_runtime.JSX.Element;
735
744
 
736
745
  type OwnerBookingProps = {
737
746
  propertyName?: string | null;
package/dist/index.d.ts CHANGED
@@ -712,6 +712,13 @@ type PropertySubscription = {
712
712
  timestamp: string;
713
713
  status?: string;
714
714
  };
715
+ type IpoRecentOrder = {
716
+ buyerAddress: string;
717
+ buyerHandle: string;
718
+ quantity: number;
719
+ timestamp: number;
720
+ txHash: string;
721
+ };
715
722
 
716
723
  type PropertyBuyProps = {
717
724
  propertyName?: string;
@@ -730,8 +737,10 @@ type PropertyBuyProps = {
730
737
  initialUserSubscriptions?: PropertySubscription[];
731
738
  opensAt?: number | null;
732
739
  isPrivateClient?: boolean;
740
+ recentOrders?: readonly IpoRecentOrder[];
741
+ ordersAllocated?: number;
733
742
  };
734
- declare function PropertyBuy({ propertyName, propertyLocation: propertyLocationLabel, tokenDisplayName, tokenSymbol, isAuthenticated, onSignIn, saleData, walletUsdcBalance, walletPropertyTokenBalance, onPurchase, purchaseStatus, purchaseError, onDeposit, initialUserSubscriptions, opensAt, isPrivateClient, }: PropertyBuyProps): react_jsx_runtime.JSX.Element;
743
+ declare function PropertyBuy({ propertyName, propertyLocation: propertyLocationLabel, tokenDisplayName, tokenSymbol, isAuthenticated, onSignIn, saleData, walletUsdcBalance, walletPropertyTokenBalance, onPurchase, purchaseStatus, purchaseError, onDeposit, initialUserSubscriptions, opensAt, isPrivateClient, recentOrders, ordersAllocated, }: PropertyBuyProps): react_jsx_runtime.JSX.Element;
735
744
 
736
745
  type OwnerBookingProps = {
737
746
  propertyName?: string | null;
package/dist/index.js CHANGED
@@ -8459,12 +8459,6 @@ var STATUS_COLOR2 = {
8459
8459
  CLOSED: "#848e9c",
8460
8460
  CANCELLED: "#f6465d"
8461
8461
  };
8462
- var recentOrderPurchases = [
8463
- { name: "investor_au", amount: 12500 },
8464
- { name: "sydney_prop", amount: 25e3 },
8465
- { name: "heritage_inv", amount: 5e4 },
8466
- { name: "mosman_buyer", amount: 7500 }
8467
- ];
8468
8462
  function AssetSelectorBar({ propertyName, tokenPrice, offeringValuation }) {
8469
8463
  const [isDropdownOpen, setIsDropdownOpen] = React5.useState(false);
8470
8464
  return /* @__PURE__ */ jsxRuntime.jsx(AssetSelectorWrapper, { children: /* @__PURE__ */ jsxRuntime.jsxs(IPOAssetSelector, { children: [
@@ -8734,7 +8728,7 @@ function OfferingProgressCard({
8734
8728
  /* @__PURE__ */ jsxRuntime.jsx(CountdownUnitLabel, { children: "S" })
8735
8729
  ] })
8736
8730
  ] })
8737
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(PreLiveStatus, { $statusColor: statusColor, children: ipoStatus === "CLOSED" ? "Sale Completed" : ipoStatus === "CANCELLED" ? "Sale Cancelled" : "Sale Not Yet Open" }),
8731
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(PreLiveStatus, { $statusColor: statusColor, children: "Sale Not Yet Open" }),
8738
8732
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { textAlign: "right" }, children: [
8739
8733
  /* @__PURE__ */ jsxRuntime.jsx(MetricLabel2, { children: "Offering Valuation" }),
8740
8734
  /* @__PURE__ */ jsxRuntime.jsxs(MetricValue2, { children: [
@@ -8946,7 +8940,16 @@ var ProgressBar = styled23__default.default.div`
8946
8940
  transition: width 0.5s ease;
8947
8941
  }
8948
8942
  `;
8949
- function VideoActivitySection({ ipoStarted }) {
8943
+ function VideoActivitySection({
8944
+ ipoStarted,
8945
+ recentOrders = [],
8946
+ ordersAllocated = 0,
8947
+ tokenPrice = 0
8948
+ }) {
8949
+ const sortedOrders = React5.useMemo(
8950
+ () => [...recentOrders].sort((a, b) => b.timestamp - a.timestamp),
8951
+ [recentOrders]
8952
+ );
8950
8953
  return /* @__PURE__ */ jsxRuntime.jsxs(Section4, { children: [
8951
8954
  /* @__PURE__ */ jsxRuntime.jsxs(VideoPanel, { children: [
8952
8955
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "section-header", children: /* @__PURE__ */ jsxRuntime.jsx("h3", { children: "Musgrave" }) }),
@@ -8961,15 +8964,15 @@ function VideoActivitySection({ ipoStarted }) {
8961
8964
  /* @__PURE__ */ jsxRuntime.jsx(LiveIndicatorDot, { $active: ipoStarted }),
8962
8965
  "Recent Order Activity"
8963
8966
  ] }),
8964
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: ipoStarted ? "Active orders: 1,247" : "Waiting for Offer to Open" })
8967
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: ipoStarted ? `Active orders: ${ordersAllocated.toLocaleString()}` : "Waiting for Offer to Open" })
8965
8968
  ] }),
8966
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "activity-content", children: ipoStarted ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "activity-list", children: recentOrderPurchases.map((purchase, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "purchase-row", children: [
8967
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: purchase.name }),
8969
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "activity-content", children: ipoStarted ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "activity-list", children: sortedOrders.map((order) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "purchase-row", children: [
8970
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: order.buyerHandle || `${order.buyerAddress.slice(0, 6)}...${order.buyerAddress.slice(-4)}` }),
8968
8971
  /* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
8969
8972
  "$",
8970
- purchase.amount.toLocaleString()
8973
+ (tokenPrice * order.quantity).toLocaleString(void 0, { maximumFractionDigits: 0 })
8971
8974
  ] })
8972
- ] }, i)) }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "activity-empty", children: [
8975
+ ] }, order.txHash)) }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "activity-empty", children: [
8973
8976
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "spinner" }),
8974
8977
  /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Activity will appear once the Offering opens" })
8975
8978
  ] }) })
@@ -10570,7 +10573,9 @@ function PropertyBuy({
10570
10573
  onDeposit,
10571
10574
  initialUserSubscriptions = [],
10572
10575
  opensAt,
10573
- isPrivateClient = false
10576
+ isPrivateClient = false,
10577
+ recentOrders = [],
10578
+ ordersAllocated = 0
10574
10579
  }) {
10575
10580
  const [sliderValue, setSliderValue] = React5.useState(0);
10576
10581
  const [availableBalance, setAvailableBalance] = React5.useState(walletUsdcBalance ?? 125e3);
@@ -10744,7 +10749,15 @@ function PropertyBuy({
10744
10749
  opensAt
10745
10750
  }
10746
10751
  ),
10747
- /* @__PURE__ */ jsxRuntime.jsx(VideoActivitySection, { ipoStarted }),
10752
+ /* @__PURE__ */ jsxRuntime.jsx(
10753
+ VideoActivitySection,
10754
+ {
10755
+ ipoStarted,
10756
+ recentOrders,
10757
+ ordersAllocated,
10758
+ tokenPrice
10759
+ }
10760
+ ),
10748
10761
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column" }, children: [
10749
10762
  /* @__PURE__ */ jsxRuntime.jsx(
10750
10763
  OrderPanel,