@rovela-ai/sdk 0.1.20 → 0.1.22
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/admin/api/customers.d.ts +38 -2
- package/dist/admin/api/customers.d.ts.map +1 -1
- package/dist/admin/api/customers.js +98 -3
- package/dist/admin/api/customers.js.map +1 -1
- package/dist/admin/api/index.d.ts +2 -2
- package/dist/admin/api/index.d.ts.map +1 -1
- package/dist/admin/api/index.js +2 -2
- package/dist/admin/api/index.js.map +1 -1
- package/dist/admin/api/products.d.ts +1 -0
- package/dist/admin/api/products.d.ts.map +1 -1
- package/dist/admin/api/products.js +78 -1
- package/dist/admin/api/products.js.map +1 -1
- package/dist/admin/components/AdminNav.d.ts +10 -3
- package/dist/admin/components/AdminNav.d.ts.map +1 -1
- package/dist/admin/components/AdminNav.js +78 -31
- package/dist/admin/components/AdminNav.js.map +1 -1
- package/dist/admin/components/CategoryForm.js +2 -2
- package/dist/admin/components/CategoryForm.js.map +1 -1
- package/dist/admin/components/CategorySelect.d.ts.map +1 -1
- package/dist/admin/components/CategorySelect.js +7 -2
- package/dist/admin/components/CategorySelect.js.map +1 -1
- package/dist/admin/components/CustomerDetails.d.ts +15 -0
- package/dist/admin/components/CustomerDetails.d.ts.map +1 -0
- package/dist/admin/components/CustomerDetails.js +173 -0
- package/dist/admin/components/CustomerDetails.js.map +1 -0
- package/dist/admin/components/CustomerTable.d.ts +13 -0
- package/dist/admin/components/CustomerTable.d.ts.map +1 -0
- package/dist/admin/components/CustomerTable.js +109 -0
- package/dist/admin/components/CustomerTable.js.map +1 -0
- package/dist/admin/components/DeleteConfirmDialog.d.ts +47 -0
- package/dist/admin/components/DeleteConfirmDialog.d.ts.map +1 -0
- package/dist/admin/components/DeleteConfirmDialog.js +28 -0
- package/dist/admin/components/DeleteConfirmDialog.js.map +1 -0
- package/dist/admin/components/InventoryEditor.d.ts.map +1 -1
- package/dist/admin/components/InventoryEditor.js +12 -7
- package/dist/admin/components/InventoryEditor.js.map +1 -1
- package/dist/admin/components/LowStockAlert.d.ts +2 -2
- package/dist/admin/components/LowStockAlert.d.ts.map +1 -1
- package/dist/admin/components/LowStockAlert.js +16 -9
- package/dist/admin/components/LowStockAlert.js.map +1 -1
- package/dist/admin/components/OrderDetails.d.ts.map +1 -1
- package/dist/admin/components/OrderDetails.js +8 -3
- package/dist/admin/components/OrderDetails.js.map +1 -1
- package/dist/admin/components/OrderStatusChart.d.ts +21 -0
- package/dist/admin/components/OrderStatusChart.d.ts.map +1 -0
- package/dist/admin/components/OrderStatusChart.js +54 -0
- package/dist/admin/components/OrderStatusChart.js.map +1 -0
- package/dist/admin/components/OrderTable.d.ts.map +1 -1
- package/dist/admin/components/OrderTable.js +8 -3
- package/dist/admin/components/OrderTable.js.map +1 -1
- package/dist/admin/components/ProductForm.d.ts.map +1 -1
- package/dist/admin/components/ProductForm.js +43 -12
- package/dist/admin/components/ProductForm.js.map +1 -1
- package/dist/admin/components/ProductTable.d.ts.map +1 -1
- package/dist/admin/components/ProductTable.js +35 -8
- package/dist/admin/components/ProductTable.js.map +1 -1
- package/dist/admin/components/RecentOrders.d.ts +1 -1
- package/dist/admin/components/RecentOrders.d.ts.map +1 -1
- package/dist/admin/components/RecentOrders.js +19 -13
- package/dist/admin/components/RecentOrders.js.map +1 -1
- package/dist/admin/components/RefundDialog.d.ts.map +1 -1
- package/dist/admin/components/RefundDialog.js +7 -2
- package/dist/admin/components/RefundDialog.js.map +1 -1
- package/dist/admin/components/RevenueChart.d.ts +23 -0
- package/dist/admin/components/RevenueChart.d.ts.map +1 -0
- package/dist/admin/components/RevenueChart.js +70 -0
- package/dist/admin/components/RevenueChart.js.map +1 -0
- package/dist/admin/components/StatsCards.d.ts +2 -2
- package/dist/admin/components/StatsCards.d.ts.map +1 -1
- package/dist/admin/components/StatsCards.js +18 -20
- package/dist/admin/components/StatsCards.js.map +1 -1
- package/dist/admin/components/StoreSettings.d.ts.map +1 -1
- package/dist/admin/components/StoreSettings.js +8 -2
- package/dist/admin/components/StoreSettings.js.map +1 -1
- package/dist/admin/components/VariantManager.d.ts +1 -0
- package/dist/admin/components/VariantManager.d.ts.map +1 -1
- package/dist/admin/components/VariantManager.js +5 -1
- package/dist/admin/components/VariantManager.js.map +1 -1
- package/dist/admin/components/index.d.ts +7 -0
- package/dist/admin/components/index.d.ts.map +1 -1
- package/dist/admin/components/index.js +8 -0
- package/dist/admin/components/index.js.map +1 -1
- package/dist/admin/hooks/index.d.ts +1 -0
- package/dist/admin/hooks/index.d.ts.map +1 -1
- package/dist/admin/hooks/index.js +1 -0
- package/dist/admin/hooks/index.js.map +1 -1
- package/dist/admin/hooks/useAdminCustomers.d.ts +41 -0
- package/dist/admin/hooks/useAdminCustomers.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminCustomers.js +216 -0
- package/dist/admin/hooks/useAdminCustomers.js.map +1 -0
- package/dist/admin/index.d.ts +4 -4
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +5 -3
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/types.d.ts +45 -0
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/cart/components/CartDrawer.d.ts.map +1 -1
- package/dist/cart/components/CartDrawer.js +7 -2
- package/dist/cart/components/CartDrawer.js.map +1 -1
- package/dist/cart/components/CartItem.d.ts.map +1 -1
- package/dist/cart/components/CartItem.js +7 -2
- package/dist/cart/components/CartItem.js.map +1 -1
- package/dist/cart/components/CartSummary.d.ts.map +1 -1
- package/dist/cart/components/CartSummary.js +7 -2
- package/dist/cart/components/CartSummary.js.map +1 -1
- package/dist/core/db/queries.d.ts +52 -6
- package/dist/core/db/queries.d.ts.map +1 -1
- package/dist/core/db/queries.js +37 -5
- package/dist/core/db/queries.js.map +1 -1
- package/dist/core/db/schema.d.ts +146 -0
- package/dist/core/db/schema.d.ts.map +1 -1
- package/dist/core/db/schema.js +10 -0
- package/dist/core/db/schema.js.map +1 -1
- package/dist/core/types.d.ts +7 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/products/components/ProductCard.d.ts.map +1 -1
- package/dist/products/components/ProductCard.js +7 -2
- package/dist/products/components/ProductCard.js.map +1 -1
- package/dist/products/components/ProductDetails.d.ts.map +1 -1
- package/dist/products/components/ProductDetails.js +12 -2
- package/dist/products/components/ProductDetails.js.map +1 -1
- package/package.json +2 -1
|
@@ -7,6 +7,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
7
7
|
*/
|
|
8
8
|
import { useState, useEffect, useCallback } from 'react';
|
|
9
9
|
import { useAdminOrders } from '../hooks/useAdminOrders';
|
|
10
|
+
import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
|
|
10
11
|
// =============================================================================
|
|
11
12
|
// Status Badge
|
|
12
13
|
// =============================================================================
|
|
@@ -36,6 +37,10 @@ function StatusBadge({ status }) {
|
|
|
36
37
|
*/
|
|
37
38
|
export function OrderTable({ initialSearch, initialStatus, pageSize = 20, onOrderClick, className = '', }) {
|
|
38
39
|
const { orders, total, page, isLoading, fetchOrders, updateStatus } = useAdminOrders();
|
|
40
|
+
// Get currency from context
|
|
41
|
+
const storeSettings = useStoreSettingsOptional();
|
|
42
|
+
const resolvedCurrency = storeSettings?.currency ?? 'USD';
|
|
43
|
+
const resolvedLocale = storeSettings?.locale ?? 'en-US';
|
|
39
44
|
const [search, setSearch] = useState(initialSearch || '');
|
|
40
45
|
const [status, setStatus] = useState(initialStatus || '');
|
|
41
46
|
const [sort, setSort] = useState('newest');
|
|
@@ -66,7 +71,7 @@ export function OrderTable({ initialSearch, initialStatus, pageSize = 20, onOrde
|
|
|
66
71
|
}, [updateStatus, fetchOrders, search, status, sort, page, pageSize]);
|
|
67
72
|
const formatDate = (dateString) => {
|
|
68
73
|
const date = new Date(dateString);
|
|
69
|
-
return date.toLocaleDateString(
|
|
74
|
+
return date.toLocaleDateString(resolvedLocale, {
|
|
70
75
|
month: 'short',
|
|
71
76
|
day: 'numeric',
|
|
72
77
|
year: 'numeric',
|
|
@@ -75,9 +80,9 @@ export function OrderTable({ initialSearch, initialStatus, pageSize = 20, onOrde
|
|
|
75
80
|
});
|
|
76
81
|
};
|
|
77
82
|
const formatCurrency = (value) => {
|
|
78
|
-
return new Intl.NumberFormat(
|
|
83
|
+
return new Intl.NumberFormat(resolvedLocale, {
|
|
79
84
|
style: 'currency',
|
|
80
|
-
currency:
|
|
85
|
+
currency: resolvedCurrency,
|
|
81
86
|
}).format(parseFloat(value));
|
|
82
87
|
};
|
|
83
88
|
const totalPages = Math.ceil(total / pageSize);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderTable.js","sourceRoot":"","sources":["../../../src/admin/components/OrderTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"OrderTable.js","sourceRoot":"","sources":["../../../src/admin/components/OrderTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductForm.d.ts","sourceRoot":"","sources":["../../../src/admin/components/ProductForm.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAoC,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"ProductForm.d.ts","sourceRoot":"","sources":["../../../src/admin/components/ProductForm.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAoC,MAAM,UAAU,CAAA;AAQlF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAc,GACf,EAAE,gBAAgB,2CA22BlB"}
|
|
@@ -45,12 +45,19 @@ export function ProductForm({ productId, initialData, onSuccess, onCancel, class
|
|
|
45
45
|
status: initialData?.status || 'draft',
|
|
46
46
|
categoryId: initialData?.categoryId,
|
|
47
47
|
hasVariants: initialData?.hasVariants || false,
|
|
48
|
+
// Inventory
|
|
49
|
+
sku: initialData?.sku || '',
|
|
50
|
+
inventory: initialData?.inventory || 0,
|
|
51
|
+
trackInventory: initialData?.trackInventory ?? true,
|
|
52
|
+
continueSellingWhenOutOfStock: initialData?.continueSellingWhenOutOfStock ?? false,
|
|
53
|
+
// Organization
|
|
54
|
+
productType: initialData?.productType || '',
|
|
55
|
+
vendor: initialData?.vendor || '',
|
|
56
|
+
tags: initialData?.tags || [],
|
|
57
|
+
// SEO
|
|
48
58
|
metaTitle: initialData?.metaTitle,
|
|
49
59
|
metaDescription: initialData?.metaDescription,
|
|
50
60
|
metaKeywords: initialData?.metaKeywords || [],
|
|
51
|
-
sku: '',
|
|
52
|
-
inventory: 0,
|
|
53
|
-
trackInventory: true,
|
|
54
61
|
});
|
|
55
62
|
// Variant state
|
|
56
63
|
const [variantOptions, setVariantOptions] = useState([]);
|
|
@@ -87,6 +94,16 @@ export function ProductForm({ productId, initialData, onSuccess, onCancel, class
|
|
|
87
94
|
status: p.status,
|
|
88
95
|
categoryId: p.categoryId || undefined,
|
|
89
96
|
hasVariants: p.hasVariants,
|
|
97
|
+
// Inventory
|
|
98
|
+
sku: p.sku || '',
|
|
99
|
+
inventory: p.inventory || 0,
|
|
100
|
+
trackInventory: p.trackInventory ?? true,
|
|
101
|
+
continueSellingWhenOutOfStock: p.continueSellingWhenOutOfStock ?? false,
|
|
102
|
+
// Organization
|
|
103
|
+
productType: p.productType || '',
|
|
104
|
+
vendor: p.vendor || '',
|
|
105
|
+
tags: p.tags || [],
|
|
106
|
+
// SEO
|
|
90
107
|
metaTitle: p.metaTitle || undefined,
|
|
91
108
|
metaDescription: p.metaDescription || undefined,
|
|
92
109
|
metaKeywords: p.metaKeywords || [],
|
|
@@ -145,7 +162,7 @@ export function ProductForm({ productId, initialData, onSuccess, onCancel, class
|
|
|
145
162
|
[name]: type === 'checkbox'
|
|
146
163
|
? checked
|
|
147
164
|
: type === 'number'
|
|
148
|
-
?
|
|
165
|
+
? value // Keep as string while editing, convert on submit
|
|
149
166
|
: value,
|
|
150
167
|
}));
|
|
151
168
|
}, []);
|
|
@@ -181,17 +198,31 @@ export function ProductForm({ productId, initialData, onSuccess, onCancel, class
|
|
|
181
198
|
setError(null);
|
|
182
199
|
setIsLoading(true);
|
|
183
200
|
try {
|
|
184
|
-
// Build data
|
|
201
|
+
// Build data - convert number fields from string to number
|
|
202
|
+
const price = parseFloat(String(formData.price)) || 0;
|
|
203
|
+
const comparePrice = formData.comparePrice
|
|
204
|
+
? parseFloat(String(formData.comparePrice))
|
|
205
|
+
: undefined;
|
|
185
206
|
const data = {
|
|
186
207
|
name: formData.name,
|
|
187
208
|
slug: formData.slug || autoSlug,
|
|
188
209
|
description: formData.description,
|
|
189
|
-
price
|
|
190
|
-
comparePrice
|
|
210
|
+
price,
|
|
211
|
+
comparePrice,
|
|
191
212
|
images: formData.images,
|
|
192
|
-
status: isEditMode ? formData.status : '
|
|
213
|
+
status: isEditMode ? formData.status : 'active', // Create as active by default
|
|
193
214
|
categoryId: formData.categoryId,
|
|
194
215
|
hasVariants: formData.hasVariants,
|
|
216
|
+
// Inventory (for non-variant products)
|
|
217
|
+
sku: formData.sku || undefined,
|
|
218
|
+
inventory: formData.inventory || 0,
|
|
219
|
+
trackInventory: formData.trackInventory,
|
|
220
|
+
continueSellingWhenOutOfStock: formData.continueSellingWhenOutOfStock,
|
|
221
|
+
// Organization
|
|
222
|
+
productType: formData.productType || undefined,
|
|
223
|
+
vendor: formData.vendor || undefined,
|
|
224
|
+
tags: formData.tags,
|
|
225
|
+
// SEO
|
|
195
226
|
metaTitle: formData.metaTitle,
|
|
196
227
|
metaDescription: formData.metaDescription,
|
|
197
228
|
metaKeywords: formData.metaKeywords,
|
|
@@ -232,9 +263,9 @@ export function ProductForm({ productId, initialData, onSuccess, onCancel, class
|
|
|
232
263
|
e.preventDefault();
|
|
233
264
|
handleAddImage();
|
|
234
265
|
}
|
|
235
|
-
}, placeholder: "Paste image URL...", className: "flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" }), _jsxs("button", { type: "button", onClick: handleAddImage, disabled: !imageUrl.trim(), className: "inline-flex items-center gap-2 rounded-md bg-secondary px-4 py-2 text-sm font-medium text-secondary-foreground hover:bg-secondary/80 disabled:opacity-50", children: [_jsx(ImagePlus, { className: "h-4 w-4" }), "Add"] })] }), formData.images.length === 0 && (_jsxs("div", { className: "rounded-lg border-2 border-dashed border-border p-8 text-center", children: [_jsx(ImagePlus, { className: "mx-auto h-10 w-10 text-muted-foreground" }), _jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: "Add images by pasting URLs above" })] }))] })] }), _jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsx("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Pricing" }), _jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsxs("label", { htmlFor: "price", className: "block text-sm font-medium text-foreground", children: ["Price ", _jsx("span", { className: "text-destructive", children: "*" })] }), _jsxs("div", { className: "mt-1 relative", children: [_jsx("span", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: "$" }), _jsx("input", { id: "price", name: "price", type: "number", step: "0.01", min: "0", value: formData.price, onChange: handleChange, required: true, className: "block w-full rounded-md border border-input bg-background pl-7 pr-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "comparePrice", className: "block text-sm font-medium text-foreground", children: "Compare at Price" }), _jsxs("div", { className: "mt-1 relative", children: [_jsx("span", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: "$" }), _jsx("input", { id: "comparePrice", name: "comparePrice", type: "number", step: "0.01", min: "0", value: formData.comparePrice || '', onChange: handleChange, placeholder: "Original price", className: "block w-full rounded-md border border-input bg-background pl-7 pr-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Shows as strikethrough price for sales" })] })] }), formData.comparePrice && formData.comparePrice > formData.price && (_jsxs("div", { className: "mt-4 flex items-center gap-2 rounded-md bg-green-50 dark:bg-green-950/20 px-3 py-2 text-sm text-green-700 dark:text-green-400", children: [_jsx(Info, { className: "h-4 w-4" }), Math.round(((formData.comparePrice - formData.price) / formData.comparePrice) * 100), "% discount from compare price"] }))] }), !formData.hasVariants && (_jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsx("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Inventory" }), _jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "sku", className: "block text-sm font-medium text-foreground", children: "SKU (Stock Keeping Unit)" }), _jsx("input", { id: "sku", name: "sku", type: "text", value: formData.sku || '', onChange: handleChange, placeholder: "e.g., SHIRT-001", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "inventory", className: "block text-sm font-medium text-foreground", children: "Quantity" }), _jsx("input", { id: "inventory", name: "inventory", type: "number", min: "0", value: formData.inventory || 0, onChange: handleChange, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] })] })] })), _jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-lg font-medium text-foreground", children: "Variants" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Add options like size or color to create product variants" })] }), _jsxs("label", { className: "relative inline-flex cursor-pointer items-center", children: [_jsx("input", { type: "checkbox", name: "hasVariants", checked: formData.hasVariants, onChange: handleChange, className: "peer sr-only" }), _jsx("div", { className: "peer h-6 w-11 rounded-full bg-muted after:absolute after:left-[2px] after:top-[2px] after:h-5 after:w-5 after:rounded-full after:bg-white after:transition-all after:content-[''] peer-checked:bg-primary peer-checked:after:translate-x-full peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-primary/20" })] })] }), formData.hasVariants && (_jsx(VariantManager, { options: variantOptions, variants: variants, onOptionsChange: setVariantOptions, onVariantsChange: setVariants, basePrice: formData.price }))] }), _jsxs("div", { className: "rounded-lg border border-border bg-card", children: [_jsxs("button", { type: "button", onClick: () => setSeoExpanded(!seoExpanded), className: "flex w-full items-center justify-between p-6 text-left", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-lg font-medium text-foreground", children: "Search Engine Listing" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Customize how this product appears in search results" })] }), seoExpanded ? (_jsx(ChevronUp, { className: "h-5 w-5 text-muted-foreground" })) : (_jsx(ChevronDown, { className: "h-5 w-5 text-muted-foreground" }))] }), seoExpanded && (_jsxs("div", { className: "border-t border-border p-6 space-y-4", children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "metaTitle", className: "block text-sm font-medium text-foreground", children: "Meta Title" }), _jsx("input", { id: "metaTitle", name: "metaTitle", type: "text", value: formData.metaTitle || '', onChange: handleChange, maxLength: 70, placeholder: formData.name || 'Product title', className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" }), _jsxs("p", { className: "mt-1 text-xs text-muted-foreground", children: [(formData.metaTitle || '').length, "/70 characters"] })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "metaDescription", className: "block text-sm font-medium text-foreground", children: "Meta Description" }), _jsx("textarea", { id: "metaDescription", name: "metaDescription", value: formData.metaDescription || '', onChange: handleChange, maxLength: 160, rows: 3, placeholder: "Brief description for search engines...", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" }), _jsxs("p", { className: "mt-1 text-xs text-muted-foreground", children: [(formData.metaDescription || '').length, "/160 characters"] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-foreground mb-1", children: "Meta Keywords" }), _jsx(TagInput, { value: formData.metaKeywords || [], onChange: (tags) => setFormData((prev) => ({ ...prev, metaKeywords: tags })), placeholder: "Add keywords...", maxTags: 10 })] }), _jsx(SEOPreview, { title: formData.metaTitle || formData.name, description: formData.metaDescription || formData.description.slice(0, 160), slug: formData.slug || autoSlug, className: "mt-4" })] }))] })] }), _jsxs("div", { className: "space-y-6", children: [isEditMode && (_jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsx("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Status" }), _jsxs("div", { className: "space-y-3", children: [_jsxs("label", { className: "flex items-center gap-3 cursor-pointer", children: [_jsx("input", { type: "radio", name: "status", value: "draft", checked: formData.status === 'draft', onChange: handleChange, className: "h-4 w-4 text-primary focus:ring-primary" }), _jsxs("div", { children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: "Draft" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Not visible to customers" })] })] }), _jsxs("label", { className: "flex items-center gap-3 cursor-pointer", children: [_jsx("input", { type: "radio", name: "status", value: "active", checked: formData.status === 'active', onChange: handleChange, className: "h-4 w-4 text-primary focus:ring-primary" }), _jsxs("div", { children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: "Active" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Visible to customers" })] })] }), _jsxs("label", { className: "flex items-center gap-3 cursor-pointer", children: [_jsx("input", { type: "radio", name: "status", value: "archived", checked: formData.status === 'archived', onChange: handleChange, className: "h-4 w-4 text-primary focus:ring-primary" }), _jsxs("div", { children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: "Archived" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Hidden and not for sale" })] })] })] })] })), _jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsx("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Organization" }), _jsx("div", { className: "space-y-4", children: _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-foreground mb-1", children: "Category" }), _jsx(CategorySelect, { value: formData.categoryId || null, onChange: (id) => setFormData((prev) => ({ ...prev, categoryId: id || undefined })), placeholder: "Select category", showAddNew: true, onAddNew: () => {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
266
|
+
}, placeholder: "Paste image URL...", className: "flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" }), _jsxs("button", { type: "button", onClick: handleAddImage, disabled: !imageUrl.trim(), className: "inline-flex items-center gap-2 rounded-md bg-secondary px-4 py-2 text-sm font-medium text-secondary-foreground hover:bg-secondary/80 disabled:opacity-50", children: [_jsx(ImagePlus, { className: "h-4 w-4" }), "Add"] })] }), formData.images.length === 0 && (_jsxs("div", { className: "rounded-lg border-2 border-dashed border-border p-8 text-center", children: [_jsx(ImagePlus, { className: "mx-auto h-10 w-10 text-muted-foreground" }), _jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: "Add images by pasting URLs above" })] }))] })] }), _jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsx("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Pricing" }), _jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsxs("label", { htmlFor: "price", className: "block text-sm font-medium text-foreground", children: ["Price ", _jsx("span", { className: "text-destructive", children: "*" })] }), _jsxs("div", { className: "mt-1 relative", children: [_jsx("span", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: "$" }), _jsx("input", { id: "price", name: "price", type: "number", step: "0.01", min: "0", value: formData.price, onChange: handleChange, required: true, className: "block w-full rounded-md border border-input bg-background pl-7 pr-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "comparePrice", className: "block text-sm font-medium text-foreground", children: "Compare at Price" }), _jsxs("div", { className: "mt-1 relative", children: [_jsx("span", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: "$" }), _jsx("input", { id: "comparePrice", name: "comparePrice", type: "number", step: "0.01", min: "0", value: formData.comparePrice || '', onChange: handleChange, placeholder: "Original price", className: "block w-full rounded-md border border-input bg-background pl-7 pr-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Shows as strikethrough price for sales" })] })] }), formData.comparePrice && formData.comparePrice > formData.price && (_jsxs("div", { className: "mt-4 flex items-center gap-2 rounded-md bg-green-50 dark:bg-green-950/20 px-3 py-2 text-sm text-green-700 dark:text-green-400", children: [_jsx(Info, { className: "h-4 w-4" }), Math.round(((formData.comparePrice - formData.price) / formData.comparePrice) * 100), "% discount from compare price"] }))] }), !formData.hasVariants && (_jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsx("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Inventory" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "sku", className: "block text-sm font-medium text-foreground", children: "SKU (Stock Keeping Unit)" }), _jsx("input", { id: "sku", name: "sku", type: "text", value: formData.sku || '', onChange: handleChange, placeholder: "e.g., SHIRT-001", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "inventory", className: "block text-sm font-medium text-foreground", children: "Quantity" }), _jsx("input", { id: "inventory", name: "inventory", type: "number", min: "0", value: formData.inventory || 0, onChange: handleChange, className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] })] }), _jsxs("div", { className: "space-y-3 pt-2 border-t border-border", children: [_jsxs("label", { className: "flex items-center gap-3 cursor-pointer", children: [_jsx("input", { type: "checkbox", name: "trackInventory", checked: formData.trackInventory ?? true, onChange: handleChange, className: "h-4 w-4 rounded border-gray-300 text-primary focus:ring-primary" }), _jsxs("div", { children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: "Track quantity" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Enable inventory tracking for this product" })] })] }), _jsxs("label", { className: "flex items-center gap-3 cursor-pointer", children: [_jsx("input", { type: "checkbox", name: "continueSellingWhenOutOfStock", checked: formData.continueSellingWhenOutOfStock ?? false, onChange: handleChange, className: "h-4 w-4 rounded border-gray-300 text-primary focus:ring-primary" }), _jsxs("div", { children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: "Continue selling when out of stock" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Allow customers to purchase even when inventory is 0" })] })] })] })] })] })), _jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-lg font-medium text-foreground", children: "Variants" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Add options like size or color to create product variants" })] }), _jsxs("label", { className: "relative inline-flex cursor-pointer items-center", children: [_jsx("input", { type: "checkbox", name: "hasVariants", checked: formData.hasVariants, onChange: handleChange, className: "peer sr-only" }), _jsx("div", { className: "peer h-6 w-11 rounded-full bg-muted after:absolute after:left-[2px] after:top-[2px] after:h-5 after:w-5 after:rounded-full after:bg-white after:transition-all after:content-[''] peer-checked:bg-primary peer-checked:after:translate-x-full peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-primary/20" })] })] }), formData.hasVariants && (_jsx(VariantManager, { options: variantOptions, variants: variants, onOptionsChange: setVariantOptions, onVariantsChange: setVariants, basePrice: formData.price }))] }), _jsxs("div", { className: "rounded-lg border border-border bg-card", children: [_jsxs("button", { type: "button", onClick: () => setSeoExpanded(!seoExpanded), className: "flex w-full items-center justify-between p-6 text-left", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-lg font-medium text-foreground", children: "Search Engine Listing" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Customize how this product appears in search results" })] }), seoExpanded ? (_jsx(ChevronUp, { className: "h-5 w-5 text-muted-foreground" })) : (_jsx(ChevronDown, { className: "h-5 w-5 text-muted-foreground" }))] }), seoExpanded && (_jsxs("div", { className: "border-t border-border p-6 space-y-4", children: [_jsxs("div", { children: [_jsx("label", { htmlFor: "metaTitle", className: "block text-sm font-medium text-foreground", children: "Meta Title" }), _jsx("input", { id: "metaTitle", name: "metaTitle", type: "text", value: formData.metaTitle || '', onChange: handleChange, maxLength: 70, placeholder: formData.name || 'Product title', className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" }), _jsxs("p", { className: "mt-1 text-xs text-muted-foreground", children: [(formData.metaTitle || '').length, "/70 characters"] })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "metaDescription", className: "block text-sm font-medium text-foreground", children: "Meta Description" }), _jsx("textarea", { id: "metaDescription", name: "metaDescription", value: formData.metaDescription || '', onChange: handleChange, maxLength: 160, rows: 3, placeholder: "Brief description for search engines...", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" }), _jsxs("p", { className: "mt-1 text-xs text-muted-foreground", children: [(formData.metaDescription || '').length, "/160 characters"] })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-foreground mb-1", children: "Meta Keywords" }), _jsx(TagInput, { value: formData.metaKeywords || [], onChange: (tags) => setFormData((prev) => ({ ...prev, metaKeywords: tags })), placeholder: "Add keywords...", maxTags: 10 })] }), _jsx(SEOPreview, { title: formData.metaTitle || formData.name, description: formData.metaDescription || formData.description.slice(0, 160), slug: formData.slug || autoSlug, className: "mt-4" })] }))] })] }), _jsxs("div", { className: "space-y-6", children: [isEditMode && (_jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsx("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Status" }), _jsxs("div", { className: "space-y-3", children: [_jsxs("label", { className: "flex items-center gap-3 cursor-pointer", children: [_jsx("input", { type: "radio", name: "status", value: "draft", checked: formData.status === 'draft', onChange: handleChange, className: "h-4 w-4 text-primary focus:ring-primary" }), _jsxs("div", { children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: "Draft" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Not visible to customers" })] })] }), _jsxs("label", { className: "flex items-center gap-3 cursor-pointer", children: [_jsx("input", { type: "radio", name: "status", value: "active", checked: formData.status === 'active', onChange: handleChange, className: "h-4 w-4 text-primary focus:ring-primary" }), _jsxs("div", { children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: "Active" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Visible to customers" })] })] }), _jsxs("label", { className: "flex items-center gap-3 cursor-pointer", children: [_jsx("input", { type: "radio", name: "status", value: "archived", checked: formData.status === 'archived', onChange: handleChange, className: "h-4 w-4 text-primary focus:ring-primary" }), _jsxs("div", { children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: "Archived" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Hidden and not for sale" })] })] })] })] })), _jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsx("h3", { className: "mb-4 text-lg font-medium text-foreground", children: "Organization" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-foreground mb-1", children: "Category" }), _jsx(CategorySelect, { value: formData.categoryId || null, onChange: (id) => setFormData((prev) => ({ ...prev, categoryId: id || undefined })), placeholder: "Select category", showAddNew: true, onAddNew: () => {
|
|
267
|
+
// Open category management in new tab
|
|
268
|
+
window.open('/admin/categories', '_blank');
|
|
269
|
+
} })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "productType", className: "block text-sm font-medium text-foreground", children: "Product Type" }), _jsx("input", { id: "productType", name: "productType", type: "text", value: formData.productType || '', onChange: handleChange, placeholder: "e.g., T-Shirts, Electronics", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "vendor", className: "block text-sm font-medium text-foreground", children: "Vendor" }), _jsx("input", { id: "vendor", name: "vendor", type: "text", value: formData.vendor || '', onChange: handleChange, placeholder: "e.g., Nike, Apple", className: "mt-1 block w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-foreground mb-1", children: "Tags" }), _jsx(TagInput, { value: formData.tags || [], onChange: (tags) => setFormData((prev) => ({ ...prev, tags })), placeholder: "Add tags...", maxTags: 20 }), _jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: "Tags help organize products and improve search" })] })] })] }), _jsxs("div", { className: "rounded-lg border border-border bg-card p-6", children: [_jsxs("h3", { className: "mb-4 text-lg font-medium text-foreground flex items-center gap-2", children: [_jsx(Package, { className: "h-5 w-5" }), "Summary"] }), _jsxs("dl", { className: "space-y-2 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("dt", { className: "text-muted-foreground", children: "Price" }), _jsxs("dd", { className: "font-medium", children: ["$", formData.price.toFixed(2)] })] }), formData.hasVariants && variants.length > 0 && (_jsxs("div", { className: "flex justify-between", children: [_jsx("dt", { className: "text-muted-foreground", children: "Variants" }), _jsx("dd", { className: "font-medium", children: variants.length })] })), _jsxs("div", { className: "flex justify-between", children: [_jsx("dt", { className: "text-muted-foreground", children: "Images" }), _jsx("dd", { className: "font-medium", children: formData.images.length })] }), formData.hasVariants && variants.length > 0 && (_jsxs("div", { className: "flex justify-between", children: [_jsx("dt", { className: "text-muted-foreground", children: "Total Inventory" }), _jsx("dd", { className: "font-medium", children: variants.reduce((sum, v) => sum + v.inventory, 0) })] }))] })] }), _jsxs("div", { className: "rounded-lg border border-border bg-card p-6 lg:sticky lg:top-6", children: [_jsxs("div", { className: "space-y-3", children: [_jsx("button", { type: "submit", disabled: isLoading, className: "w-full rounded-md bg-primary px-4 py-2.5 text-sm font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50", children: isLoading ? 'Saving...' : isEditMode ? 'Save Changes' : 'Create Product' }), onCancel && (_jsx("button", { type: "button", onClick: onCancel, className: "w-full rounded-md border border-border px-4 py-2.5 text-sm font-medium text-foreground hover:bg-accent", children: "Cancel" }))] }), !isEditMode && (_jsx("p", { className: "mt-3 text-xs text-center text-muted-foreground", children: "Product will be published immediately" }))] })] })] })] }));
|
|
239
270
|
}
|
|
240
271
|
//# sourceMappingURL=ProductForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductForm.js","sourceRoot":"","sources":["../../../src/admin/components/ProductForm.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProductForm.js","sourceRoot":"","sources":["../../../src/admin/components/ProductForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductTable.d.ts","sourceRoot":"","sources":["../../../src/admin/components/ProductTable.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProductTable.d.ts","sourceRoot":"","sources":["../../../src/admin/components/ProductTable.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAmCjD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,EAC3B,aAAa,EACb,eAAe,EACf,aAAa,EACb,QAAa,EACb,cAAc,EACd,SAAc,GACf,EAAE,iBAAiB,2CAmRnB"}
|
|
@@ -7,6 +7,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
7
7
|
*/
|
|
8
8
|
import { useState, useEffect, useCallback } from 'react';
|
|
9
9
|
import { useAdminProducts } from '../hooks/useAdminProducts';
|
|
10
|
+
import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
|
|
11
|
+
import { DeleteConfirmDialog } from './DeleteConfirmDialog';
|
|
10
12
|
// =============================================================================
|
|
11
13
|
// Status Badge
|
|
12
14
|
// =============================================================================
|
|
@@ -33,9 +35,17 @@ function StatusBadge({ status }) {
|
|
|
33
35
|
*/
|
|
34
36
|
export function ProductTable({ initialSearch, initialCategory, initialStatus, pageSize = 20, onProductClick, className = '', }) {
|
|
35
37
|
const { products, total, page, isLoading, fetchProducts, deleteProduct } = useAdminProducts();
|
|
38
|
+
// Get currency from context
|
|
39
|
+
const storeSettings = useStoreSettingsOptional();
|
|
40
|
+
const resolvedCurrency = storeSettings?.currency ?? 'USD';
|
|
41
|
+
const resolvedLocale = storeSettings?.locale ?? 'en-US';
|
|
36
42
|
const [search, setSearch] = useState(initialSearch || '');
|
|
37
43
|
const [status, setStatus] = useState(initialStatus || '');
|
|
38
44
|
const [sort, setSort] = useState('newest');
|
|
45
|
+
// Delete confirmation state
|
|
46
|
+
const [deleteTarget, setDeleteTarget] = useState(null);
|
|
47
|
+
const [isDeleting, setIsDeleting] = useState(false);
|
|
48
|
+
const [deleteError, setDeleteError] = useState(null);
|
|
39
49
|
// Fetch products on filter change
|
|
40
50
|
useEffect(() => {
|
|
41
51
|
fetchProducts({
|
|
@@ -55,24 +65,41 @@ export function ProductTable({ initialSearch, initialCategory, initialStatus, pa
|
|
|
55
65
|
limit: pageSize,
|
|
56
66
|
});
|
|
57
67
|
}, [search, status, sort, pageSize, fetchProducts]);
|
|
58
|
-
const
|
|
59
|
-
|
|
68
|
+
const handleDeleteClick = useCallback((id, name) => {
|
|
69
|
+
setDeleteTarget({ id, name });
|
|
70
|
+
setDeleteError(null);
|
|
71
|
+
}, []);
|
|
72
|
+
const handleDeleteConfirm = useCallback(async () => {
|
|
73
|
+
if (!deleteTarget)
|
|
60
74
|
return;
|
|
61
|
-
|
|
75
|
+
setIsDeleting(true);
|
|
76
|
+
setDeleteError(null);
|
|
77
|
+
const success = await deleteProduct(deleteTarget.id);
|
|
78
|
+
setIsDeleting(false);
|
|
62
79
|
if (success) {
|
|
80
|
+
setDeleteTarget(null);
|
|
63
81
|
fetchProducts({ search, status: status || undefined, sort, page, limit: pageSize });
|
|
64
82
|
}
|
|
65
|
-
|
|
83
|
+
else {
|
|
84
|
+
setDeleteError('Failed to delete product. Please try again.');
|
|
85
|
+
}
|
|
86
|
+
}, [deleteTarget, deleteProduct, fetchProducts, search, status, sort, page, pageSize]);
|
|
87
|
+
const handleDeleteCancel = useCallback(() => {
|
|
88
|
+
if (!isDeleting) {
|
|
89
|
+
setDeleteTarget(null);
|
|
90
|
+
setDeleteError(null);
|
|
91
|
+
}
|
|
92
|
+
}, [isDeleting]);
|
|
66
93
|
const formatCurrency = (value) => {
|
|
67
|
-
return new Intl.NumberFormat(
|
|
94
|
+
return new Intl.NumberFormat(resolvedLocale, {
|
|
68
95
|
style: 'currency',
|
|
69
|
-
currency:
|
|
96
|
+
currency: resolvedCurrency,
|
|
70
97
|
}).format(parseFloat(value));
|
|
71
98
|
};
|
|
72
99
|
const totalPages = Math.ceil(total / pageSize);
|
|
73
100
|
return (_jsxs("div", { className: `space-y-4 ${className}`, children: [_jsxs("div", { className: "flex flex-wrap gap-4", children: [_jsx("div", { className: "flex-1", children: _jsx("input", { type: "text", value: search, onChange: (e) => setSearch(e.target.value), placeholder: "Search products...", className: "w-full max-w-xs rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary" }) }), _jsxs("select", { value: status, onChange: (e) => setStatus(e.target.value), className: "rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", children: [_jsx("option", { value: "", children: "All Status" }), _jsx("option", { value: "active", children: "Active" }), _jsx("option", { value: "draft", children: "Draft" }), _jsx("option", { value: "archived", children: "Archived" })] }), _jsxs("select", { value: sort, onChange: (e) => setSort(e.target.value), className: "rounded-md border border-input bg-background px-3 py-2 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary", children: [_jsx("option", { value: "newest", children: "Newest" }), _jsx("option", { value: "name", children: "Name" }), _jsx("option", { value: "price-asc", children: "Price: Low to High" }), _jsx("option", { value: "price-desc", children: "Price: High to Low" })] }), _jsx("a", { href: "/admin/products/new", className: "rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90", children: "Add Product" })] }), _jsxs("div", { className: "rounded-lg border border-border bg-card overflow-hidden", children: [_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b border-border bg-muted/50 text-left text-xs font-medium uppercase text-muted-foreground", children: [_jsx("th", { className: "px-6 py-3", children: "Product" }), _jsx("th", { className: "px-6 py-3", children: "Status" }), _jsx("th", { className: "px-6 py-3", children: "Price" }), _jsx("th", { className: "px-6 py-3", children: "Inventory" }), _jsx("th", { className: "px-6 py-3", children: "Actions" })] }) }), _jsx("tbody", { className: "divide-y divide-border", children: isLoading ? ([...Array(5)].map((_, i) => (_jsxs("tr", { children: [_jsx("td", { className: "px-6 py-4", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "h-10 w-10 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-4 w-32 animate-pulse rounded bg-muted" })] }) }), _jsx("td", { className: "px-6 py-4", children: _jsx("div", { className: "h-6 w-16 animate-pulse rounded bg-muted" }) }), _jsx("td", { className: "px-6 py-4", children: _jsx("div", { className: "h-4 w-16 animate-pulse rounded bg-muted" }) }), _jsx("td", { className: "px-6 py-4", children: _jsx("div", { className: "h-4 w-12 animate-pulse rounded bg-muted" }) }), _jsx("td", { className: "px-6 py-4", children: _jsx("div", { className: "h-4 w-20 animate-pulse rounded bg-muted" }) })] }, i)))) : products.length === 0 ? (_jsx("tr", { children: _jsx("td", { colSpan: 5, className: "px-6 py-12 text-center text-muted-foreground", children: "No products found" }) })) : (products.map((product) => {
|
|
74
101
|
const p = product;
|
|
75
|
-
return (_jsxs("tr", { className: "hover:bg-muted/50", children: [_jsx("td", { className: "px-6 py-4", children: _jsxs("div", { className: "flex items-center gap-3", children: [p.images?.[0] ? (_jsx("img", { src: p.images[0], alt: p.name, className: "h-10 w-10 rounded object-cover" })) : (_jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded bg-muted text-muted-foreground", children: _jsx("svg", { className: "h-5 w-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }) })), _jsx("button", { onClick: () => onProductClick?.(p.id), className: "font-medium text-foreground hover:text-primary", children: p.name })] }) }), _jsx("td", { className: "px-6 py-4", children: _jsx(StatusBadge, { status: p.status }) }), _jsx("td", { className: "px-6 py-4 text-sm text-foreground", children: formatCurrency(p.price) }), _jsx("td", { className: "px-6 py-4 text-sm text-muted-foreground", children: "\u2014" }), _jsx("td", { className: "px-6 py-4", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("a", { href: `/admin/products/${p.id}`, className: "text-sm text-primary hover:underline", children: "Edit" }), _jsx("button", { onClick: () =>
|
|
76
|
-
})) })] }) }), totalPages > 1 && (_jsxs("div", { className: "flex items-center justify-between border-t border-border px-6 py-3", children: [_jsxs("p", { className: "text-sm text-muted-foreground", children: ["Showing ", (page - 1) * pageSize + 1, " to ", Math.min(page * pageSize, total), " of ", total] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { onClick: () => handlePageChange(page - 1), disabled: page === 1, className: "rounded-md border border-border px-3 py-1 text-sm disabled:opacity-50", children: "Previous" }), _jsx("button", { onClick: () => handlePageChange(page + 1), disabled: page >= totalPages, className: "rounded-md border border-border px-3 py-1 text-sm disabled:opacity-50", children: "Next" })] })] }))] })] }));
|
|
102
|
+
return (_jsxs("tr", { className: "hover:bg-muted/50", children: [_jsx("td", { className: "px-6 py-4", children: _jsxs("div", { className: "flex items-center gap-3", children: [p.images?.[0] ? (_jsx("img", { src: p.images[0], alt: p.name, className: "h-10 w-10 rounded object-cover" })) : (_jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded bg-muted text-muted-foreground", children: _jsx("svg", { className: "h-5 w-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) }) })), _jsx("button", { onClick: () => onProductClick?.(p.id), className: "font-medium text-foreground hover:text-primary", children: p.name })] }) }), _jsx("td", { className: "px-6 py-4", children: _jsx(StatusBadge, { status: p.status }) }), _jsx("td", { className: "px-6 py-4 text-sm text-foreground", children: formatCurrency(p.price) }), _jsx("td", { className: "px-6 py-4 text-sm text-muted-foreground", children: "\u2014" }), _jsx("td", { className: "px-6 py-4", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("a", { href: `/admin/products/${p.id}`, className: "text-sm text-primary hover:underline", children: "Edit" }), _jsx("button", { onClick: () => handleDeleteClick(p.id, p.name), className: "text-sm text-destructive hover:underline", children: "Delete" })] }) })] }, p.id));
|
|
103
|
+
})) })] }) }), totalPages > 1 && (_jsxs("div", { className: "flex items-center justify-between border-t border-border px-6 py-3", children: [_jsxs("p", { className: "text-sm text-muted-foreground", children: ["Showing ", (page - 1) * pageSize + 1, " to ", Math.min(page * pageSize, total), " of ", total] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { onClick: () => handlePageChange(page - 1), disabled: page === 1, className: "rounded-md border border-border px-3 py-1 text-sm disabled:opacity-50", children: "Previous" }), _jsx("button", { onClick: () => handlePageChange(page + 1), disabled: page >= totalPages, className: "rounded-md border border-border px-3 py-1 text-sm disabled:opacity-50", children: "Next" })] })] }))] }), _jsx(DeleteConfirmDialog, { isOpen: !!deleteTarget, title: "Delete Product", itemName: deleteTarget?.name || '', itemType: "product", isDeleting: isDeleting, error: deleteError, onConfirm: handleDeleteConfirm, onCancel: handleDeleteCancel })] }));
|
|
77
104
|
}
|
|
78
105
|
//# sourceMappingURL=ProductTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductTable.js","sourceRoot":"","sources":["../../../src/admin/components/ProductTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"ProductTable.js","sourceRoot":"","sources":["../../../src/admin/components/ProductTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecentOrders.d.ts","sourceRoot":"","sources":["../../../src/admin/components/RecentOrders.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RecentOrders.d.ts","sourceRoot":"","sources":["../../../src/admin/components/RecentOrders.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAgCjD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAS,EACT,WAA6B,EAC7B,SAAc,GACf,EAAE,iBAAiB,2CAqHnB"}
|
|
@@ -3,28 +3,30 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
/**
|
|
4
4
|
* @rovela/sdk/admin/components/RecentOrders
|
|
5
5
|
*
|
|
6
|
-
* Recent orders table for dashboard.
|
|
6
|
+
* Recent orders table for dashboard with theme-aware styling.
|
|
7
7
|
*/
|
|
8
8
|
import { useAdminStats } from '../hooks/useAdminStats';
|
|
9
|
+
import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
|
|
9
10
|
// =============================================================================
|
|
10
11
|
// Status Badge
|
|
11
12
|
// =============================================================================
|
|
12
13
|
function StatusBadge({ status }) {
|
|
14
|
+
// Theme-aware status styles using CSS variables
|
|
13
15
|
const statusStyles = {
|
|
14
|
-
pending: 'bg-
|
|
15
|
-
paid: 'bg-
|
|
16
|
-
shipped: 'bg-blue-
|
|
17
|
-
delivered: 'bg-
|
|
18
|
-
cancelled: 'bg-red-
|
|
19
|
-
refunded: 'bg-
|
|
16
|
+
pending: 'bg-amber-500/10 text-amber-600 dark:text-amber-400',
|
|
17
|
+
paid: 'bg-emerald-500/10 text-emerald-600 dark:text-emerald-400',
|
|
18
|
+
shipped: 'bg-blue-500/10 text-blue-600 dark:text-blue-400',
|
|
19
|
+
delivered: 'bg-emerald-500/10 text-emerald-600 dark:text-emerald-400',
|
|
20
|
+
cancelled: 'bg-red-500/10 text-red-600 dark:text-red-400',
|
|
21
|
+
refunded: 'bg-muted text-muted-foreground',
|
|
20
22
|
};
|
|
21
|
-
return (_jsx("span", { className: `inline-flex rounded-full px-2 py-
|
|
23
|
+
return (_jsx("span", { className: `inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ${statusStyles[status] || 'bg-muted text-muted-foreground'}`, children: status.charAt(0).toUpperCase() + status.slice(1) }));
|
|
22
24
|
}
|
|
23
25
|
// =============================================================================
|
|
24
26
|
// Component
|
|
25
27
|
// =============================================================================
|
|
26
28
|
/**
|
|
27
|
-
* Recent orders widget for dashboard.
|
|
29
|
+
* Recent orders widget for dashboard with elegant styling.
|
|
28
30
|
*
|
|
29
31
|
* @example
|
|
30
32
|
* ```tsx
|
|
@@ -35,9 +37,13 @@ export function RecentOrders({ limit = 5, viewAllHref = '/admin/orders', classNa
|
|
|
35
37
|
const { recentOrders, isLoading } = useAdminStats({
|
|
36
38
|
recentOrdersLimit: limit,
|
|
37
39
|
});
|
|
40
|
+
// Get currency from context
|
|
41
|
+
const storeSettings = useStoreSettingsOptional();
|
|
42
|
+
const resolvedCurrency = storeSettings?.currency ?? 'USD';
|
|
43
|
+
const resolvedLocale = storeSettings?.locale ?? 'en-US';
|
|
38
44
|
const formatDate = (dateString) => {
|
|
39
45
|
const date = new Date(dateString);
|
|
40
|
-
return date.toLocaleDateString(
|
|
46
|
+
return date.toLocaleDateString(resolvedLocale, {
|
|
41
47
|
month: 'short',
|
|
42
48
|
day: 'numeric',
|
|
43
49
|
hour: '2-digit',
|
|
@@ -45,11 +51,11 @@ export function RecentOrders({ limit = 5, viewAllHref = '/admin/orders', classNa
|
|
|
45
51
|
});
|
|
46
52
|
};
|
|
47
53
|
const formatCurrency = (value) => {
|
|
48
|
-
return new Intl.NumberFormat(
|
|
54
|
+
return new Intl.NumberFormat(resolvedLocale, {
|
|
49
55
|
style: 'currency',
|
|
50
|
-
currency:
|
|
56
|
+
currency: resolvedCurrency,
|
|
51
57
|
}).format(parseFloat(value));
|
|
52
58
|
};
|
|
53
|
-
return (_jsxs("div", { className: `rounded-
|
|
59
|
+
return (_jsxs("div", { className: `rounded-xl border border-border bg-card ${className}`, children: [_jsxs("div", { className: "flex items-center justify-between border-b border-border px-6 py-4", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-lg font-semibold text-foreground", children: "Recent Orders" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Latest customer orders" })] }), _jsxs("a", { href: viewAllHref, className: "inline-flex items-center gap-1 text-sm font-medium text-primary transition-colors hover:text-primary/80", children: ["View all", _jsx("svg", { className: "h-4 w-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) })] })] }), _jsx("div", { className: "overflow-x-auto", children: isLoading ? (_jsx("div", { className: "p-6", children: _jsx("div", { className: "space-y-4", children: [...Array(limit)].map((_, i) => (_jsxs("div", { className: "flex items-center gap-4", children: [_jsx("div", { className: "h-4 w-24 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-4 w-32 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-4 w-16 animate-pulse rounded bg-muted" }), _jsx("div", { className: "h-4 w-20 animate-pulse rounded bg-muted" })] }, i))) }) })) : recentOrders.length === 0 ? (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 text-center", children: [_jsx("svg", { className: "h-12 w-12 text-muted-foreground/30", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 1, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15.75 10.5V6a3.75 3.75 0 10-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 01-1.12-1.243l1.264-12A1.125 1.125 0 015.513 7.5h12.974c.576 0 1.059.435 1.119 1.007zM8.625 10.5a.375.375 0 11-.75 0 .375.375 0 01.75 0zm7.5 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z" }) }), _jsx("p", { className: "mt-4 text-sm text-muted-foreground", children: "No orders yet" }), _jsx("p", { className: "text-xs text-muted-foreground/70", children: "Orders will appear here as they come in" })] })) : (_jsxs("table", { className: "w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b border-border text-left text-xs font-medium uppercase tracking-wider text-muted-foreground", children: [_jsx("th", { className: "px-6 py-3", children: "Order" }), _jsx("th", { className: "px-6 py-3", children: "Customer" }), _jsx("th", { className: "px-6 py-3", children: "Status" }), _jsx("th", { className: "px-6 py-3 text-right", children: "Total" }), _jsx("th", { className: "px-6 py-3 text-right", children: "Date" })] }) }), _jsx("tbody", { className: "divide-y divide-border", children: recentOrders.map((order) => (_jsxs("tr", { className: "group transition-colors hover:bg-muted/50", children: [_jsx("td", { className: "whitespace-nowrap px-6 py-4", children: _jsxs("a", { href: `/admin/orders/${order.id}`, className: "font-medium text-primary transition-colors hover:text-primary/80", children: ["#", order.id.slice(-8).toUpperCase()] }) }), _jsx("td", { className: "whitespace-nowrap px-6 py-4 text-sm text-foreground", children: order.email }), _jsx("td", { className: "whitespace-nowrap px-6 py-4", children: _jsx(StatusBadge, { status: order.status }) }), _jsx("td", { className: "whitespace-nowrap px-6 py-4 text-right text-sm font-medium text-foreground", children: formatCurrency(order.total) }), _jsx("td", { className: "whitespace-nowrap px-6 py-4 text-right text-sm text-muted-foreground", children: formatDate(order.createdAt) })] }, order.id))) })] })) })] }));
|
|
54
60
|
}
|
|
55
61
|
//# sourceMappingURL=RecentOrders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecentOrders.js","sourceRoot":"","sources":["../../../src/admin/components/RecentOrders.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"RecentOrders.js","sourceRoot":"","sources":["../../../src/admin/components/RecentOrders.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefundDialog.d.ts","sourceRoot":"","sources":["../../../src/admin/components/RefundDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RefundDialog.d.ts","sourceRoot":"","sources":["../../../src/admin/components/RefundDialog.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAMjD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,UAAU,EACV,MAAM,EACN,OAAO,EACP,SAAS,GACV,EAAE,iBAAiB,kDAwKnB"}
|