hey-pharmacist-ecommerce 1.1.12 → 1.1.13
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.js +84 -115
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +85 -116
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/FilterChips.tsx +54 -80
- package/src/components/OrderCard.tsx +89 -56
- package/src/hooks/useOrders.ts +1 -0
- package/src/screens/OrdersScreen.tsx +91 -148
package/dist/index.js
CHANGED
|
@@ -10216,29 +10216,43 @@ function ProfileScreen() {
|
|
|
10216
10216
|
)))));
|
|
10217
10217
|
}
|
|
10218
10218
|
function OrderCard({ order }) {
|
|
10219
|
-
const { buildPath } = useBasePath();
|
|
10220
10219
|
const config = order.orderStatus;
|
|
10220
|
+
const itemCount = order.items?.length || 0;
|
|
10221
|
+
const showPriceBreakdown = order.shippingCost && order.shippingCost > 0 || order.tax && order.tax > 0 || order.discountedAmount && order.discountedAmount > 0;
|
|
10221
10222
|
return /* @__PURE__ */ React21__default.default.createElement(
|
|
10222
10223
|
framerMotion.motion.div,
|
|
10223
10224
|
{
|
|
10224
10225
|
initial: { opacity: 0, y: 20 },
|
|
10225
10226
|
animate: { opacity: 1, y: 0 },
|
|
10226
|
-
|
|
10227
|
-
className: "bg-white rounded-2xl p-6 shadow-sm hover:shadow-xl transition-all duration-300 border border-gray-100"
|
|
10227
|
+
className: "rounded-lg border border-slate-200 bg-white p-4 shadow-sm hover:shadow-md transition-shadow"
|
|
10228
10228
|
},
|
|
10229
|
-
/* @__PURE__ */ React21__default.default.createElement("div", { className: "flex justify-between
|
|
10230
|
-
/* @__PURE__ */ React21__default.default.createElement("div", { className: "space-y-2 mb-4" }, order.items
|
|
10231
|
-
|
|
10232
|
-
|
|
10229
|
+
/* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center justify-between mb-4 pb-4 border-b border-gray-200" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React21__default.default.createElement("h3", { className: "text-base font-bold text-slate-900" }, "Order #", order?._id?.slice(0, 8) || ""), /* @__PURE__ */ React21__default.default.createElement(Badge, { variant: config }, config), /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-xs text-gray-500" }, formatDate(order.createdAt || /* @__PURE__ */ new Date(), "short"))), /* @__PURE__ */ React21__default.default.createElement("div", { className: "text-right" }, /* @__PURE__ */ React21__default.default.createElement("p", { className: "text-lg font-bold text-slate-900" }, formatPrice(order.grandTotal || 0)), itemCount > 0 && /* @__PURE__ */ React21__default.default.createElement("p", { className: "text-xs text-gray-500" }, itemCount, " ", itemCount === 1 ? "item" : "items"))),
|
|
10230
|
+
/* @__PURE__ */ React21__default.default.createElement("div", { className: "space-y-2 mb-4" }, order.items && order.items.length > 0 ? order.items.slice(0, 3).map((item) => {
|
|
10231
|
+
const itemPrice = item.productVariantData?.finalPrice || 0;
|
|
10232
|
+
const itemTotal = itemPrice * item.quantity;
|
|
10233
|
+
return /* @__PURE__ */ React21__default.default.createElement("div", { key: item.productVariantId || item._id, className: "flex items-center gap-2 text-sm" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "relative w-12 h-12 rounded bg-gray-100 flex-shrink-0 overflow-hidden" }, /* @__PURE__ */ React21__default.default.createElement(
|
|
10234
|
+
Image3__default.default,
|
|
10235
|
+
{
|
|
10236
|
+
src: item?.productVariantData?.productMedia?.[0]?.file || "/placeholder-product.jpg",
|
|
10237
|
+
alt: item?.productVariantData?.name || "Product image",
|
|
10238
|
+
fill: true,
|
|
10239
|
+
className: "object-cover",
|
|
10240
|
+
sizes: "48px"
|
|
10241
|
+
}
|
|
10242
|
+
)), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React21__default.default.createElement("p", { className: "font-medium text-slate-900 truncate text-sm" }, item.productVariantData?.name || "Unknown Product"), /* @__PURE__ */ React21__default.default.createElement("p", { className: "text-xs text-gray-500" }, "Qty: ", item.quantity)), /* @__PURE__ */ React21__default.default.createElement("p", { className: "font-semibold text-slate-900 text-sm" }, formatPrice(itemTotal)));
|
|
10243
|
+
}) : /* @__PURE__ */ React21__default.default.createElement("p", { className: "text-sm text-gray-500 text-center py-2" }, "No items found"), order.items && order.items.length > 3 && /* @__PURE__ */ React21__default.default.createElement("p", { className: "text-xs text-gray-500 text-center pt-1" }, "+", order.items.length - 3, " more ", order.items.length - 3 === 1 ? "item" : "items")),
|
|
10244
|
+
showPriceBreakdown && /* @__PURE__ */ React21__default.default.createElement("div", { className: "mb-4 pb-4 border-b border-gray-200 space-y-1 text-xs" }, order.shippingCost !== void 0 && order.shippingCost > 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex justify-between text-gray-600" }, /* @__PURE__ */ React21__default.default.createElement("span", null, "Shipping"), /* @__PURE__ */ React21__default.default.createElement("span", null, formatPrice(order.shippingCost))), order.tax !== void 0 && order.tax > 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex justify-between text-gray-600" }, /* @__PURE__ */ React21__default.default.createElement("span", null, "Tax"), /* @__PURE__ */ React21__default.default.createElement("span", null, formatPrice(order.tax))), order.discountedAmount !== void 0 && order.discountedAmount > 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex justify-between text-green-600" }, /* @__PURE__ */ React21__default.default.createElement("span", null, "Discount"), /* @__PURE__ */ React21__default.default.createElement("span", null, "-", formatPrice(order.discountedAmount)))),
|
|
10245
|
+
order.payment?.paymentStatus !== "Paid" /* Paid */ && order.payment?.paymentMethod === "Card" /* Card */ && /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex justify-end" }, /* @__PURE__ */ React21__default.default.createElement(
|
|
10246
|
+
"button",
|
|
10233
10247
|
{
|
|
10234
|
-
|
|
10235
|
-
|
|
10236
|
-
|
|
10237
|
-
className: "inline-flex items-center gap-2
|
|
10248
|
+
onClick: () => {
|
|
10249
|
+
window.open(order?.payment?.hostedInvoiceUrl || "", "_blank");
|
|
10250
|
+
},
|
|
10251
|
+
className: "inline-flex items-center gap-2 rounded-full border-2 border-primary-500 bg-primary-500 hover:bg-primary-600 text-white px-4 py-2 text-sm font-medium transition-colors"
|
|
10238
10252
|
},
|
|
10239
10253
|
/* @__PURE__ */ React21__default.default.createElement(lucideReact.CreditCard, { className: "w-4 h-4" }),
|
|
10240
10254
|
"Pay Now"
|
|
10241
|
-
))
|
|
10255
|
+
))
|
|
10242
10256
|
);
|
|
10243
10257
|
}
|
|
10244
10258
|
function useOrders(page = 1, limit = 10, orderStatus, paymentStatus) {
|
|
@@ -10268,6 +10282,7 @@ function useOrders(page = 1, limit = 10, orderStatus, paymentStatus) {
|
|
|
10268
10282
|
resolvedUserId
|
|
10269
10283
|
);
|
|
10270
10284
|
setOrders(response.data.data || []);
|
|
10285
|
+
console.log(response.data);
|
|
10271
10286
|
setPagination({
|
|
10272
10287
|
page: response.data.page || page,
|
|
10273
10288
|
limit: response.data.limit || limit,
|
|
@@ -10345,9 +10360,7 @@ function FilterChips({
|
|
|
10345
10360
|
variant = "primary"
|
|
10346
10361
|
}) {
|
|
10347
10362
|
const [isOverflowOpen, setIsOverflowOpen] = React21.useState(false);
|
|
10348
|
-
const [filterSearchTerm, setFilterSearchTerm] = React21.useState("");
|
|
10349
10363
|
const overflowMenuRef = React21.useRef(null);
|
|
10350
|
-
const color = variant === "primary" ? "primary" : "secondary";
|
|
10351
10364
|
const { visibleFilters, overflowFilters } = React21.useMemo(() => {
|
|
10352
10365
|
const basePrimary = filters.slice(0, maxVisible);
|
|
10353
10366
|
if (basePrimary.includes(selected)) {
|
|
@@ -10368,17 +10381,6 @@ function FilterChips({
|
|
|
10368
10381
|
overflowFilters: filters.filter((filter) => !uniquePrimary.includes(filter))
|
|
10369
10382
|
};
|
|
10370
10383
|
}, [filters, maxVisible, selected]);
|
|
10371
|
-
const filteredOverflowFilters = React21.useMemo(() => {
|
|
10372
|
-
if (!filterSearchTerm.trim()) return overflowFilters;
|
|
10373
|
-
return overflowFilters.filter(
|
|
10374
|
-
(filter) => filter.toLowerCase().includes(filterSearchTerm.toLowerCase())
|
|
10375
|
-
);
|
|
10376
|
-
}, [filterSearchTerm, overflowFilters]);
|
|
10377
|
-
React21.useEffect(() => {
|
|
10378
|
-
if (!isOverflowOpen) {
|
|
10379
|
-
setFilterSearchTerm("");
|
|
10380
|
-
}
|
|
10381
|
-
}, [isOverflowOpen]);
|
|
10382
10384
|
React21.useEffect(() => {
|
|
10383
10385
|
function handleClickOutside(event) {
|
|
10384
10386
|
if (overflowMenuRef.current && !overflowMenuRef.current.contains(event.target)) {
|
|
@@ -10392,69 +10394,63 @@ function FilterChips({
|
|
|
10392
10394
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
10393
10395
|
};
|
|
10394
10396
|
}, [isOverflowOpen]);
|
|
10395
|
-
|
|
10397
|
+
const isPrimary = variant === "primary";
|
|
10398
|
+
return /* @__PURE__ */ React21__default.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React21__default.default.createElement(Icon, { className: "h-4 w-4 text-slate-500" }), /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-sm font-medium text-slate-700" }, label), selected !== "All" && /* @__PURE__ */ React21__default.default.createElement(
|
|
10396
10399
|
"button",
|
|
10397
10400
|
{
|
|
10398
|
-
key: filter,
|
|
10399
10401
|
type: "button",
|
|
10400
|
-
onClick: () => onSelect(
|
|
10401
|
-
className:
|
|
10402
|
+
onClick: () => onSelect("All"),
|
|
10403
|
+
className: "ml-auto text-xs text-primary-600 hover:text-primary-700 font-medium"
|
|
10402
10404
|
},
|
|
10403
|
-
|
|
10404
|
-
))
|
|
10405
|
+
"Clear"
|
|
10406
|
+
)), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex flex-wrap items-center gap-2" }, visibleFilters.map((filter) => {
|
|
10407
|
+
const isSelected = selected === filter;
|
|
10408
|
+
return /* @__PURE__ */ React21__default.default.createElement(
|
|
10409
|
+
"button",
|
|
10410
|
+
{
|
|
10411
|
+
key: filter,
|
|
10412
|
+
type: "button",
|
|
10413
|
+
onClick: () => onSelect(filter),
|
|
10414
|
+
className: `inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-all whitespace-nowrap ${isSelected ? isPrimary ? "border-primary-500 bg-primary-500 text-white shadow-sm" : "border-secondary-500 bg-secondary-500 text-white shadow-sm" : "border-slate-200 bg-white text-slate-700 hover:border-slate-300 hover:bg-slate-50"}`
|
|
10415
|
+
},
|
|
10416
|
+
filter,
|
|
10417
|
+
isSelected && /* @__PURE__ */ React21__default.default.createElement(lucideReact.X, { className: "h-3.5 w-3.5" })
|
|
10418
|
+
);
|
|
10419
|
+
}), overflowFilters.length > 0 && /* @__PURE__ */ React21__default.default.createElement("div", { className: "relative", ref: overflowMenuRef }, /* @__PURE__ */ React21__default.default.createElement(
|
|
10405
10420
|
"button",
|
|
10406
10421
|
{
|
|
10407
10422
|
type: "button",
|
|
10408
10423
|
onClick: () => setIsOverflowOpen((prev) => !prev),
|
|
10409
|
-
className: `flex items-center gap-
|
|
10424
|
+
className: `inline-flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-sm font-medium transition-all whitespace-nowrap ${overflowFilters.includes(selected) ? isPrimary ? "border-primary-500 bg-primary-50 text-primary-700" : "border-secondary-500 bg-secondary-50 text-secondary-700" : "border-slate-200 bg-white text-slate-700 hover:border-slate-300 hover:bg-slate-50"}`
|
|
10410
10425
|
},
|
|
10411
10426
|
/* @__PURE__ */ React21__default.default.createElement("span", null, overflowFilters.includes(selected) ? selected : "More"),
|
|
10412
|
-
/* @__PURE__ */ React21__default.default.createElement(
|
|
10427
|
+
/* @__PURE__ */ React21__default.default.createElement(lucideReact.ChevronDown, { className: `h-3.5 w-3.5 transition-transform ${isOverflowOpen ? "rotate-180" : ""}` })
|
|
10413
10428
|
), /* @__PURE__ */ React21__default.default.createElement(framerMotion.AnimatePresence, null, isOverflowOpen && /* @__PURE__ */ React21__default.default.createElement(
|
|
10414
10429
|
framerMotion.motion.div,
|
|
10415
10430
|
{
|
|
10416
|
-
initial: { opacity: 0, y: 8 },
|
|
10417
|
-
animate: { opacity: 1, y: 0 },
|
|
10418
|
-
exit: { opacity: 0, y: 8 },
|
|
10431
|
+
initial: { opacity: 0, y: 8, scale: 0.95 },
|
|
10432
|
+
animate: { opacity: 1, y: 0, scale: 1 },
|
|
10433
|
+
exit: { opacity: 0, y: 8, scale: 0.95 },
|
|
10419
10434
|
transition: { duration: 0.15 },
|
|
10420
|
-
className: "absolute
|
|
10435
|
+
className: "absolute left-0 top-full z-50 mt-2 w-56 rounded-lg border border-slate-200 bg-white shadow-lg"
|
|
10421
10436
|
},
|
|
10422
|
-
/* @__PURE__ */ React21__default.default.createElement("div", { className: "
|
|
10423
|
-
|
|
10424
|
-
|
|
10425
|
-
|
|
10426
|
-
|
|
10427
|
-
|
|
10428
|
-
|
|
10429
|
-
|
|
10430
|
-
|
|
10431
|
-
|
|
10432
|
-
|
|
10433
|
-
|
|
10434
|
-
{
|
|
10435
|
-
key: filter,
|
|
10436
|
-
type: "button",
|
|
10437
|
-
onClick: () => {
|
|
10438
|
-
onSelect(filter);
|
|
10439
|
-
setIsOverflowOpen(false);
|
|
10440
|
-
},
|
|
10441
|
-
className: `flex w-full items-center justify-between rounded-xl px-3 py-2 text-sm font-medium transition ${selected === filter ? `bg-${color}-600 text-white shadow-lg shadow-${color}-500/30` : "text-slate-600 hover:bg-slate-100"}`
|
|
10442
|
-
},
|
|
10443
|
-
/* @__PURE__ */ React21__default.default.createElement("span", null, filter),
|
|
10444
|
-
selected === filter && /* @__PURE__ */ React21__default.default.createElement(lucideReact.Check, { className: "h-4 w-4" })
|
|
10445
|
-
)) : /* @__PURE__ */ React21__default.default.createElement("p", { className: "px-3 py-4 text-sm text-slate-500" }, "No items found.")),
|
|
10446
|
-
/* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center justify-between gap-2 border-t border-slate-100 px-4 py-3" }, /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-xs font-semibold uppercase tracking-wide text-slate-400" }, "Quick actions"), /* @__PURE__ */ React21__default.default.createElement(
|
|
10447
|
-
"button",
|
|
10448
|
-
{
|
|
10449
|
-
type: "button",
|
|
10450
|
-
onClick: () => {
|
|
10451
|
-
onSelect("All");
|
|
10452
|
-
setIsOverflowOpen(false);
|
|
10437
|
+
/* @__PURE__ */ React21__default.default.createElement("div", { className: "max-h-64 overflow-y-auto p-1.5" }, overflowFilters.map((filter) => {
|
|
10438
|
+
const isSelected = selected === filter;
|
|
10439
|
+
return /* @__PURE__ */ React21__default.default.createElement(
|
|
10440
|
+
"button",
|
|
10441
|
+
{
|
|
10442
|
+
key: filter,
|
|
10443
|
+
type: "button",
|
|
10444
|
+
onClick: () => {
|
|
10445
|
+
onSelect(filter);
|
|
10446
|
+
setIsOverflowOpen(false);
|
|
10447
|
+
},
|
|
10448
|
+
className: `flex w-full items-center justify-between rounded-md px-3 py-2 text-sm font-medium transition ${isSelected ? isPrimary ? "bg-primary-500 text-white" : "bg-secondary-500 text-white" : "text-slate-700 hover:bg-slate-100"}`
|
|
10453
10449
|
},
|
|
10454
|
-
|
|
10455
|
-
|
|
10456
|
-
|
|
10457
|
-
))
|
|
10450
|
+
/* @__PURE__ */ React21__default.default.createElement("span", null, filter),
|
|
10451
|
+
isSelected && /* @__PURE__ */ React21__default.default.createElement(lucideReact.Check, { className: "h-4 w-4" })
|
|
10452
|
+
);
|
|
10453
|
+
}))
|
|
10458
10454
|
)))));
|
|
10459
10455
|
}
|
|
10460
10456
|
var STATUS_FILTERS = ["All", ...Object.values(ManualOrderDTOOrderStatusEnum)];
|
|
@@ -10471,9 +10467,6 @@ function OrdersScreen() {
|
|
|
10471
10467
|
selectedFilter,
|
|
10472
10468
|
selectedPaymentFilter
|
|
10473
10469
|
);
|
|
10474
|
-
const [isOverflowOpen, setIsOverflowOpen] = React21.useState(false);
|
|
10475
|
-
const [filterSearchTerm, setFilterSearchTerm] = React21.useState("");
|
|
10476
|
-
const overflowMenuRef = React21.useRef(null);
|
|
10477
10470
|
const filteredOrders = React21.useMemo(() => {
|
|
10478
10471
|
return orders.filter((order) => {
|
|
10479
10472
|
const matchesStatus = selectedFilter === "All" || order?.orderStatus?.toLowerCase() === selectedFilter.toLowerCase();
|
|
@@ -10483,44 +10476,18 @@ function OrdersScreen() {
|
|
|
10483
10476
|
}, [orders, selectedFilter, selectedPaymentFilter]);
|
|
10484
10477
|
const hasOrders = filteredOrders.length > 0;
|
|
10485
10478
|
const MAX_VISIBLE_FILTERS = 4;
|
|
10486
|
-
|
|
10487
|
-
if (!isOverflowOpen) {
|
|
10488
|
-
setFilterSearchTerm("");
|
|
10489
|
-
}
|
|
10490
|
-
}, [isOverflowOpen]);
|
|
10491
|
-
React21.useEffect(() => {
|
|
10492
|
-
function handleClickOutside(event) {
|
|
10493
|
-
if (overflowMenuRef.current && !overflowMenuRef.current.contains(event.target)) {
|
|
10494
|
-
setIsOverflowOpen(false);
|
|
10495
|
-
}
|
|
10496
|
-
}
|
|
10497
|
-
if (isOverflowOpen) {
|
|
10498
|
-
document.addEventListener("mousedown", handleClickOutside);
|
|
10499
|
-
}
|
|
10500
|
-
return () => {
|
|
10501
|
-
document.removeEventListener("mousedown", handleClickOutside);
|
|
10502
|
-
};
|
|
10503
|
-
}, [isOverflowOpen]);
|
|
10504
|
-
return /* @__PURE__ */ React21__default.default.createElement("div", { className: "min-h-screen bg-slate-50" }, /* @__PURE__ */ React21__default.default.createElement("section", { className: "relative overflow-hidden bg-gradient-to-br from-[rgb(var(--header-from))] via-[rgb(var(--header-via))] to-[rgb(var(--header-to))] text-white mb-8" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top_left,_rgba(255,255,255,0.35),_transparent_60%)]" }), /* @__PURE__ */ React21__default.default.createElement("div", { className: "relative container mx-auto px-4 py-16" }, /* @__PURE__ */ React21__default.default.createElement(
|
|
10479
|
+
return /* @__PURE__ */ React21__default.default.createElement("div", { className: "min-h-screen bg-white" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "container mx-auto px-4 py-8 max-w-6xl" }, /* @__PURE__ */ React21__default.default.createElement(
|
|
10505
10480
|
framerMotion.motion.div,
|
|
10506
10481
|
{
|
|
10507
10482
|
initial: { opacity: 0, y: 24 },
|
|
10508
10483
|
animate: { opacity: 1, y: 0 },
|
|
10509
10484
|
className: "space-y-6"
|
|
10510
10485
|
},
|
|
10511
|
-
/* @__PURE__ */ React21__default.default.createElement("
|
|
10512
|
-
/* @__PURE__ */ React21__default.default.createElement("div", { className: "
|
|
10513
|
-
))), /* @__PURE__ */ React21__default.default.createElement("div", { className: "relative -mt-16 pb-16 container mx-auto px-4" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "container mx-auto px-4" }, /* @__PURE__ */ React21__default.default.createElement(
|
|
10514
|
-
framerMotion.motion.div,
|
|
10515
|
-
{
|
|
10516
|
-
initial: { opacity: 0, y: 24 },
|
|
10517
|
-
animate: { opacity: 1, y: 0 },
|
|
10518
|
-
className: "rounded-3xl border border-slate-100 bg-white p-6 shadow-lg shadow-primary-50"
|
|
10519
|
-
},
|
|
10520
|
-
/* @__PURE__ */ React21__default.default.createElement("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between" }, /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex items-center gap-3 text-sm text-slate-500" }, /* @__PURE__ */ React21__default.default.createElement(lucideReact.Sparkles, { className: "h-4 w-4 text-primary-500" }), /* @__PURE__ */ React21__default.default.createElement("span", null, "Explore your complete order archive with pharmacist notes.")), /* @__PURE__ */ React21__default.default.createElement("div", { className: "flex flex-col gap-4 md:items-end" }, /* @__PURE__ */ React21__default.default.createElement(
|
|
10486
|
+
/* @__PURE__ */ React21__default.default.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React21__default.default.createElement("h1", { className: "text-2xl font-bold text-slate-900" }, "Orders"), /* @__PURE__ */ React21__default.default.createElement("p", { className: "text-sm text-gray-500 mt-1" }, filteredOrders.length, " ", filteredOrders.length === 1 ? "order" : "orders")),
|
|
10487
|
+
/* @__PURE__ */ React21__default.default.createElement("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6" }, /* @__PURE__ */ React21__default.default.createElement(
|
|
10521
10488
|
FilterChips,
|
|
10522
10489
|
{
|
|
10523
|
-
label: "Status
|
|
10490
|
+
label: "Order Status",
|
|
10524
10491
|
icon: lucideReact.Filter,
|
|
10525
10492
|
filters: STATUS_FILTERS,
|
|
10526
10493
|
selected: selectedFilter,
|
|
@@ -10534,7 +10501,7 @@ function OrdersScreen() {
|
|
|
10534
10501
|
), /* @__PURE__ */ React21__default.default.createElement(
|
|
10535
10502
|
FilterChips,
|
|
10536
10503
|
{
|
|
10537
|
-
label: "Payment
|
|
10504
|
+
label: "Payment Status",
|
|
10538
10505
|
icon: lucideReact.CreditCard,
|
|
10539
10506
|
filters: PAYMENT_FILTERS,
|
|
10540
10507
|
selected: selectedPaymentFilter,
|
|
@@ -10545,8 +10512,8 @@ function OrdersScreen() {
|
|
|
10545
10512
|
maxVisible: MAX_VISIBLE_FILTERS,
|
|
10546
10513
|
variant: "primary"
|
|
10547
10514
|
}
|
|
10548
|
-
))
|
|
10549
|
-
/* @__PURE__ */ React21__default.default.createElement("div", { className: "
|
|
10515
|
+
)),
|
|
10516
|
+
/* @__PURE__ */ React21__default.default.createElement("div", { className: "space-y-4" }, isLoading ? Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ React21__default.default.createElement(OrderCardSkeleton, { key: index })) : hasOrders ? filteredOrders.map((order) => /* @__PURE__ */ React21__default.default.createElement(OrderCard, { key: order.id, order })) : /* @__PURE__ */ React21__default.default.createElement(
|
|
10550
10517
|
EmptyState,
|
|
10551
10518
|
{
|
|
10552
10519
|
icon: lucideReact.Package,
|
|
@@ -10556,26 +10523,28 @@ function OrdersScreen() {
|
|
|
10556
10523
|
onAction: () => router.push(buildPath("/shop"))
|
|
10557
10524
|
}
|
|
10558
10525
|
)),
|
|
10559
|
-
!isLoading && pagination.totalPages > 1 && hasOrders && /* @__PURE__ */ React21__default.default.createElement("div", { className: "mt-
|
|
10526
|
+
!isLoading && pagination.totalPages > 1 && hasOrders && /* @__PURE__ */ React21__default.default.createElement("div", { className: "mt-8 flex flex-wrap items-center justify-center gap-4 pt-6 border-t border-gray-200" }, /* @__PURE__ */ React21__default.default.createElement(
|
|
10560
10527
|
Button,
|
|
10561
10528
|
{
|
|
10562
10529
|
variant: "outline",
|
|
10563
10530
|
onClick: () => setPage((current) => Math.max(1, current - 1)),
|
|
10564
|
-
disabled: page === 1
|
|
10531
|
+
disabled: page === 1,
|
|
10532
|
+
className: "rounded-full border-2 border-slate-200 bg-white px-4 py-2 text-sm font-medium text-slate-700 hover:bg-gray-50 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
|
|
10565
10533
|
},
|
|
10566
|
-
/* @__PURE__ */ React21__default.default.createElement(lucideReact.ChevronLeft, { className: "h-
|
|
10534
|
+
/* @__PURE__ */ React21__default.default.createElement(lucideReact.ChevronLeft, { className: "h-4 w-4 mr-2" }),
|
|
10567
10535
|
"Previous"
|
|
10568
|
-
), /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-sm font-
|
|
10536
|
+
), /* @__PURE__ */ React21__default.default.createElement("span", { className: "text-sm font-medium text-slate-600" }, "Page ", page, " of ", pagination.totalPages), /* @__PURE__ */ React21__default.default.createElement(
|
|
10569
10537
|
Button,
|
|
10570
10538
|
{
|
|
10571
10539
|
variant: "outline",
|
|
10572
10540
|
onClick: () => setPage((current) => Math.min(pagination.totalPages, current + 1)),
|
|
10573
|
-
disabled: page === pagination.totalPages
|
|
10541
|
+
disabled: page === pagination.totalPages,
|
|
10542
|
+
className: "rounded-full border-2 border-slate-200 bg-white px-4 py-2 text-sm font-medium text-slate-700 hover:bg-gray-50 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
|
|
10574
10543
|
},
|
|
10575
10544
|
"Next",
|
|
10576
|
-
/* @__PURE__ */ React21__default.default.createElement(lucideReact.ChevronRight, { className: "h-
|
|
10545
|
+
/* @__PURE__ */ React21__default.default.createElement(lucideReact.ChevronRight, { className: "h-4 w-4 ml-2" })
|
|
10577
10546
|
))
|
|
10578
|
-
)))
|
|
10547
|
+
)));
|
|
10579
10548
|
}
|
|
10580
10549
|
function CurrentOrdersScreen() {
|
|
10581
10550
|
const router = navigation.useRouter();
|