@rovela-ai/sdk 0.7.2 → 0.8.0
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 +32 -1
- package/dist/admin/api/customers.d.ts.map +1 -1
- package/dist/admin/api/customers.js +116 -0
- package/dist/admin/api/customers.js.map +1 -1
- package/dist/admin/api/index.d.ts +3 -2
- package/dist/admin/api/index.d.ts.map +1 -1
- package/dist/admin/api/index.js +4 -2
- package/dist/admin/api/index.js.map +1 -1
- package/dist/admin/api/locations.d.ts +55 -0
- package/dist/admin/api/locations.d.ts.map +1 -0
- package/dist/admin/api/locations.js +220 -0
- package/dist/admin/api/locations.js.map +1 -0
- package/dist/admin/api/orders.d.ts +29 -1
- package/dist/admin/api/orders.d.ts.map +1 -1
- package/dist/admin/api/orders.js +175 -13
- package/dist/admin/api/orders.js.map +1 -1
- package/dist/admin/api/products.d.ts +10 -1
- package/dist/admin/api/products.d.ts.map +1 -1
- package/dist/admin/api/products.js +29 -0
- package/dist/admin/api/products.js.map +1 -1
- package/dist/admin/components/AdminNav.d.ts.map +1 -1
- package/dist/admin/components/AdminNav.js +5 -1
- package/dist/admin/components/AdminNav.js.map +1 -1
- package/dist/admin/components/BulkActionBar.d.ts +33 -0
- package/dist/admin/components/BulkActionBar.d.ts.map +1 -0
- package/dist/admin/components/BulkActionBar.js +10 -0
- package/dist/admin/components/BulkActionBar.js.map +1 -0
- package/dist/admin/components/CustomerAddressPanel.d.ts.map +1 -1
- package/dist/admin/components/CustomerAddressPanel.js +20 -9
- package/dist/admin/components/CustomerAddressPanel.js.map +1 -1
- package/dist/admin/components/CustomerGroupsManager.d.ts.map +1 -1
- package/dist/admin/components/CustomerGroupsManager.js +21 -12
- package/dist/admin/components/CustomerGroupsManager.js.map +1 -1
- package/dist/admin/components/CustomerTable.d.ts.map +1 -1
- package/dist/admin/components/CustomerTable.js +84 -6
- package/dist/admin/components/CustomerTable.js.map +1 -1
- package/dist/admin/components/DiscountsManager.d.ts.map +1 -1
- package/dist/admin/components/DiscountsManager.js +27 -13
- package/dist/admin/components/DiscountsManager.js.map +1 -1
- package/dist/admin/components/LocationsManager.d.ts +5 -0
- package/dist/admin/components/LocationsManager.d.ts.map +1 -0
- package/dist/admin/components/LocationsManager.js +202 -0
- package/dist/admin/components/LocationsManager.js.map +1 -0
- package/dist/admin/components/OrderDetails.d.ts.map +1 -1
- package/dist/admin/components/OrderDetails.js +18 -5
- package/dist/admin/components/OrderDetails.js.map +1 -1
- package/dist/admin/components/OrderTable.d.ts.map +1 -1
- package/dist/admin/components/OrderTable.js +71 -9
- package/dist/admin/components/OrderTable.js.map +1 -1
- package/dist/admin/components/PaymentMethodsManager.d.ts.map +1 -1
- package/dist/admin/components/PaymentMethodsManager.js +21 -11
- package/dist/admin/components/PaymentMethodsManager.js.map +1 -1
- package/dist/admin/components/ProductTable.d.ts.map +1 -1
- package/dist/admin/components/ProductTable.js +50 -52
- package/dist/admin/components/ProductTable.js.map +1 -1
- package/dist/admin/components/index.d.ts +4 -0
- package/dist/admin/components/index.d.ts.map +1 -1
- package/dist/admin/components/index.js +2 -0
- package/dist/admin/components/index.js.map +1 -1
- package/dist/admin/hooks/index.d.ts +4 -0
- package/dist/admin/hooks/index.d.ts.map +1 -1
- package/dist/admin/hooks/index.js +2 -0
- package/dist/admin/hooks/index.js.map +1 -1
- package/dist/admin/hooks/useAdminCustomers.d.ts.map +1 -1
- package/dist/admin/hooks/useAdminCustomers.js +31 -0
- package/dist/admin/hooks/useAdminCustomers.js.map +1 -1
- package/dist/admin/hooks/useAdminLocations.d.ts +12 -0
- package/dist/admin/hooks/useAdminLocations.d.ts.map +1 -0
- package/dist/admin/hooks/useAdminLocations.js +77 -0
- package/dist/admin/hooks/useAdminLocations.js.map +1 -0
- package/dist/admin/hooks/useAdminOrders.d.ts.map +1 -1
- package/dist/admin/hooks/useAdminOrders.js +30 -0
- package/dist/admin/hooks/useAdminOrders.js.map +1 -1
- package/dist/admin/hooks/useAdminProducts.d.ts.map +1 -1
- package/dist/admin/hooks/useAdminProducts.js +20 -0
- package/dist/admin/hooks/useAdminProducts.js.map +1 -1
- package/dist/admin/hooks/useBulkSelection.d.ts +32 -0
- package/dist/admin/hooks/useBulkSelection.d.ts.map +1 -0
- package/dist/admin/hooks/useBulkSelection.js +74 -0
- package/dist/admin/hooks/useBulkSelection.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 +6 -4
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/styles/admin-theme.css +3 -1
- package/dist/admin/types.d.ts +74 -0
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/checkout/api/index.d.ts +1 -0
- package/dist/checkout/api/index.d.ts.map +1 -1
- package/dist/checkout/api/index.js +1 -0
- package/dist/checkout/api/index.js.map +1 -1
- package/dist/checkout/api/manual.d.ts.map +1 -1
- package/dist/checkout/api/manual.js +19 -3
- package/dist/checkout/api/manual.js.map +1 -1
- package/dist/checkout/api/pickup-locations.d.ts +21 -0
- package/dist/checkout/api/pickup-locations.d.ts.map +1 -0
- package/dist/checkout/api/pickup-locations.js +44 -0
- package/dist/checkout/api/pickup-locations.js.map +1 -0
- package/dist/checkout/api/shipping.d.ts.map +1 -1
- package/dist/checkout/api/shipping.js +35 -1
- package/dist/checkout/api/shipping.js.map +1 -1
- package/dist/checkout/components/CheckoutFlow.d.ts.map +1 -1
- package/dist/checkout/components/CheckoutFlow.js +178 -9
- package/dist/checkout/components/CheckoutFlow.js.map +1 -1
- package/dist/checkout/server/create-checkout-session.d.ts.map +1 -1
- package/dist/checkout/server/create-checkout-session.js +17 -1
- package/dist/checkout/server/create-checkout-session.js.map +1 -1
- package/dist/checkout/server/order-service.d.ts.map +1 -1
- package/dist/checkout/server/order-service.js +4 -0
- package/dist/checkout/server/order-service.js.map +1 -1
- package/dist/checkout/server/pricing.d.ts +16 -0
- package/dist/checkout/server/pricing.d.ts.map +1 -1
- package/dist/checkout/server/pricing.js +45 -6
- package/dist/checkout/server/pricing.js.map +1 -1
- package/dist/checkout/types.d.ts +39 -2
- package/dist/checkout/types.d.ts.map +1 -1
- package/dist/core/db/index.d.ts +3 -3
- package/dist/core/db/index.d.ts.map +1 -1
- package/dist/core/db/index.js +3 -1
- package/dist/core/db/index.js.map +1 -1
- package/dist/core/db/queries.d.ts +259 -23
- package/dist/core/db/queries.d.ts.map +1 -1
- package/dist/core/db/queries.js +164 -0
- package/dist/core/db/queries.js.map +1 -1
- package/dist/core/db/schema.d.ts +452 -1
- package/dist/core/db/schema.d.ts.map +1 -1
- package/dist/core/db/schema.js +41 -0
- package/dist/core/db/schema.js.map +1 -1
- package/dist/core/server/index.d.ts +2 -2
- package/dist/core/server/index.d.ts.map +1 -1
- package/dist/core/server/index.js +3 -1
- package/dist/core/server/index.js.map +1 -1
- package/dist/emails/index.d.ts +1 -1
- package/dist/emails/index.d.ts.map +1 -1
- package/dist/emails/index.js +1 -1
- package/dist/emails/index.js.map +1 -1
- package/dist/emails/send/index.d.ts +1 -1
- package/dist/emails/send/index.d.ts.map +1 -1
- package/dist/emails/send/index.js +1 -1
- package/dist/emails/send/index.js.map +1 -1
- package/dist/emails/send/orders.d.ts +18 -0
- package/dist/emails/send/orders.d.ts.map +1 -1
- package/dist/emails/send/orders.js +34 -1
- package/dist/emails/send/orders.js.map +1 -1
- package/dist/emails/templates/index.d.ts +1 -0
- package/dist/emails/templates/index.d.ts.map +1 -1
- package/dist/emails/templates/index.js +1 -0
- package/dist/emails/templates/index.js.map +1 -1
- package/dist/emails/templates/order-ready-for-pickup.d.ts +17 -0
- package/dist/emails/templates/order-ready-for-pickup.d.ts.map +1 -0
- package/dist/emails/templates/order-ready-for-pickup.js +85 -0
- package/dist/emails/templates/order-ready-for-pickup.js.map +1 -0
- package/dist/emails/types.d.ts +23 -1
- package/dist/emails/types.d.ts.map +1 -1
- package/dist/media/api/presign.js +1 -1
- package/dist/media/api/presign.js.map +1 -1
- package/dist/media/types.d.ts +1 -1
- package/dist/media/types.d.ts.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
/**
|
|
3
|
+
* @rovela/sdk/admin/hooks/useAdminLocations
|
|
4
|
+
*
|
|
5
|
+
* Store-locations management hook for the admin panel (physical shops —
|
|
6
|
+
* click & collect). Modeled on useAdminPaymentMethods.
|
|
7
|
+
*/
|
|
8
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
9
|
+
import { fetchAdminApi } from './fetchAdminApi';
|
|
10
|
+
export function useAdminLocations() {
|
|
11
|
+
const [locations, setLocations] = useState([]);
|
|
12
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
13
|
+
const [error, setError] = useState(null);
|
|
14
|
+
const fetchLocations = useCallback(async () => {
|
|
15
|
+
setIsLoading(true);
|
|
16
|
+
setError(null);
|
|
17
|
+
const res = await fetchAdminApi('/api/admin/locations');
|
|
18
|
+
setIsLoading(false);
|
|
19
|
+
if (!res.ok) {
|
|
20
|
+
setError(res.error);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
setLocations(res.data.data || []);
|
|
24
|
+
}, []);
|
|
25
|
+
const createLocation = useCallback(async (data) => {
|
|
26
|
+
const res = await fetchAdminApi('/api/admin/locations', {
|
|
27
|
+
method: 'POST',
|
|
28
|
+
headers: { 'Content-Type': 'application/json' },
|
|
29
|
+
body: JSON.stringify(data),
|
|
30
|
+
});
|
|
31
|
+
if (!res.ok) {
|
|
32
|
+
return { success: false, error: res.error };
|
|
33
|
+
}
|
|
34
|
+
await fetchLocations();
|
|
35
|
+
return { success: true, data: res.data.data };
|
|
36
|
+
}, [fetchLocations]);
|
|
37
|
+
const updateLocation = useCallback(async (id, data) => {
|
|
38
|
+
const res = await fetchAdminApi(`/api/admin/locations/${id}`, {
|
|
39
|
+
method: 'PUT',
|
|
40
|
+
headers: { 'Content-Type': 'application/json' },
|
|
41
|
+
body: JSON.stringify(data),
|
|
42
|
+
});
|
|
43
|
+
if (!res.ok) {
|
|
44
|
+
return { success: false, error: res.error };
|
|
45
|
+
}
|
|
46
|
+
await fetchLocations();
|
|
47
|
+
return { success: true, data: res.data.data };
|
|
48
|
+
}, [fetchLocations]);
|
|
49
|
+
const deleteLocation = useCallback(async (id) => {
|
|
50
|
+
const res = await fetchAdminApi(`/api/admin/locations/${id}`, {
|
|
51
|
+
method: 'DELETE',
|
|
52
|
+
});
|
|
53
|
+
if (!res.ok) {
|
|
54
|
+
setError(res.error);
|
|
55
|
+
return { success: false, error: res.error };
|
|
56
|
+
}
|
|
57
|
+
setError(null);
|
|
58
|
+
await fetchLocations();
|
|
59
|
+
return { success: true };
|
|
60
|
+
}, [fetchLocations]);
|
|
61
|
+
// Load locations on mount.
|
|
62
|
+
// Pattern C — populate state from async-loaded data.
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
// eslint-disable-next-line react-hooks/set-state-in-effect
|
|
65
|
+
fetchLocations();
|
|
66
|
+
}, [fetchLocations]);
|
|
67
|
+
return {
|
|
68
|
+
locations,
|
|
69
|
+
isLoading,
|
|
70
|
+
error,
|
|
71
|
+
fetchLocations,
|
|
72
|
+
createLocation,
|
|
73
|
+
updateLocation,
|
|
74
|
+
deleteLocation,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=useAdminLocations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAdminLocations.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminLocations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAdminOrders.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminOrders.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAIV,oBAAoB,EAIrB,MAAM,UAAU,CAAA;AAMjB,wBAAgB,cAAc,IAAI,oBAAoB,
|
|
1
|
+
{"version":3,"file":"useAdminOrders.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminOrders.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAIV,oBAAoB,EAIrB,MAAM,UAAU,CAAA;AAMjB,wBAAgB,cAAc,IAAI,oBAAoB,CAoNrD"}
|
|
@@ -35,6 +35,34 @@ export function useAdminOrders() {
|
|
|
35
35
|
setTotal(res.data.total || 0);
|
|
36
36
|
setPage(res.data.page || 1);
|
|
37
37
|
}, []);
|
|
38
|
+
// Ids-only projection of the current status filter — powers
|
|
39
|
+
// "Select all N matching" in the bulk-selection UI.
|
|
40
|
+
const fetchAllMatchingIds = useCallback(async (options = {}) => {
|
|
41
|
+
const params = new URLSearchParams();
|
|
42
|
+
if (options.status)
|
|
43
|
+
params.set('status', options.status);
|
|
44
|
+
params.set('idsOnly', 'true');
|
|
45
|
+
const res = await fetchAdminApi(`/api/admin/orders?${params.toString()}`);
|
|
46
|
+
if (!res.ok) {
|
|
47
|
+
setError(res.error);
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
return res.data.ids || [];
|
|
51
|
+
}, []);
|
|
52
|
+
const bulkUpdateStatus = useCallback(async (ids, status, notifyCustomer = true) => {
|
|
53
|
+
const res = await fetchAdminApi('/api/admin/orders/bulk', {
|
|
54
|
+
method: 'POST',
|
|
55
|
+
headers: { 'Content-Type': 'application/json' },
|
|
56
|
+
body: JSON.stringify({ ids, status, notifyCustomer }),
|
|
57
|
+
});
|
|
58
|
+
if (!res.ok) {
|
|
59
|
+
return {
|
|
60
|
+
succeeded: [],
|
|
61
|
+
failed: ids.map((id) => ({ id, error: res.error })),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return res.data;
|
|
65
|
+
}, []);
|
|
38
66
|
const updateStatus = useCallback(async (orderId, status, notifyCustomer = true, trackingInfo) => {
|
|
39
67
|
const res = await fetchAdminApi(`/api/admin/orders/${orderId}`, {
|
|
40
68
|
method: 'PUT',
|
|
@@ -108,7 +136,9 @@ export function useAdminOrders() {
|
|
|
108
136
|
isLoading,
|
|
109
137
|
error,
|
|
110
138
|
fetchOrders,
|
|
139
|
+
fetchAllMatchingIds,
|
|
111
140
|
updateStatus,
|
|
141
|
+
bulkUpdateStatus,
|
|
112
142
|
processRefund,
|
|
113
143
|
getOrder,
|
|
114
144
|
approveReturn,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAdminOrders.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminOrders.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useAdminOrders.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminOrders.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAW/C,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAuB,EAAE,CAAC,CAAA;IAC9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACrC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACnC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEvD,MAAM,WAAW,GAAG,WAAW,CAC7B,KAAK,EAAE,UAA4B,EAAE,EAAiB,EAAE;QACtD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;QAEzD,YAAY,CAAC,IAAI,CAAC,CAAA;QAClB,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEd,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QACpC,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACxC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QAErC,MAAM,GAAG,GAAG,MAAM,aAAa,CAI5B,qBAAqB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAE5C,YAAY,CAAC,KAAK,CAAC,CAAA;QAEnB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACnB,OAAM;QACR,CAAC;QAED,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAC9B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;QAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;IAC7B,CAAC,EACD,EAAE,CACH,CAAA;IAED,4DAA4D;IAC5D,oDAAoD;IACpD,MAAM,mBAAmB,GAAG,WAAW,CACrC,KAAK,EAAE,UAA+B,EAAE,EAA4B,EAAE;QACpE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QACpC,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACxD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAE7B,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,qBAAqB,MAAM,CAAC,QAAQ,EAAE,EAAE,CACzC,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAA;IAC3B,CAAC,EACD,EAAE,CACH,CAAA;IAED,MAAM,gBAAgB,GAAG,WAAW,CAClC,KAAK,EACH,GAAa,EACb,MAAc,EACd,iBAA0B,IAAI,EAC6C,EAAE;QAC7E,MAAM,GAAG,GAAG,MAAM,aAAa,CAG5B,wBAAwB,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;SACtD,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO;gBACL,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;aACpD,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAA;IACjB,CAAC,EACD,EAAE,CACH,CAAA;IAED,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EACH,OAAe,EACf,MAAc,EACd,iBAA0B,IAAI,EAC9B,YAAgE,EACrC,EAAE;QAC7B,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,qBAAqB,OAAO,EAAE,EAAE;YAC9D,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM;gBACN,cAAc;gBACd,GAAG,YAAY;aAChB,CAAC;SACH,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;QAC7C,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC,EACD,EAAE,CACH,CAAA;IAED,MAAM,aAAa,GAAG,WAAW,CAC/B,KAAK,EACH,OAAe,EACf,MAAc,EACd,MAAe,EACQ,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,qBAAqB,OAAO,SAAS,EACrC;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM;gBACN,MAAM;gBACN,cAAc,EAAE,IAAI;aACrB,CAAC;SACH,CACF,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;QAC7C,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;IACvD,CAAC,EACD,EAAE,CACH,CAAA;IAED,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EAAE,OAAe,EAAoC,EAAE;QAC1D,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,qBAAqB,OAAO,EAAE,CAC/B,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAA;IACtB,CAAC,EACD,EAAE,CACH,CAAA;IAED,MAAM,aAAa,GAAG,WAAW,CAC/B,KAAK,EACH,OAAe,EACf,iBAA0B,IAAI,EACP,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,qBAAqB,OAAO,iBAAiB,EAC7C;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;SACzC,CACF,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;QAC7C,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YAC3B,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;SAC1B,CAAA;IACH,CAAC,EACD,EAAE,CACH,CAAA;IAED,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EACH,OAAe,EACf,MAAe,EACf,iBAA0B,IAAI,EACP,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,qBAAqB,OAAO,gBAAgB,EAC5C;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;SACjD,CACF,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAA;QAC7C,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;IACrD,CAAC,EACD,EAAE,CACH,CAAA;IAED,OAAO;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,SAAS;QACT,KAAK;QACL,WAAW;QACX,mBAAmB;QACnB,YAAY;QACZ,gBAAgB;QAChB,aAAa;QACb,QAAQ;QACR,aAAa;QACb,YAAY;KACb,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAdminProducts.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminProducts.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAIV,sBAAsB,EAKvB,MAAM,UAAU,CAAA;AAMjB,wBAAgB,gBAAgB,IAAI,sBAAsB,
|
|
1
|
+
{"version":3,"file":"useAdminProducts.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminProducts.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAIV,sBAAsB,EAKvB,MAAM,UAAU,CAAA;AAMjB,wBAAgB,gBAAgB,IAAI,sBAAsB,CA6MzD"}
|
|
@@ -114,6 +114,25 @@ export function useAdminProducts() {
|
|
|
114
114
|
}
|
|
115
115
|
return res.data;
|
|
116
116
|
}, []);
|
|
117
|
+
// Ids-only projection of the current filter — powers "Select all N matching".
|
|
118
|
+
const fetchAllMatchingIds = useCallback(async (options = {}) => {
|
|
119
|
+
const params = new URLSearchParams();
|
|
120
|
+
if (options.search)
|
|
121
|
+
params.set('search', options.search);
|
|
122
|
+
if (options.category)
|
|
123
|
+
params.set('category', options.category);
|
|
124
|
+
if (options.status)
|
|
125
|
+
params.set('status', options.status);
|
|
126
|
+
if (options.outOfStock)
|
|
127
|
+
params.set('outOfStock', 'true');
|
|
128
|
+
params.set('idsOnly', 'true');
|
|
129
|
+
const res = await fetchAdminApi(`/api/admin/products?${params.toString()}`);
|
|
130
|
+
if (!res.ok) {
|
|
131
|
+
setError(res.error);
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
return res.data.ids || [];
|
|
135
|
+
}, []);
|
|
117
136
|
return {
|
|
118
137
|
products,
|
|
119
138
|
total,
|
|
@@ -127,6 +146,7 @@ export function useAdminProducts() {
|
|
|
127
146
|
deleteProduct,
|
|
128
147
|
updateVariant,
|
|
129
148
|
bulkAction,
|
|
149
|
+
fetchAllMatchingIds,
|
|
130
150
|
};
|
|
131
151
|
}
|
|
132
152
|
//# sourceMappingURL=useAdminProducts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAdminProducts.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminProducts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useAdminProducts.js","sourceRoot":"","sources":["../../../src/admin/hooks/useAdminProducts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface UseBulkSelectionReturn {
|
|
2
|
+
/** Selected ids (across pages when in all-matching mode). */
|
|
3
|
+
selected: Set<string>;
|
|
4
|
+
/** True after Select-all-matching; drives the bar's "All N selected" copy. */
|
|
5
|
+
isAllMatching: boolean;
|
|
6
|
+
has: (id: string) => boolean;
|
|
7
|
+
toggle: (id: string) => void;
|
|
8
|
+
/** Header checkbox: select every row on the page, or clear if all already selected. */
|
|
9
|
+
togglePage: (pageIds: string[]) => void;
|
|
10
|
+
/** Extend selection to every id matching the current filter. */
|
|
11
|
+
selectAllMatching: (ids: string[]) => void;
|
|
12
|
+
/** Clear selection entirely. */
|
|
13
|
+
reset: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function useBulkSelection(): UseBulkSelectionReturn;
|
|
16
|
+
export interface BulkChunkResult {
|
|
17
|
+
succeeded: string[];
|
|
18
|
+
failed: {
|
|
19
|
+
id: string;
|
|
20
|
+
error: string;
|
|
21
|
+
}[];
|
|
22
|
+
}
|
|
23
|
+
/** Server-side per-request cap on every admin bulk endpoint. */
|
|
24
|
+
export declare const BULK_CHUNK_SIZE = 100;
|
|
25
|
+
/**
|
|
26
|
+
* Run a bulk action over any number of ids by calling `send` sequentially in
|
|
27
|
+
* chunks of {@link BULK_CHUNK_SIZE} (the server cap), merging per-id results.
|
|
28
|
+
* Sequential on purpose — a 2,000-row select-all must not fire 20 parallel
|
|
29
|
+
* requests at a serverless Neon branch.
|
|
30
|
+
*/
|
|
31
|
+
export declare function runChunkedBulk(ids: string[], send: (chunk: string[]) => Promise<BulkChunkResult>): Promise<BulkChunkResult>;
|
|
32
|
+
//# sourceMappingURL=useBulkSelection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBulkSelection.d.ts","sourceRoot":"","sources":["../../../src/admin/hooks/useBulkSelection.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrB,8EAA8E;IAC9E,aAAa,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;IAC5B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5B,uFAAuF;IACvF,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACvC,gEAAgE;IAChE,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC1C,gCAAgC;IAChC,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED,wBAAgB,gBAAgB,IAAI,sBAAsB,CAuCzD;AAMD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACxC;AAED,gEAAgE;AAChE,eAAO,MAAM,eAAe,MAAM,CAAA;AAElC;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EAAE,EACb,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,eAAe,CAAC,GAClD,OAAO,CAAC,eAAe,CAAC,CAU1B"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
/**
|
|
3
|
+
* @rovela/sdk/admin/hooks/useBulkSelection
|
|
4
|
+
*
|
|
5
|
+
* Shared selection state machine for admin data tables (products, orders,
|
|
6
|
+
* customers). Tracks a Set of selected ids plus an "all matching" mode that
|
|
7
|
+
* extends the selection beyond the current page via an ids-only fetch.
|
|
8
|
+
*
|
|
9
|
+
* Conventions (all three tables follow them):
|
|
10
|
+
* - Selection SURVIVES page changes (verify-then-act flows page around).
|
|
11
|
+
* - Selection RESETS on filter/search/sort changes — call `reset()` from the
|
|
12
|
+
* same effect that refetches page 1, so users never bulk-act on rows they
|
|
13
|
+
* can no longer see.
|
|
14
|
+
* - `selectAllMatching(ids)` receives the full filtered id list (fetched by
|
|
15
|
+
* the caller with `idsOnly=true` on its list endpoint).
|
|
16
|
+
*/
|
|
17
|
+
import { useState, useCallback } from 'react';
|
|
18
|
+
export function useBulkSelection() {
|
|
19
|
+
const [selected, setSelected] = useState(new Set());
|
|
20
|
+
const [isAllMatching, setIsAllMatching] = useState(false);
|
|
21
|
+
const has = useCallback((id) => selected.has(id), [selected]);
|
|
22
|
+
const toggle = useCallback((id) => {
|
|
23
|
+
setIsAllMatching(false);
|
|
24
|
+
setSelected((prev) => {
|
|
25
|
+
const next = new Set(prev);
|
|
26
|
+
if (next.has(id))
|
|
27
|
+
next.delete(id);
|
|
28
|
+
else
|
|
29
|
+
next.add(id);
|
|
30
|
+
return next;
|
|
31
|
+
});
|
|
32
|
+
}, []);
|
|
33
|
+
const togglePage = useCallback((pageIds) => {
|
|
34
|
+
setIsAllMatching(false);
|
|
35
|
+
setSelected((prev) => {
|
|
36
|
+
const allSelected = pageIds.length > 0 && pageIds.every((id) => prev.has(id));
|
|
37
|
+
if (allSelected)
|
|
38
|
+
return new Set();
|
|
39
|
+
const next = new Set(prev);
|
|
40
|
+
for (const id of pageIds)
|
|
41
|
+
next.add(id);
|
|
42
|
+
return next;
|
|
43
|
+
});
|
|
44
|
+
}, []);
|
|
45
|
+
const selectAllMatching = useCallback((ids) => {
|
|
46
|
+
setSelected(new Set(ids));
|
|
47
|
+
setIsAllMatching(true);
|
|
48
|
+
}, []);
|
|
49
|
+
const reset = useCallback(() => {
|
|
50
|
+
setSelected(new Set());
|
|
51
|
+
setIsAllMatching(false);
|
|
52
|
+
}, []);
|
|
53
|
+
return { selected, isAllMatching, has, toggle, togglePage, selectAllMatching, reset };
|
|
54
|
+
}
|
|
55
|
+
/** Server-side per-request cap on every admin bulk endpoint. */
|
|
56
|
+
export const BULK_CHUNK_SIZE = 100;
|
|
57
|
+
/**
|
|
58
|
+
* Run a bulk action over any number of ids by calling `send` sequentially in
|
|
59
|
+
* chunks of {@link BULK_CHUNK_SIZE} (the server cap), merging per-id results.
|
|
60
|
+
* Sequential on purpose — a 2,000-row select-all must not fire 20 parallel
|
|
61
|
+
* requests at a serverless Neon branch.
|
|
62
|
+
*/
|
|
63
|
+
export async function runChunkedBulk(ids, send) {
|
|
64
|
+
const succeeded = [];
|
|
65
|
+
const failed = [];
|
|
66
|
+
for (let i = 0; i < ids.length; i += BULK_CHUNK_SIZE) {
|
|
67
|
+
const chunk = ids.slice(i, i + BULK_CHUNK_SIZE);
|
|
68
|
+
const result = await send(chunk);
|
|
69
|
+
succeeded.push(...result.succeeded);
|
|
70
|
+
failed.push(...result.failed);
|
|
71
|
+
}
|
|
72
|
+
return { succeeded, failed };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=useBulkSelection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBulkSelection.js","sourceRoot":"","sources":["../../../src/admin/hooks/useBulkSelection.ts"],"names":[],"mappings":"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"}
|
package/dist/admin/index.d.ts
CHANGED
|
@@ -54,13 +54,13 @@
|
|
|
54
54
|
* }
|
|
55
55
|
* ```
|
|
56
56
|
*/
|
|
57
|
-
export type { OrderStatus, ProductStatus, AdminRole, Order, OrderItem, Product, ProductVariant, Customer, StoreAdmin, Category, PaginatedResponse, ApiError, Address, AdminApiError, AdminSession, AdminAuthState, AdminSignInOptions, AdminSignInResult, DashboardStats, DashboardPeriod, DashboardSummaryPayload, LowStockItem, RecentOrder, RevenueDataPoint, OrderStatusDataPoint, UseAdminStatsOptions, ProductFormData, VariantFormData, CategoryFormData, ProductListOptions, OrderListOptions, CustomerListOptions, CrudResult, RefundResult, StoreSettingsData, StoreSettingsInput, ShippingCarrierData, ShippingCarrierInput, ShippingRateData, ShippingZoneData, ShippingZoneInput, ShippingRateInput, ShippingSettingsProps, ShippingZoneFormProps, ShippingRateFormProps, TaxZoneData, TaxZoneInput, TaxSettingsProps, ShippingMode, ShippoAddress, ShippoParcel, ShippoRate, ShippoLabelResult, ShippoValidationResult, AdminOrderListItem, AdminOrderDetail, AdminOrderItem, AdminProductListItem, AdminProductDetail, AdminProductVariant, AdminCustomerListItem, AdminCustomerDetail, AdminCustomerAddress, AdminAddressInput, AdminCustomerGroup, AdminCustomerGroupInput, AdminPaymentMethod, AdminPaymentMethodInput, AdminDiscount, AdminDiscountInput, AdminBxgyConfig, AdminCategoryListItem, AdminListItem, AdminUserListOptions, UsersTableProps, UseAdminUsersReturn, UseAdminPermissionsReturn, AdminInviteData, AdminInviteHookResult, InviteUserDialogProps, AdminAcceptInviteFormProps, AdminLayoutProps, AdminGuardProps, AdminLoginFormProps, AdminNavProps, StatsCardsProps, RecentOrdersProps, LowStockAlertProps, ProductTableProps, ProductFormProps, InventoryEditorProps, OrderTableProps, OrderDetailsProps, RefundDialogProps, StoreSettingsProps, CustomerTableProps, CustomerDetailsProps, AdminAuthConfigOptions, UseAdminAuthReturn, UseAdminStatsReturn, UseAdminOrdersReturn, UseAdminProductsReturn, UseAdminCustomersReturn, UseAdminCategoriesReturn, } from './types';
|
|
57
|
+
export type { OrderStatus, ProductStatus, AdminRole, Order, OrderItem, Product, ProductVariant, Customer, StoreAdmin, Category, PaginatedResponse, ApiError, Address, AdminApiError, AdminSession, AdminAuthState, AdminSignInOptions, AdminSignInResult, DashboardStats, DashboardPeriod, DashboardSummaryPayload, LowStockItem, RecentOrder, RevenueDataPoint, OrderStatusDataPoint, UseAdminStatsOptions, ProductFormData, VariantFormData, CategoryFormData, ProductListOptions, OrderListOptions, CustomerListOptions, CrudResult, RefundResult, StoreSettingsData, StoreSettingsInput, ShippingCarrierData, ShippingCarrierInput, ShippingRateData, ShippingZoneData, ShippingZoneInput, ShippingRateInput, ShippingSettingsProps, ShippingZoneFormProps, ShippingRateFormProps, TaxZoneData, TaxZoneInput, TaxSettingsProps, ShippingMode, ShippoAddress, ShippoParcel, ShippoRate, ShippoLabelResult, ShippoValidationResult, AdminOrderListItem, AdminOrderDetail, AdminOrderItem, AdminProductListItem, AdminProductDetail, AdminProductVariant, AdminCustomerListItem, AdminCustomerDetail, AdminCustomerAddress, AdminAddressInput, AdminCustomerGroup, AdminCustomerGroupInput, AdminPaymentMethod, AdminPaymentMethodInput, AdminDiscount, AdminDiscountInput, AdminBxgyConfig, AdminStoreLocation, AdminStoreLocationInput, AdminOpeningHoursDay, AdminCategoryListItem, AdminListItem, AdminUserListOptions, UsersTableProps, UseAdminUsersReturn, UseAdminPermissionsReturn, AdminInviteData, AdminInviteHookResult, InviteUserDialogProps, AdminAcceptInviteFormProps, AdminLayoutProps, AdminGuardProps, AdminLoginFormProps, AdminNavProps, StatsCardsProps, RecentOrdersProps, LowStockAlertProps, ProductTableProps, ProductFormProps, InventoryEditorProps, OrderTableProps, OrderDetailsProps, RefundDialogProps, StoreSettingsProps, CustomerTableProps, CustomerDetailsProps, AdminAuthConfigOptions, UseAdminAuthReturn, UseAdminStatsReturn, UseAdminOrdersReturn, UseAdminProductsReturn, UseAdminCustomersReturn, UseAdminCategoriesReturn, } from './types';
|
|
58
58
|
export { createAdminAuthOptions, getAdminSession, } from './config';
|
|
59
59
|
export { authenticateAdmin, createAdmin, updateAdminPassword, findAdminForSession, findAdminByEmail, findAdminById, updateAdmin, adminEmailExists, countAdmins, requestAdminPasswordReset, validateAdminResetToken, resetAdminPassword, deleteAdminPasswordResetTokens, cleanupExpiredAdminResetTokens, listAdmins, countActiveOwners, deactivateAdmin, reactivateAdmin, hardDeleteAdmin, inviteAdmin, resendAdminInvite, cancelAdminInvite, changeAdminRole, validateInviteToken, acceptAdminInvite, deleteAdminInviteTokens, cleanupExpiredInviteTokens, changeOwnPassword, updateOwnProfile, requireAdmin, invalidateAdminSession, } from './server';
|
|
60
|
-
export { getProducts, createProduct, getProduct, updateProduct, deleteProduct, addVariant, updateVariantHandler, deleteVariantHandler, getOrders, getOrder, updateOrder, processRefund, getStats, getCategories, createCategory, getCategory, updateCategory, deleteCategory, getCustomers, getCustomer, setupAdmin, checkAdminExists, getSettings, updateSettings, getStripeStatus, getShippingCarriers, createShippingCarrier, getShippingCarrier, updateShippingCarrier, deleteShippingCarrier, getShippingZones, createShippingZone, getShippingZone, updateShippingZone, deleteShippingZone, createShippingRate, updateShippingRate, deleteShippingRate, getTaxZones, createTaxZone, getTaxZone, updateTaxZone, deleteTaxZone, } from './api';
|
|
61
|
-
export { useAdminAuth, useAdminSession, useAdminStats, useAdminProducts, useAdminProductMetrics, useAdminOrders, useAdminCategories, useAdminCustomers, useAdminCustomerGroups, useAdminPaymentMethods, useAdminDiscounts, useAdminUsers, useAdminPermissions, useAdminMe, useLinkedCustomerStatus, useSetupGuide, } from './hooks';
|
|
60
|
+
export { getProducts, createProduct, getProduct, updateProduct, deleteProduct, addVariant, updateVariantHandler, deleteVariantHandler, getOrders, getOrder, updateOrder, bulkUpdateOrders, processRefund, getStats, getCategories, createCategory, getCategory, updateCategory, deleteCategory, getCustomers, getCustomer, bulkCustomers, setupAdmin, checkAdminExists, getSettings, updateSettings, getStripeStatus, getShippingCarriers, createShippingCarrier, getShippingCarrier, updateShippingCarrier, deleteShippingCarrier, getShippingZones, createShippingZone, getShippingZone, updateShippingZone, deleteShippingZone, createShippingRate, updateShippingRate, deleteShippingRate, getLocations, createLocationHandler, updateLocationHandler, deleteLocationHandler, getTaxZones, createTaxZone, getTaxZone, updateTaxZone, deleteTaxZone, } from './api';
|
|
61
|
+
export { useAdminAuth, useAdminSession, useAdminStats, useAdminProducts, useAdminProductMetrics, useAdminOrders, useAdminCategories, useAdminCustomers, useAdminCustomerGroups, useAdminPaymentMethods, useAdminDiscounts, useAdminLocations, useBulkSelection, runChunkedBulk, BULK_CHUNK_SIZE, useAdminUsers, useAdminPermissions, useAdminMe, useLinkedCustomerStatus, useSetupGuide, } from './hooks';
|
|
62
62
|
export type { AdminSessionPayload, AdminSessionStatus, UseAdminSessionReturn, SetupTaskId as SetupGuideTaskId, SetupTier as SetupGuideTier, SetupTask as SetupGuideTaskItem, SetupGuideData, ManualMarkKey as SetupGuideManualMarkKey, } from './hooks';
|
|
63
63
|
export type { CategoryTreeItem } from './hooks/useAdminCategories';
|
|
64
|
-
export { AdminGuard, AdminLoginForm, AdminLayout, AdminNav, ExampleContentBanner, StatsCards, RecentOrders, LowStockAlert, RevenueChart, OrderStatusChart, PrimaryMetricsRow, SecondaryMetricsRow, PeriodSelector, SetupGuide, ProductTable, ProductForm, InventoryEditor, CategorySelect, CategoryForm, SEOPreview, TagInput, VariantManager, OrderTable, OrderDetails, RefundDialog, StoreSettings, LogoUpload, PaymentSettings, PaymentMethodsManager, DiscountsManager, AdminDateTimePicker, ShippingSettings, TaxSettings, CustomerTable, CustomerDetails, CustomerGroupsManager, UsersTable, AdminForgotPasswordForm, AdminResetPasswordForm, InviteUserDialog, AdminAcceptInviteForm, AdminAccountPage, PermissionsMatrix, DeleteConfirmDialog, } from './components';
|
|
64
|
+
export { AdminGuard, AdminLoginForm, AdminLayout, AdminNav, ExampleContentBanner, StatsCards, RecentOrders, LowStockAlert, RevenueChart, OrderStatusChart, PrimaryMetricsRow, SecondaryMetricsRow, PeriodSelector, SetupGuide, ProductTable, ProductForm, InventoryEditor, CategorySelect, CategoryForm, SEOPreview, TagInput, VariantManager, OrderTable, OrderDetails, RefundDialog, StoreSettings, LogoUpload, PaymentSettings, PaymentMethodsManager, DiscountsManager, LocationsManager, AdminDateTimePicker, ShippingSettings, TaxSettings, CustomerTable, CustomerDetails, CustomerGroupsManager, UsersTable, AdminForgotPasswordForm, AdminResetPasswordForm, InviteUserDialog, AdminAcceptInviteForm, AdminAccountPage, PermissionsMatrix, DeleteConfirmDialog, BulkActionBar, } from './components';
|
|
65
65
|
export type { RevenueChartProps, OrderStatusChartProps, PrimaryMetricsRowProps, SecondaryMetricsRowProps, PeriodSelectorProps, CategorySelectProps, CategoryFormProps, SEOPreviewProps, TagInputProps, VariantManagerProps, VariantOption, VariantData, DeleteConfirmDialogProps, LogoUploadProps, PermissionsMatrixProps, } from './components';
|
|
66
66
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
|
package/dist/admin/index.js
CHANGED
|
@@ -76,7 +76,7 @@ requireAdmin, invalidateAdminSession, } from './server';
|
|
|
76
76
|
// API Route Handlers (re-exported for convenience)
|
|
77
77
|
// Can also import from '@rovela-ai/sdk/admin/api' for individual handlers
|
|
78
78
|
// =============================================================================
|
|
79
|
-
export { getProducts, createProduct, getProduct, updateProduct, deleteProduct, addVariant, updateVariantHandler, deleteVariantHandler, getOrders, getOrder, updateOrder, processRefund, getStats, getCategories, createCategory, getCategory, updateCategory, deleteCategory, getCustomers, getCustomer,
|
|
79
|
+
export { getProducts, createProduct, getProduct, updateProduct, deleteProduct, addVariant, updateVariantHandler, deleteVariantHandler, getOrders, getOrder, updateOrder, bulkUpdateOrders, processRefund, getStats, getCategories, createCategory, getCategory, updateCategory, deleteCategory, getCustomers, getCustomer, bulkCustomers,
|
|
80
80
|
// Setup (first-time admin creation)
|
|
81
81
|
setupAdmin,
|
|
82
82
|
// Check (check if admin exists)
|
|
@@ -89,12 +89,14 @@ getStripeStatus,
|
|
|
89
89
|
getShippingCarriers, createShippingCarrier, getShippingCarrier, updateShippingCarrier, deleteShippingCarrier,
|
|
90
90
|
// Shipping Zones & Rates
|
|
91
91
|
getShippingZones, createShippingZone, getShippingZone, updateShippingZone, deleteShippingZone, createShippingRate, updateShippingRate, deleteShippingRate,
|
|
92
|
+
// Store locations (physical shops — click & collect)
|
|
93
|
+
getLocations, createLocationHandler, updateLocationHandler, deleteLocationHandler,
|
|
92
94
|
// Tax Zones
|
|
93
95
|
getTaxZones, createTaxZone, getTaxZone, updateTaxZone, deleteTaxZone, } from './api';
|
|
94
96
|
// =============================================================================
|
|
95
97
|
// React Hooks
|
|
96
98
|
// =============================================================================
|
|
97
|
-
export { useAdminAuth, useAdminSession, useAdminStats, useAdminProducts, useAdminProductMetrics, useAdminOrders, useAdminCategories, useAdminCustomers, useAdminCustomerGroups, useAdminPaymentMethods, useAdminDiscounts,
|
|
99
|
+
export { useAdminAuth, useAdminSession, useAdminStats, useAdminProducts, useAdminProductMetrics, useAdminOrders, useAdminCategories, useAdminCustomers, useAdminCustomerGroups, useAdminPaymentMethods, useAdminDiscounts, useAdminLocations, useBulkSelection, runChunkedBulk, BULK_CHUNK_SIZE,
|
|
98
100
|
// Phase 2
|
|
99
101
|
useAdminUsers, useAdminPermissions,
|
|
100
102
|
// Phase 4
|
|
@@ -122,7 +124,7 @@ SEOPreview, TagInput, VariantManager,
|
|
|
122
124
|
// Orders
|
|
123
125
|
OrderTable, OrderDetails, RefundDialog,
|
|
124
126
|
// Settings
|
|
125
|
-
StoreSettings, LogoUpload, PaymentSettings, PaymentMethodsManager, DiscountsManager, AdminDateTimePicker,
|
|
127
|
+
StoreSettings, LogoUpload, PaymentSettings, PaymentMethodsManager, DiscountsManager, LocationsManager, AdminDateTimePicker,
|
|
126
128
|
// Shipping
|
|
127
129
|
ShippingSettings,
|
|
128
130
|
// Tax
|
|
@@ -140,5 +142,5 @@ AdminAccountPage,
|
|
|
140
142
|
// Role reference matrix (shown on Users page)
|
|
141
143
|
PermissionsMatrix,
|
|
142
144
|
// Utility
|
|
143
|
-
DeleteConfirmDialog, } from './components';
|
|
145
|
+
DeleteConfirmDialog, BulkActionBar, } from './components';
|
|
144
146
|
//# sourceMappingURL=index.js.map
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3512,7 +3512,9 @@
|
|
|
3512
3512
|
padding: 0.625rem 0.875rem;
|
|
3513
3513
|
border: 1px solid hsl(var(--admin-primary) / 0.4);
|
|
3514
3514
|
background: hsl(var(--admin-primary) / 0.06);
|
|
3515
|
-
|
|
3515
|
+
/* --admin-radius-lg matches .admin-card. NOTE: there is no bare
|
|
3516
|
+
--admin-radius token — an undefined var() made this square before. */
|
|
3517
|
+
border-radius: var(--admin-radius-lg);
|
|
3516
3518
|
}
|
|
3517
3519
|
|
|
3518
3520
|
.rovela-admin-theme .admin-bulk-bar-count {
|
package/dist/admin/types.d.ts
CHANGED
|
@@ -888,6 +888,12 @@ export interface UseAdminOrdersReturn {
|
|
|
888
888
|
approveReturn: (orderId: string, notifyCustomer?: boolean) => Promise<ReturnResult>;
|
|
889
889
|
/** Reject a return request (order returns to 'delivered' status) */
|
|
890
890
|
rejectReturn: (orderId: string, reason?: string, notifyCustomer?: boolean) => Promise<ReturnResult>;
|
|
891
|
+
/** Ids matching the current status filter (cap 5000) — powers "Select all N matching". Null on error. */
|
|
892
|
+
fetchAllMatchingIds: (options?: {
|
|
893
|
+
status?: string;
|
|
894
|
+
}) => Promise<string[] | null>;
|
|
895
|
+
/** Bulk status update by ID list (max 100 per call — chunk larger selections). */
|
|
896
|
+
bulkUpdateStatus: (ids: string[], status: string, notifyCustomer?: boolean) => Promise<BulkActionResult>;
|
|
891
897
|
}
|
|
892
898
|
/**
|
|
893
899
|
* Return type for useAdminProducts hook.
|
|
@@ -906,6 +912,8 @@ export interface UseAdminProductsReturn {
|
|
|
906
912
|
updateVariant: (productId: string, variantId: string, data: Partial<VariantFormData>) => Promise<CrudResult<unknown>>;
|
|
907
913
|
/** Bulk activate / archive / delete by ID list. Always resolves with both succeeded and failed arrays. */
|
|
908
914
|
bulkAction: (ids: string[], action: 'activate' | 'archive' | 'delete') => Promise<BulkActionResult>;
|
|
915
|
+
/** Ids matching the current filter (cap 5000) — powers "Select all N matching". Null on error. */
|
|
916
|
+
fetchAllMatchingIds: (options?: ProductListOptions) => Promise<string[] | null>;
|
|
909
917
|
}
|
|
910
918
|
/**
|
|
911
919
|
* Return type for useAdminProductMetrics hook.
|
|
@@ -934,6 +942,10 @@ export interface UseAdminCustomersReturn {
|
|
|
934
942
|
groupId?: string | null;
|
|
935
943
|
}) => Promise<CrudResult<AdminCustomerDetail>>;
|
|
936
944
|
deleteCustomer: (id: string) => Promise<CrudResult<void>>;
|
|
945
|
+
/** Ids matching the current filter (cap 5000) — powers "Select all N matching". Null on error. */
|
|
946
|
+
fetchAllMatchingIds: (options?: CustomerListOptions) => Promise<string[] | null>;
|
|
947
|
+
/** Bulk group-assign / soft-delete by ID list (max 100 per call — chunk larger selections). */
|
|
948
|
+
bulkCustomerAction: (ids: string[], action: 'assign_group' | 'delete', groupId?: string | null) => Promise<BulkActionResult>;
|
|
937
949
|
createCustomerAddress: (customerId: string, data: AdminAddressInput) => Promise<CrudResult<AdminCustomerAddress>>;
|
|
938
950
|
updateCustomerAddress: (customerId: string, addressId: string, data: Partial<AdminAddressInput> & {
|
|
939
951
|
setDefault?: 'shipping' | 'billing' | 'both';
|
|
@@ -961,6 +973,8 @@ export interface AdminOrderListItem {
|
|
|
961
973
|
status: string;
|
|
962
974
|
total: string;
|
|
963
975
|
createdAt: string;
|
|
976
|
+
/** Click & collect: set when the order is an in-store pickup. */
|
|
977
|
+
pickupLocationId?: string | null;
|
|
964
978
|
}
|
|
965
979
|
/**
|
|
966
980
|
* Order detail for OrderDetails component.
|
|
@@ -1002,6 +1016,8 @@ export interface AdminOrderDetail {
|
|
|
1002
1016
|
labelUrl?: string;
|
|
1003
1017
|
shippoRateId?: string;
|
|
1004
1018
|
shippingMethod?: string;
|
|
1019
|
+
/** Click & collect: set when the order is an in-store pickup. */
|
|
1020
|
+
pickupLocationId?: string | null;
|
|
1005
1021
|
receiptUrl?: string;
|
|
1006
1022
|
returnReason?: string;
|
|
1007
1023
|
}
|
|
@@ -1204,6 +1220,64 @@ export interface AdminPaymentMethodInput {
|
|
|
1204
1220
|
enabled?: boolean;
|
|
1205
1221
|
sortOrder?: number;
|
|
1206
1222
|
}
|
|
1223
|
+
/** One day in a location's opening-hours grid. Day 0 = Monday … 6 = Sunday. */
|
|
1224
|
+
export interface AdminOpeningHoursDay {
|
|
1225
|
+
day: number;
|
|
1226
|
+
open?: string;
|
|
1227
|
+
close?: string;
|
|
1228
|
+
closed: boolean;
|
|
1229
|
+
}
|
|
1230
|
+
/**
|
|
1231
|
+
* A store location (physical shop) as returned by the admin locations API.
|
|
1232
|
+
* Standalone entity — click & collect consumes it for pickup.
|
|
1233
|
+
*/
|
|
1234
|
+
export interface AdminStoreLocation {
|
|
1235
|
+
id: string;
|
|
1236
|
+
name: string;
|
|
1237
|
+
description: string | null;
|
|
1238
|
+
address1: string | null;
|
|
1239
|
+
address2: string | null;
|
|
1240
|
+
city: string | null;
|
|
1241
|
+
state: string | null;
|
|
1242
|
+
postalCode: string | null;
|
|
1243
|
+
country: string | null;
|
|
1244
|
+
latitude: string | null;
|
|
1245
|
+
longitude: string | null;
|
|
1246
|
+
phone: string | null;
|
|
1247
|
+
email: string | null;
|
|
1248
|
+
imageUrl: string | null;
|
|
1249
|
+
openingHours: AdminOpeningHoursDay[];
|
|
1250
|
+
pickupEnabled: boolean;
|
|
1251
|
+
pickupInstructions: string | null;
|
|
1252
|
+
preparationTime: string | null;
|
|
1253
|
+
isActive: boolean;
|
|
1254
|
+
sortOrder: number;
|
|
1255
|
+
externalId: string | null;
|
|
1256
|
+
createdAt: string | Date;
|
|
1257
|
+
updatedAt: string | Date;
|
|
1258
|
+
}
|
|
1259
|
+
/** Fields accepted when creating/editing a store location. */
|
|
1260
|
+
export interface AdminStoreLocationInput {
|
|
1261
|
+
name: string;
|
|
1262
|
+
description?: string | null;
|
|
1263
|
+
address1?: string | null;
|
|
1264
|
+
address2?: string | null;
|
|
1265
|
+
city?: string | null;
|
|
1266
|
+
state?: string | null;
|
|
1267
|
+
postalCode?: string | null;
|
|
1268
|
+
country?: string | null;
|
|
1269
|
+
latitude?: string | number | null;
|
|
1270
|
+
longitude?: string | number | null;
|
|
1271
|
+
phone?: string | null;
|
|
1272
|
+
email?: string | null;
|
|
1273
|
+
imageUrl?: string | null;
|
|
1274
|
+
openingHours?: AdminOpeningHoursDay[];
|
|
1275
|
+
pickupEnabled?: boolean;
|
|
1276
|
+
pickupInstructions?: string | null;
|
|
1277
|
+
preparationTime?: string | null;
|
|
1278
|
+
isActive?: boolean;
|
|
1279
|
+
sortOrder?: number;
|
|
1280
|
+
}
|
|
1207
1281
|
/** Buy X get Y configuration (client mirror of core BxgyConfig). */
|
|
1208
1282
|
export interface AdminBxgyConfig {
|
|
1209
1283
|
buyQuantity: number;
|