@rovela-ai/sdk 0.5.17 → 0.6.1

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.
Files changed (112) hide show
  1. package/dist/admin/api/customer-groups.d.ts +61 -0
  2. package/dist/admin/api/customer-groups.d.ts.map +1 -0
  3. package/dist/admin/api/customer-groups.js +147 -0
  4. package/dist/admin/api/customer-groups.js.map +1 -0
  5. package/dist/admin/api/customers.d.ts.map +1 -1
  6. package/dist/admin/api/customers.js +28 -9
  7. package/dist/admin/api/customers.js.map +1 -1
  8. package/dist/admin/api/index.d.ts +2 -0
  9. package/dist/admin/api/index.d.ts.map +1 -1
  10. package/dist/admin/api/index.js +4 -0
  11. package/dist/admin/api/index.js.map +1 -1
  12. package/dist/admin/api/payment-methods.d.ts +56 -0
  13. package/dist/admin/api/payment-methods.d.ts.map +1 -0
  14. package/dist/admin/api/payment-methods.js +150 -0
  15. package/dist/admin/api/payment-methods.js.map +1 -0
  16. package/dist/admin/components/CustomerDetails.d.ts.map +1 -1
  17. package/dist/admin/components/CustomerDetails.js +9 -3
  18. package/dist/admin/components/CustomerDetails.js.map +1 -1
  19. package/dist/admin/components/CustomerGroupsManager.d.ts +7 -0
  20. package/dist/admin/components/CustomerGroupsManager.d.ts.map +1 -0
  21. package/dist/admin/components/CustomerGroupsManager.js +86 -0
  22. package/dist/admin/components/CustomerGroupsManager.js.map +1 -0
  23. package/dist/admin/components/CustomerTable.d.ts.map +1 -1
  24. package/dist/admin/components/CustomerTable.js +21 -8
  25. package/dist/admin/components/CustomerTable.js.map +1 -1
  26. package/dist/admin/components/OrderDetails.d.ts.map +1 -1
  27. package/dist/admin/components/OrderDetails.js +7 -2
  28. package/dist/admin/components/OrderDetails.js.map +1 -1
  29. package/dist/admin/components/PaymentMethodsManager.d.ts +5 -0
  30. package/dist/admin/components/PaymentMethodsManager.d.ts.map +1 -0
  31. package/dist/admin/components/PaymentMethodsManager.js +92 -0
  32. package/dist/admin/components/PaymentMethodsManager.js.map +1 -0
  33. package/dist/admin/components/PaymentSettings.d.ts.map +1 -1
  34. package/dist/admin/components/PaymentSettings.js +2 -1
  35. package/dist/admin/components/PaymentSettings.js.map +1 -1
  36. package/dist/admin/components/index.d.ts +4 -0
  37. package/dist/admin/components/index.d.ts.map +1 -1
  38. package/dist/admin/components/index.js +2 -0
  39. package/dist/admin/components/index.js.map +1 -1
  40. package/dist/admin/hooks/index.d.ts +4 -0
  41. package/dist/admin/hooks/index.d.ts.map +1 -1
  42. package/dist/admin/hooks/index.js +2 -0
  43. package/dist/admin/hooks/index.js.map +1 -1
  44. package/dist/admin/hooks/useAdminCustomerGroups.d.ts +12 -0
  45. package/dist/admin/hooks/useAdminCustomerGroups.d.ts.map +1 -0
  46. package/dist/admin/hooks/useAdminCustomerGroups.js +79 -0
  47. package/dist/admin/hooks/useAdminCustomerGroups.js.map +1 -0
  48. package/dist/admin/hooks/useAdminCustomers.d.ts.map +1 -1
  49. package/dist/admin/hooks/useAdminCustomers.js +5 -1
  50. package/dist/admin/hooks/useAdminCustomers.js.map +1 -1
  51. package/dist/admin/hooks/useAdminPaymentMethods.d.ts +12 -0
  52. package/dist/admin/hooks/useAdminPaymentMethods.d.ts.map +1 -0
  53. package/dist/admin/hooks/useAdminPaymentMethods.js +78 -0
  54. package/dist/admin/hooks/useAdminPaymentMethods.js.map +1 -0
  55. package/dist/admin/index.d.ts +3 -3
  56. package/dist/admin/index.d.ts.map +1 -1
  57. package/dist/admin/index.js +3 -3
  58. package/dist/admin/index.js.map +1 -1
  59. package/dist/admin/types.d.ts +53 -0
  60. package/dist/admin/types.d.ts.map +1 -1
  61. package/dist/auth/server/customer-service.d.ts.map +1 -1
  62. package/dist/auth/server/customer-service.js +7 -1
  63. package/dist/auth/server/customer-service.js.map +1 -1
  64. package/dist/checkout/api/index.d.ts +2 -0
  65. package/dist/checkout/api/index.d.ts.map +1 -1
  66. package/dist/checkout/api/index.js +2 -0
  67. package/dist/checkout/api/index.js.map +1 -1
  68. package/dist/checkout/api/manual.d.ts +36 -0
  69. package/dist/checkout/api/manual.d.ts.map +1 -0
  70. package/dist/checkout/api/manual.js +289 -0
  71. package/dist/checkout/api/manual.js.map +1 -0
  72. package/dist/checkout/api/payment-methods.d.ts +25 -0
  73. package/dist/checkout/api/payment-methods.d.ts.map +1 -0
  74. package/dist/checkout/api/payment-methods.js +36 -0
  75. package/dist/checkout/api/payment-methods.js.map +1 -0
  76. package/dist/checkout/components/CheckoutFlow.d.ts.map +1 -1
  77. package/dist/checkout/components/CheckoutFlow.js +33 -4
  78. package/dist/checkout/components/CheckoutFlow.js.map +1 -1
  79. package/dist/checkout/hooks/useCheckout.d.ts.map +1 -1
  80. package/dist/checkout/hooks/useCheckout.js +76 -0
  81. package/dist/checkout/hooks/useCheckout.js.map +1 -1
  82. package/dist/checkout/server/order-service.d.ts.map +1 -1
  83. package/dist/checkout/server/order-service.js +17 -7
  84. package/dist/checkout/server/order-service.js.map +1 -1
  85. package/dist/checkout/types.d.ts +24 -2
  86. package/dist/checkout/types.d.ts.map +1 -1
  87. package/dist/core/db/index.d.ts +3 -3
  88. package/dist/core/db/index.d.ts.map +1 -1
  89. package/dist/core/db/index.js +4 -0
  90. package/dist/core/db/index.js.map +1 -1
  91. package/dist/core/db/queries.d.ts +194 -10
  92. package/dist/core/db/queries.d.ts.map +1 -1
  93. package/dist/core/db/queries.js +300 -2
  94. package/dist/core/db/queries.js.map +1 -1
  95. package/dist/core/db/schema.d.ts +376 -0
  96. package/dist/core/db/schema.d.ts.map +1 -1
  97. package/dist/core/db/schema.js +70 -1
  98. package/dist/core/db/schema.js.map +1 -1
  99. package/dist/core/server/index.d.ts +2 -2
  100. package/dist/core/server/index.d.ts.map +1 -1
  101. package/dist/core/server/index.js +4 -0
  102. package/dist/core/server/index.js.map +1 -1
  103. package/dist/emails/send/orders.d.ts +2 -0
  104. package/dist/emails/send/orders.d.ts.map +1 -1
  105. package/dist/emails/send/orders.js +1 -0
  106. package/dist/emails/send/orders.js.map +1 -1
  107. package/dist/emails/templates/order-confirmation.d.ts.map +1 -1
  108. package/dist/emails/templates/order-confirmation.js +9 -0
  109. package/dist/emails/templates/order-confirmation.js.map +1 -1
  110. package/dist/emails/types.d.ts +2 -0
  111. package/dist/emails/types.d.ts.map +1 -1
  112. package/package.json +9 -1
@@ -0,0 +1,150 @@
1
+ /**
2
+ * @rovela/sdk/admin/api/payment-methods
3
+ *
4
+ * API route handlers for merchant-managed payment methods (the registry
5
+ * behind checkout's non-Stripe options). v1 manages `kind='manual'` methods
6
+ * (cash on delivery, wire transfer…); `kind='external'` rows are reserved for
7
+ * provider integrations that plug into the same registry.
8
+ *
9
+ * Usage:
10
+ * ```typescript
11
+ * // app/api/admin/payment-methods/route.ts
12
+ * import { getPaymentMethods, createPaymentMethodHandler } from '@rovela-ai/sdk/admin/api'
13
+ * export { getPaymentMethods as GET, createPaymentMethodHandler as POST }
14
+ *
15
+ * // app/api/admin/payment-methods/[id]/route.ts
16
+ * import { updatePaymentMethodHandler, deletePaymentMethodHandler } from '@rovela-ai/sdk/admin/api'
17
+ * export { updatePaymentMethodHandler as PUT, deletePaymentMethodHandler as DELETE }
18
+ * ```
19
+ */
20
+ import { NextResponse } from 'next/server';
21
+ import { requireAdmin } from '../server/admin-session';
22
+ import { findPaymentMethods, findPaymentMethodById, createPaymentMethod, updatePaymentMethod, deletePaymentMethod, } from '../../core/db/queries';
23
+ const MAX_INSTRUCTIONS = 4000;
24
+ function parseMethodBody(body, { requireName }) {
25
+ if (!body || typeof body !== 'object')
26
+ return { error: 'Invalid request body' };
27
+ const b = body;
28
+ const out = {};
29
+ if (b.name !== undefined) {
30
+ if (typeof b.name !== 'string' || !b.name.trim())
31
+ return { error: 'Name is required' };
32
+ out.name = b.name.trim().slice(0, 100);
33
+ }
34
+ else if (requireName) {
35
+ return { error: 'Name is required' };
36
+ }
37
+ if (b.instructions !== undefined) {
38
+ if (b.instructions !== null && typeof b.instructions !== 'string') {
39
+ return { error: 'Instructions must be a string' };
40
+ }
41
+ out.instructions =
42
+ typeof b.instructions === 'string'
43
+ ? b.instructions.trim().slice(0, MAX_INSTRUCTIONS) || null
44
+ : null;
45
+ }
46
+ if (b.enabled !== undefined) {
47
+ if (typeof b.enabled !== 'boolean')
48
+ return { error: 'enabled must be a boolean' };
49
+ out.enabled = b.enabled;
50
+ }
51
+ if (b.sortOrder !== undefined) {
52
+ const n = Number(b.sortOrder);
53
+ if (!Number.isInteger(n))
54
+ return { error: 'sortOrder must be an integer' };
55
+ out.sortOrder = n;
56
+ }
57
+ // v1 admin CRUD only manages manual methods; external rows are created by
58
+ // provider integrations, not this form. Force the kind.
59
+ out.kind = 'manual';
60
+ return { data: out };
61
+ }
62
+ /**
63
+ * GET /api/admin/payment-methods — all methods, admin view.
64
+ */
65
+ export async function getPaymentMethods() {
66
+ const guard = await requireAdmin({ permission: 'settings.read' });
67
+ if (!guard.ok)
68
+ return guard.response;
69
+ try {
70
+ const methods = await findPaymentMethods();
71
+ return NextResponse.json({ data: methods });
72
+ }
73
+ catch (error) {
74
+ console.error('[Admin Payment Methods API] list error:', error);
75
+ return NextResponse.json({ error: 'Failed to load payment methods', code: 'INTERNAL_ERROR' }, { status: 500 });
76
+ }
77
+ }
78
+ /**
79
+ * POST /api/admin/payment-methods — create a manual method.
80
+ * Body: { name, instructions?, enabled?, sortOrder? }
81
+ */
82
+ export async function createPaymentMethodHandler(request) {
83
+ const guard = await requireAdmin({ permission: 'settings.write' });
84
+ if (!guard.ok)
85
+ return guard.response;
86
+ try {
87
+ const parsed = parseMethodBody(await request.json(), { requireName: true });
88
+ if ('error' in parsed) {
89
+ return NextResponse.json({ error: parsed.error, code: 'VALIDATION_ERROR' }, { status: 400 });
90
+ }
91
+ const method = await createPaymentMethod(parsed.data);
92
+ return NextResponse.json({ data: method }, { status: 201 });
93
+ }
94
+ catch (error) {
95
+ console.error('[Admin Payment Methods API] create error:', error);
96
+ return NextResponse.json({ error: 'Failed to create payment method', code: 'INTERNAL_ERROR' }, { status: 500 });
97
+ }
98
+ }
99
+ /**
100
+ * PUT /api/admin/payment-methods/[id] — update fields (partial).
101
+ */
102
+ export async function updatePaymentMethodHandler(request, { params }) {
103
+ const guard = await requireAdmin({ permission: 'settings.write' });
104
+ if (!guard.ok)
105
+ return guard.response;
106
+ try {
107
+ const { id } = await params;
108
+ const parsed = parseMethodBody(await request.json(), { requireName: false });
109
+ if ('error' in parsed) {
110
+ return NextResponse.json({ error: parsed.error, code: 'VALIDATION_ERROR' }, { status: 400 });
111
+ }
112
+ // `kind` is forced by the parser; a name-less, field-less body is a no-op.
113
+ const { kind: _kind, ...fields } = parsed.data;
114
+ if (Object.keys(fields).length === 0) {
115
+ return NextResponse.json({ error: 'At least one field is required', code: 'VALIDATION_ERROR' }, { status: 400 });
116
+ }
117
+ const method = await updatePaymentMethod(id, fields);
118
+ if (!method) {
119
+ return NextResponse.json({ error: 'Payment method not found', code: 'NOT_FOUND' }, { status: 404 });
120
+ }
121
+ return NextResponse.json({ data: method });
122
+ }
123
+ catch (error) {
124
+ console.error('[Admin Payment Methods API] update error:', error);
125
+ return NextResponse.json({ error: 'Failed to update payment method', code: 'INTERNAL_ERROR' }, { status: 500 });
126
+ }
127
+ }
128
+ /**
129
+ * DELETE /api/admin/payment-methods/[id] — remove a method. Existing orders
130
+ * keep their snapshotted method label, so history stays intact.
131
+ */
132
+ export async function deletePaymentMethodHandler(_request, { params }) {
133
+ const guard = await requireAdmin({ permission: 'settings.write' });
134
+ if (!guard.ok)
135
+ return guard.response;
136
+ try {
137
+ const { id } = await params;
138
+ const existing = await findPaymentMethodById(id);
139
+ if (!existing) {
140
+ return NextResponse.json({ error: 'Payment method not found', code: 'NOT_FOUND' }, { status: 404 });
141
+ }
142
+ await deletePaymentMethod(id);
143
+ return NextResponse.json({ success: true });
144
+ }
145
+ catch (error) {
146
+ console.error('[Admin Payment Methods API] delete error:', error);
147
+ return NextResponse.json({ error: 'Failed to delete payment method', code: 'INTERNAL_ERROR' }, { status: 500 });
148
+ }
149
+ }
150
+ //# sourceMappingURL=payment-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-methods.js","sourceRoot":"","sources":["../../../src/admin/api/payment-methods.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,uBAAuB,CAAA;AAG9B,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAE7B,SAAS,eAAe,CACtB,IAAa,EACb,EAAE,WAAW,EAA4B;IAEzC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAA;IAC/E,MAAM,CAAC,GAAG,IAA+B,CAAA;IACzC,MAAM,GAAG,GAAgC,EAAE,CAAA;IAE3C,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAA;QACtF,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAA;IACtC,CAAC;IAED,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAClE,OAAO,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAA;QACnD,CAAC;QACD,GAAG,CAAC,YAAY;YACd,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ;gBAChC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,IAAI;gBAC1D,CAAC,CAAC,IAAI,CAAA;IACZ,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAA;QACjF,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAA;IACzB,CAAC;IAED,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAA;QAC1E,GAAG,CAAC,SAAS,GAAG,CAAC,CAAA;IACnB,CAAC;IAED,0EAA0E;IAC1E,wDAAwD;IACxD,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAA;IAEnB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAA;IACjE,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAA;QAC1C,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAA;QAC/D,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,KAAK,EAAE,gCAAgC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EACnE,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAClE,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3E,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC9F,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,IAA0B,CAAC,CAAA;QAC3E,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAA;QACjE,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,KAAK,EAAE,iCAAiC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EACpE,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAoB,EACpB,EAAE,MAAM,EAAuC;IAE/C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAClE,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAA;QAC3B,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;QAC5E,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC9F,CAAC;QACD,2EAA2E;QAC3E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAA;QAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,KAAK,EAAE,gCAAgC,EAAE,IAAI,EAAE,kBAAkB,EAAE,EACrE,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACrG,CAAC;QACD,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAA;QACjE,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,KAAK,EAAE,iCAAiC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EACpE,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAqB,EACrB,EAAE,MAAM,EAAuC;IAE/C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAClE,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAA;IAEpC,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,MAAM,CAAA;QAC3B,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QACrG,CAAC;QACD,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAA;QAC7B,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAA;QACjE,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,KAAK,EAAE,iCAAiC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EACpE,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerDetails.d.ts","sourceRoot":"","sources":["../../../src/admin/components/CustomerDetails.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAuB,MAAM,UAAU,CAAA;AA8DzE;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAc,GACf,EAAE,oBAAoB,2CA0ctB"}
1
+ {"version":3,"file":"CustomerDetails.d.ts","sourceRoot":"","sources":["../../../src/admin/components/CustomerDetails.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAuB,MAAM,UAAU,CAAA;AA+DzE;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,MAAM,EACN,QAAQ,EACR,SAAc,GACf,EAAE,oBAAoB,2CA6etB"}
@@ -7,10 +7,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  */
8
8
  import { useState, useEffect, useCallback } from 'react';
9
9
  import { useAdminCustomers } from '../hooks/useAdminCustomers';
10
+ import { useAdminCustomerGroups } from '../hooks/useAdminCustomerGroups';
10
11
  import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
11
12
  import { DeleteConfirmDialog } from './DeleteConfirmDialog';
12
13
  import { CustomerAddressPanel } from './CustomerAddressPanel';
13
- import { ArrowLeft, Mail, User, Phone, Calendar, CheckCircle, Clock, CreditCard, ShoppingBag, DollarSign, Pencil, Trash2, X, Check, } from 'lucide-react';
14
+ import { ArrowLeft, Mail, User, Phone, Tags, Calendar, CheckCircle, Clock, CreditCard, ShoppingBag, DollarSign, Pencil, Trash2, X, Check, } from 'lucide-react';
14
15
  // =============================================================================
15
16
  // Status Badges - Pure CSS Classes
16
17
  // =============================================================================
@@ -49,6 +50,7 @@ function OrderStatusBadge({ status }) {
49
50
  */
50
51
  export function CustomerDetails({ customerId, onBack, onDelete, className = '', }) {
51
52
  const { getCustomer, updateCustomer, deleteCustomer, createCustomerAddress, updateCustomerAddress, deleteCustomerAddress, } = useAdminCustomers();
53
+ const { groups } = useAdminCustomerGroups();
52
54
  const [customer, setCustomer] = useState(null);
53
55
  const [isLoading, setIsLoading] = useState(true);
54
56
  // Edit state
@@ -56,6 +58,7 @@ export function CustomerDetails({ customerId, onBack, onDelete, className = '',
56
58
  const [editName, setEditName] = useState('');
57
59
  const [editEmail, setEditEmail] = useState('');
58
60
  const [editPhone, setEditPhone] = useState('');
61
+ const [editGroupId, setEditGroupId] = useState(''); // '' = no group
59
62
  const [isSaving, setIsSaving] = useState(false);
60
63
  const [editError, setEditError] = useState(null);
61
64
  // Delete state
@@ -109,6 +112,7 @@ export function CustomerDetails({ customerId, onBack, onDelete, className = '',
109
112
  setEditName(customer.name || '');
110
113
  setEditEmail(customer.email);
111
114
  setEditPhone(customer.phone || '');
115
+ setEditGroupId(customer.groupId || '');
112
116
  setEditError(null);
113
117
  setIsEditing(true);
114
118
  }
@@ -126,6 +130,7 @@ export function CustomerDetails({ customerId, onBack, onDelete, className = '',
126
130
  name: editName || undefined,
127
131
  email: editEmail,
128
132
  phone: editPhone.trim() || null,
133
+ groupId: editGroupId || null,
129
134
  });
130
135
  setIsSaving(false);
131
136
  if (result.success && result.data) {
@@ -135,6 +140,7 @@ export function CustomerDetails({ customerId, onBack, onDelete, className = '',
135
140
  name: result.data.name,
136
141
  email: result.data.email,
137
142
  phone: result.data.phone ?? null,
143
+ groupId: result.data.groupId ?? null,
138
144
  }
139
145
  : null);
140
146
  setIsEditing(false);
@@ -142,7 +148,7 @@ export function CustomerDetails({ customerId, onBack, onDelete, className = '',
142
148
  else {
143
149
  setEditError(result.error || 'Failed to update customer');
144
150
  }
145
- }, [customer, editName, editEmail, editPhone, updateCustomer]);
151
+ }, [customer, editName, editEmail, editPhone, editGroupId, updateCustomer]);
146
152
  // Delete handlers
147
153
  const handleDeleteClick = useCallback(() => {
148
154
  setDeleteError(null);
@@ -177,6 +183,6 @@ export function CustomerDetails({ customerId, onBack, onDelete, className = '',
177
183
  if (!customer) {
178
184
  return (_jsxs("div", { className: `admin-card p-12 text-center ${className}`, children: [_jsx(User, { className: "mx-auto h-12 w-12 admin-empty-icon" }), _jsx("p", { className: "mt-4 admin-empty-text", children: "Customer not found" }), onBack && (_jsx("button", { onClick: onBack, className: "mt-4 admin-link-primary text-sm", children: "Go back" }))] }));
179
185
  }
180
- return (_jsxs("div", { className: `space-y-6 ${className}`, children: [onBack && (_jsx("div", { className: "flex items-center justify-between", children: _jsxs("div", { className: "flex items-center gap-4", children: [_jsx("button", { onClick: onBack, className: "admin-btn admin-btn-secondary p-2", children: _jsx(ArrowLeft, { className: "h-4 w-4" }) }), _jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("h1", { className: "admin-page-title", children: customer.name || 'Unnamed Customer' }), _jsx(VerificationBadge, { verified: !!customer.emailVerified })] }), _jsx("p", { className: "admin-page-subtitle", children: customer.email })] })] }) })), _jsxs("div", { className: "grid gap-6 lg:grid-cols-3", children: [_jsxs("div", { className: "lg:col-span-2 space-y-6", children: [_jsxs("div", { className: "admin-card overflow-hidden", children: [_jsxs("div", { className: "admin-card-header flex items-center justify-between", children: [_jsx("h2", { className: "admin-card-title", children: "Customer Information" }), !isEditing && (_jsxs("button", { onClick: handleEditStart, className: "admin-action-link inline-flex items-center gap-1", children: [_jsx(Pencil, { className: "h-3 w-3" }), "Edit"] }))] }), _jsx("div", { className: "p-6", children: isEditing ? (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Name" }), _jsx("input", { type: "text", value: editName, onChange: (e) => setEditName(e.target.value), placeholder: "Customer name", className: "admin-input w-full" })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Email" }), _jsx("input", { type: "email", value: editEmail, onChange: (e) => setEditEmail(e.target.value), placeholder: "customer@example.com", className: "admin-input w-full" })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Phone" }), _jsx("input", { type: "tel", value: editPhone, onChange: (e) => setEditPhone(e.target.value), placeholder: "Customer phone", className: "admin-input w-full", maxLength: 40 })] }), editError && (_jsx("p", { className: "admin-error-text text-sm", children: editError })), _jsxs("div", { className: "flex gap-2", children: [_jsxs("button", { onClick: handleEditSave, disabled: isSaving, className: "admin-btn admin-btn-primary admin-btn-sm inline-flex items-center gap-1 disabled:opacity-50", children: [_jsx(Check, { className: "h-3 w-3" }), isSaving ? 'Saving...' : 'Save'] }), _jsxs("button", { onClick: handleEditCancel, disabled: isSaving, className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-1 disabled:opacity-50", children: [_jsx(X, { className: "h-3 w-3" }), "Cancel"] })] })] })) : (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Mail, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Email" }), _jsx("p", { children: customer.email })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(User, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Name" }), _jsx("p", { children: customer.name || 'Not provided' })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Phone, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Phone" }), _jsx("p", { children: customer.phone || 'Not provided' })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Calendar, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Joined" }), _jsx("p", { children: formatDate(customer.createdAt) })] })] }), customer.stripeCustomerId && (_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(CreditCard, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Stripe Customer ID" }), _jsx("p", { className: "font-mono text-sm", children: customer.stripeCustomerId })] })] }))] })) })] }), _jsxs("div", { className: "admin-card overflow-hidden", children: [_jsx("div", { className: "admin-card-header", children: _jsx("h2", { className: "admin-card-title", children: "Order History" }) }), customer.orders && customer.orders.length > 0 ? (_jsx("div", { className: "admin-card-divider-y", children: customer.orders.map((order) => (_jsxs("a", { href: `/admin/orders/${order.id}`, className: "admin-inventory-item flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-4", children: [_jsx("div", { className: "admin-image-placeholder h-10 w-10 rounded", children: _jsx(ShoppingBag, { className: "h-5 w-5" }) }), _jsxs("div", { children: [_jsxs("p", { className: "admin-inventory-item-link", children: ["Order #", order.id.slice(-8).toUpperCase()] }), _jsx("p", { className: "text-sm admin-text-muted", children: formatDateTime(order.createdAt) })] })] }), _jsxs("div", { className: "flex items-center gap-4", children: [_jsx(OrderStatusBadge, { status: order.status }), _jsx("span", { className: "font-medium", children: formatCurrency(order.total) })] })] }, order.id))) })) : (_jsxs("div", { className: "admin-empty-state py-12", children: [_jsx(ShoppingBag, { className: "mx-auto h-8 w-8 admin-empty-icon" }), _jsx("p", { className: "mt-2 admin-empty-text text-sm", children: "No orders yet" })] }))] }), _jsx(CustomerAddressPanel, { customerId: customer.id, addresses: customer.addresses || [], onCreate: createCustomerAddress, onUpdate: updateCustomerAddress, onDelete: deleteCustomerAddress })] }), _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "admin-card p-6", children: [_jsx("h2", { className: "admin-card-title mb-4", children: "Customer Stats" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2 admin-text-muted", children: [_jsx(ShoppingBag, { className: "h-4 w-4" }), _jsx("span", { className: "text-sm", children: "Total Orders" })] }), _jsx("span", { className: "font-medium", children: customer.stats?.totalOrders ?? 0 })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2 admin-text-muted", children: [_jsx(DollarSign, { className: "h-4 w-4" }), _jsx("span", { className: "text-sm", children: "Total Spent" })] }), _jsx("span", { className: "font-medium", children: formatCurrency(customer.stats?.totalSpent ?? 0) })] })] })] }), _jsxs("div", { className: "admin-card p-6", children: [_jsx("h2", { className: "admin-card-title mb-4", children: "Actions" }), _jsxs("div", { className: "space-y-3", children: [_jsxs("button", { onClick: handleDeleteClick, className: "admin-btn admin-btn-destructive w-full inline-flex items-center justify-center gap-2", children: [_jsx(Trash2, { className: "h-4 w-4" }), "Delete Customer"] }), _jsx("p", { className: "text-xs admin-text-muted", children: "Deleting a customer anonymizes their data while preserving order history." })] })] })] })] }), _jsx(DeleteConfirmDialog, { isOpen: showDeleteDialog, title: "Delete Customer", itemName: customer.name || customer.email, itemType: "customer", isDeleting: isDeleting, error: deleteError, onConfirm: handleDeleteConfirm, onCancel: handleDeleteCancel })] }));
186
+ return (_jsxs("div", { className: `space-y-6 ${className}`, children: [onBack && (_jsx("div", { className: "flex items-center justify-between", children: _jsxs("div", { className: "flex items-center gap-4", children: [_jsx("button", { onClick: onBack, className: "admin-btn admin-btn-secondary p-2", children: _jsx(ArrowLeft, { className: "h-4 w-4" }) }), _jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("h1", { className: "admin-page-title", children: customer.name || 'Unnamed Customer' }), _jsx(VerificationBadge, { verified: !!customer.emailVerified })] }), _jsx("p", { className: "admin-page-subtitle", children: customer.email })] })] }) })), _jsxs("div", { className: "grid gap-6 lg:grid-cols-3", children: [_jsxs("div", { className: "lg:col-span-2 space-y-6", children: [_jsxs("div", { className: "admin-card overflow-hidden", children: [_jsxs("div", { className: "admin-card-header flex items-center justify-between", children: [_jsx("h2", { className: "admin-card-title", children: "Customer Information" }), !isEditing && (_jsxs("button", { onClick: handleEditStart, className: "admin-action-link inline-flex items-center gap-1", children: [_jsx(Pencil, { className: "h-3 w-3" }), "Edit"] }))] }), _jsx("div", { className: "p-6", children: isEditing ? (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Name" }), _jsx("input", { type: "text", value: editName, onChange: (e) => setEditName(e.target.value), placeholder: "Customer name", className: "admin-input w-full" })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Email" }), _jsx("input", { type: "email", value: editEmail, onChange: (e) => setEditEmail(e.target.value), placeholder: "customer@example.com", className: "admin-input w-full" })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Phone" }), _jsx("input", { type: "tel", value: editPhone, onChange: (e) => setEditPhone(e.target.value), placeholder: "Customer phone", className: "admin-input w-full", maxLength: 40 })] }), _jsxs("div", { children: [_jsx("label", { className: "admin-label", children: "Group" }), _jsxs("select", { value: editGroupId, onChange: (e) => setEditGroupId(e.target.value), className: "admin-input w-full", children: [_jsx("option", { value: "", children: "No group" }), groups.map((g) => (_jsx("option", { value: g.id, children: g.name }, g.id)))] })] }), editError && (_jsx("p", { className: "admin-error-text text-sm", children: editError })), _jsxs("div", { className: "flex gap-2", children: [_jsxs("button", { onClick: handleEditSave, disabled: isSaving, className: "admin-btn admin-btn-primary admin-btn-sm inline-flex items-center gap-1 disabled:opacity-50", children: [_jsx(Check, { className: "h-3 w-3" }), isSaving ? 'Saving...' : 'Save'] }), _jsxs("button", { onClick: handleEditCancel, disabled: isSaving, className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-1 disabled:opacity-50", children: [_jsx(X, { className: "h-3 w-3" }), "Cancel"] })] })] })) : (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Mail, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Email" }), _jsx("p", { children: customer.email })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(User, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Name" }), _jsx("p", { children: customer.name || 'Not provided' })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Phone, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Phone" }), _jsx("p", { children: customer.phone || 'Not provided' })] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Tags, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Group" }), customer.groupId ? (_jsx("span", { className: "admin-badge admin-badge-neutral", children: groups.find((g) => g.id === customer.groupId)?.name || 'Unknown group' })) : (_jsx("p", { className: "admin-text-muted", children: "No group" }))] })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Calendar, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Joined" }), _jsx("p", { children: formatDate(customer.createdAt) })] })] }), customer.stripeCustomerId && (_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(CreditCard, { className: "h-4 w-4 admin-text-muted" }), _jsxs("div", { children: [_jsx("p", { className: "text-sm admin-text-muted", children: "Stripe Customer ID" }), _jsx("p", { className: "font-mono text-sm", children: customer.stripeCustomerId })] })] }))] })) })] }), _jsxs("div", { className: "admin-card overflow-hidden", children: [_jsx("div", { className: "admin-card-header", children: _jsx("h2", { className: "admin-card-title", children: "Order History" }) }), customer.orders && customer.orders.length > 0 ? (_jsx("div", { className: "admin-card-divider-y", children: customer.orders.map((order) => (_jsxs("a", { href: `/admin/orders/${order.id}`, className: "admin-inventory-item flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-4", children: [_jsx("div", { className: "admin-image-placeholder h-10 w-10 rounded", children: _jsx(ShoppingBag, { className: "h-5 w-5" }) }), _jsxs("div", { children: [_jsxs("p", { className: "admin-inventory-item-link", children: ["Order #", order.id.slice(-8).toUpperCase()] }), _jsx("p", { className: "text-sm admin-text-muted", children: formatDateTime(order.createdAt) })] })] }), _jsxs("div", { className: "flex items-center gap-4", children: [_jsx(OrderStatusBadge, { status: order.status }), _jsx("span", { className: "font-medium", children: formatCurrency(order.total) })] })] }, order.id))) })) : (_jsxs("div", { className: "admin-empty-state py-12", children: [_jsx(ShoppingBag, { className: "mx-auto h-8 w-8 admin-empty-icon" }), _jsx("p", { className: "mt-2 admin-empty-text text-sm", children: "No orders yet" })] }))] }), _jsx(CustomerAddressPanel, { customerId: customer.id, addresses: customer.addresses || [], onCreate: createCustomerAddress, onUpdate: updateCustomerAddress, onDelete: deleteCustomerAddress })] }), _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "admin-card p-6", children: [_jsx("h2", { className: "admin-card-title mb-4", children: "Customer Stats" }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2 admin-text-muted", children: [_jsx(ShoppingBag, { className: "h-4 w-4" }), _jsx("span", { className: "text-sm", children: "Total Orders" })] }), _jsx("span", { className: "font-medium", children: customer.stats?.totalOrders ?? 0 })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2 admin-text-muted", children: [_jsx(DollarSign, { className: "h-4 w-4" }), _jsx("span", { className: "text-sm", children: "Total Spent" })] }), _jsx("span", { className: "font-medium", children: formatCurrency(customer.stats?.totalSpent ?? 0) })] })] })] }), _jsxs("div", { className: "admin-card p-6", children: [_jsx("h2", { className: "admin-card-title mb-4", children: "Actions" }), _jsxs("div", { className: "space-y-3", children: [_jsxs("button", { onClick: handleDeleteClick, className: "admin-btn admin-btn-destructive w-full inline-flex items-center justify-center gap-2", children: [_jsx(Trash2, { className: "h-4 w-4" }), "Delete Customer"] }), _jsx("p", { className: "text-xs admin-text-muted", children: "Deleting a customer anonymizes their data while preserving order history." })] })] })] })] }), _jsx(DeleteConfirmDialog, { isOpen: showDeleteDialog, title: "Delete Customer", itemName: customer.name || customer.email, itemType: "customer", isDeleting: isDeleting, error: deleteError, onConfirm: handleDeleteConfirm, onCancel: handleDeleteCancel })] }));
181
187
  }
182
188
  //# sourceMappingURL=CustomerDetails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerDetails.js","sourceRoot":"","sources":["../../../src/admin/components/CustomerDetails.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomerDetails.js","sourceRoot":"","sources":["../../../src/admin/components/CustomerDetails.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface CustomerGroupsManagerProps {
2
+ className?: string;
3
+ /** Called after any create/update/delete so the parent can refresh badges. */
4
+ onChanged?: () => void;
5
+ }
6
+ export declare function CustomerGroupsManager({ className, onChanged }: CustomerGroupsManagerProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=CustomerGroupsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomerGroupsManager.d.ts","sourceRoot":"","sources":["../../../src/admin/components/CustomerGroupsManager.tsx"],"names":[],"mappings":"AAgBA,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAID,wBAAgB,qBAAqB,CAAC,EAAE,SAAc,EAAE,SAAS,EAAE,EAAE,0BAA0B,2CAyN9F"}
@@ -0,0 +1,86 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ /**
4
+ * @rovela/sdk/admin/components/CustomerGroupsManager
5
+ *
6
+ * Lightweight manager for merchant-defined customer groups (Company,
7
+ * Individual, VIP…). Rendered as a collapsible panel from the Customers page —
8
+ * groups are a short list a merchant rarely edits, so no dedicated nav page.
9
+ * Deleting a group ungroups its members (they are never deleted).
10
+ */
11
+ import { useState } from 'react';
12
+ import { Tags, Plus, Pencil, Trash2, Check, X } from 'lucide-react';
13
+ import { useAdminCustomerGroups } from '../hooks/useAdminCustomerGroups';
14
+ export function CustomerGroupsManager({ className = '', onChanged }) {
15
+ const { groups, isLoading, error, createGroup, updateGroup, deleteGroup } = useAdminCustomerGroups();
16
+ const [newName, setNewName] = useState('');
17
+ const [newDescription, setNewDescription] = useState('');
18
+ const [isCreating, setIsCreating] = useState(false);
19
+ const [editing, setEditing] = useState(null);
20
+ const [isSavingEdit, setIsSavingEdit] = useState(false);
21
+ const [pendingDelete, setPendingDelete] = useState(null);
22
+ const [isDeletingId, setIsDeletingId] = useState(null);
23
+ const [actionError, setActionError] = useState(null);
24
+ async function handleCreate() {
25
+ if (!newName.trim())
26
+ return;
27
+ setIsCreating(true);
28
+ setActionError(null);
29
+ const res = await createGroup({
30
+ name: newName.trim(),
31
+ description: newDescription.trim() || null,
32
+ });
33
+ setIsCreating(false);
34
+ if (res.success) {
35
+ setNewName('');
36
+ setNewDescription('');
37
+ onChanged?.();
38
+ }
39
+ else {
40
+ setActionError(res.error || 'Failed to create group');
41
+ }
42
+ }
43
+ async function handleSaveEdit() {
44
+ if (!editing || !editing.name.trim())
45
+ return;
46
+ setIsSavingEdit(true);
47
+ setActionError(null);
48
+ const res = await updateGroup(editing.id, {
49
+ name: editing.name.trim(),
50
+ description: editing.description.trim() || null,
51
+ });
52
+ setIsSavingEdit(false);
53
+ if (res.success) {
54
+ setEditing(null);
55
+ onChanged?.();
56
+ }
57
+ else {
58
+ setActionError(res.error || 'Failed to update group');
59
+ }
60
+ }
61
+ async function handleToggleActive(group) {
62
+ setActionError(null);
63
+ const res = await updateGroup(group.id, { isActive: !group.isActive });
64
+ if (!res.success)
65
+ setActionError(res.error || 'Failed to update group');
66
+ else
67
+ onChanged?.();
68
+ }
69
+ async function handleDelete(id) {
70
+ setIsDeletingId(id);
71
+ setActionError(null);
72
+ const res = await deleteGroup(id);
73
+ setIsDeletingId(null);
74
+ setPendingDelete(null);
75
+ if (!res.success)
76
+ setActionError(res.error || 'Failed to delete group');
77
+ else
78
+ onChanged?.();
79
+ }
80
+ return (_jsxs("div", { className: `admin-card overflow-hidden ${className}`, children: [_jsxs("div", { className: "admin-card-header flex items-center gap-2", children: [_jsx(Tags, { className: "h-4 w-4 admin-text-muted" }), _jsx("h2", { className: "admin-card-title", children: "Customer groups" })] }), _jsxs("div", { className: "p-4", children: [_jsx("p", { className: "mb-4 text-sm admin-text-muted", children: "Group your customers by type (Company, Individual, VIP\u2026). Groups show as a tag on the customer profile and can be used to filter the list. Deleting a group never deletes its customers \u2014 they just become ungrouped." }), (error || actionError) && (_jsx("div", { className: "admin-alert-inline admin-alert-inline-error mb-4", children: actionError || error })), isLoading ? (_jsx("div", { className: "space-y-2", children: Array.from({ length: 2 }).map((_, i) => (_jsx("div", { className: "admin-skeleton admin-skeleton-lg w-full rounded" }, i))) })) : groups.length === 0 ? (_jsx("p", { className: "mb-4 text-sm admin-text-muted", children: "No groups yet \u2014 create your first below." })) : (_jsx("ul", { className: "mb-4 divide-y divide-[hsl(var(--admin-border))]", children: groups.map((group) => (_jsx("li", { className: "flex items-center gap-3 py-2.5", children: editing?.id === group.id ? (_jsxs(_Fragment, { children: [_jsx("input", { className: "admin-input flex-1", value: editing.name, onChange: (e) => setEditing({ ...editing, name: e.target.value }), placeholder: "Group name", maxLength: 100 }), _jsx("input", { className: "admin-input flex-1", value: editing.description, onChange: (e) => setEditing({ ...editing, description: e.target.value }), placeholder: "Description (optional)", maxLength: 255 }), _jsxs("button", { onClick: handleSaveEdit, disabled: isSavingEdit || !editing.name.trim(), className: "admin-btn admin-btn-primary admin-btn-sm inline-flex items-center gap-1 disabled:opacity-50", children: [_jsx(Check, { className: "h-3 w-3" }), "Save"] }), _jsx("button", { onClick: () => setEditing(null), disabled: isSavingEdit, className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-1", children: _jsx(X, { className: "h-3 w-3" }) })] })) : (_jsxs(_Fragment, { children: [_jsx("span", { className: "admin-badge admin-badge-neutral", children: group.name }), _jsx("span", { className: "flex-1 truncate text-sm admin-text-muted", children: group.description || '' }), _jsxs("span", { className: "text-xs admin-text-muted", children: [group.customerCount ?? 0, " customer", (group.customerCount ?? 0) !== 1 ? 's' : ''] }), _jsxs("label", { className: "flex items-center gap-1.5 text-xs admin-text-muted", children: [_jsx("input", { type: "checkbox", checked: group.isActive, onChange: () => handleToggleActive(group) }), "Active"] }), _jsxs("button", { onClick: () => setEditing({
81
+ id: group.id,
82
+ name: group.name,
83
+ description: group.description || '',
84
+ }), className: "admin-action-link inline-flex items-center gap-1", children: [_jsx(Pencil, { className: "h-3 w-3" }), "Edit"] }), pendingDelete === group.id ? (_jsxs("span", { className: "inline-flex items-center gap-2 text-xs", children: [_jsx("span", { className: "admin-text-muted", children: "Delete?" }), _jsx("button", { onClick: () => handleDelete(group.id), disabled: isDeletingId === group.id, className: "admin-error-text font-medium disabled:opacity-50", children: isDeletingId === group.id ? 'Deleting…' : 'Yes' }), _jsx("button", { onClick: () => setPendingDelete(null), className: "admin-text-muted", children: "No" })] })) : (_jsxs("button", { onClick: () => setPendingDelete(group.id), className: "admin-action-link inline-flex items-center gap-1", children: [_jsx(Trash2, { className: "h-3 w-3" }), "Delete"] }))] })) }, group.id))) })), _jsxs("div", { className: "flex flex-wrap items-center gap-2 border-t border-[hsl(var(--admin-border))] pt-4", children: [_jsx("input", { className: "admin-input flex-1 min-w-[160px]", value: newName, onChange: (e) => setNewName(e.target.value), placeholder: "New group name (e.g. Company)", maxLength: 100 }), _jsx("input", { className: "admin-input flex-1 min-w-[200px]", value: newDescription, onChange: (e) => setNewDescription(e.target.value), placeholder: "Description (optional)", maxLength: 255 }), _jsxs("button", { onClick: handleCreate, disabled: isCreating || !newName.trim(), className: "admin-btn admin-btn-primary admin-btn-sm inline-flex items-center gap-1 disabled:opacity-50", children: [_jsx(Plus, { className: "h-3 w-3" }), isCreating ? 'Adding…' : 'Add group'] })] })] })] }));
85
+ }
86
+ //# sourceMappingURL=CustomerGroupsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomerGroupsManager.js","sourceRoot":"","sources":["../../../src/admin/components/CustomerGroupsManager.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerTable.d.ts","sourceRoot":"","sources":["../../../src/admin/components/CustomerTable.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAyB,MAAM,UAAU,CAAA;AAsFzE;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAa,EACb,eAAe,EACf,SAAc,GACf,EAAE,kBAAkB,2CAqNpB"}
1
+ {"version":3,"file":"CustomerTable.d.ts","sourceRoot":"","sources":["../../../src/admin/components/CustomerTable.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,kBAAkB,EAAyB,MAAM,UAAU,CAAA;AA8FzE;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAa,EACb,eAAe,EACf,SAAc,GACf,EAAE,kBAAkB,2CAiQpB"}
@@ -6,11 +6,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  * Customers data table with search and pagination.
7
7
  * Styled with Rovela admin theme - uses pure CSS for hover states.
8
8
  */
9
- import { useState, useEffect, useCallback } from 'react';
10
- import { Search, Users, Mail, Calendar, CheckCircle, Clock, Trash2 } from 'lucide-react';
9
+ import { useState, useEffect, useCallback, useMemo } from 'react';
10
+ import { Search, Users, Mail, Calendar, CheckCircle, Clock, Trash2, Tags } from 'lucide-react';
11
11
  import { useAdminCustomers } from '../hooks/useAdminCustomers';
12
+ import { useAdminCustomerGroups } from '../hooks/useAdminCustomerGroups';
12
13
  import { useStoreSettingsOptional } from '../../core/StoreSettingsProvider';
13
14
  import { DeleteConfirmDialog } from './DeleteConfirmDialog';
15
+ import { CustomerGroupsManager } from './CustomerGroupsManager';
14
16
  // =============================================================================
15
17
  // Verification Badge - Pure CSS Classes
16
18
  // =============================================================================
@@ -20,8 +22,8 @@ function VerificationBadge({ verified }) {
20
22
  }
21
23
  return (_jsxs("span", { className: "admin-badge admin-badge-unverified inline-flex items-center gap-1", children: [_jsx(Clock, { className: "h-3 w-3" }), "Pending"] }));
22
24
  }
23
- function CustomerRow({ customer, onCustomerClick, onDeleteClick, formatDate }) {
24
- return (_jsxs("tr", { onClick: () => onCustomerClick?.(customer.id), className: `admin-table-row ${onCustomerClick ? 'cursor-pointer' : ''}`, children: [_jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "admin-customer-avatar h-9 w-9 text-sm font-medium", children: (customer.name || customer.email).charAt(0).toUpperCase() }), _jsx("span", { className: "font-medium", children: customer.name || 'Unnamed' })] }) }), _jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-2 text-sm admin-text-muted", children: [_jsx(Mail, { className: "h-4 w-4" }), customer.email] }) }), _jsx("td", { className: "px-4 py-3", children: _jsx(VerificationBadge, { verified: !!customer.emailVerified }) }), _jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-2 text-sm admin-text-muted", children: [_jsx(Calendar, { className: "h-4 w-4" }), formatDate(customer.createdAt)] }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "flex items-center justify-end gap-2", children: _jsx("button", { type: "button", onClick: (e) => onDeleteClick(customer.id, customer.name || customer.email, e), className: "p-2 rounded-md hover:bg-[hsl(var(--admin-destructive)/0.1)] text-[hsl(var(--admin-foreground-muted))] hover:text-[hsl(var(--admin-destructive))] transition-colors", title: "Delete customer", children: _jsx(Trash2, { className: "h-4 w-4" }) }) }) })] }));
25
+ function CustomerRow({ customer, groupName, onCustomerClick, onDeleteClick, formatDate }) {
26
+ return (_jsxs("tr", { onClick: () => onCustomerClick?.(customer.id), className: `admin-table-row ${onCustomerClick ? 'cursor-pointer' : ''}`, children: [_jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "admin-customer-avatar h-9 w-9 text-sm font-medium", children: (customer.name || customer.email).charAt(0).toUpperCase() }), _jsx("span", { className: "font-medium", children: customer.name || 'Unnamed' })] }) }), _jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-2 text-sm admin-text-muted", children: [_jsx(Mail, { className: "h-4 w-4" }), customer.email] }) }), _jsx("td", { className: "px-4 py-3", children: groupName ? (_jsx("span", { className: "admin-badge admin-badge-neutral", children: groupName })) : (_jsx("span", { className: "text-sm admin-text-muted", children: "\u2014" })) }), _jsx("td", { className: "px-4 py-3", children: _jsx(VerificationBadge, { verified: !!customer.emailVerified }) }), _jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-2 text-sm admin-text-muted", children: [_jsx(Calendar, { className: "h-4 w-4" }), formatDate(customer.createdAt)] }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "flex items-center justify-end gap-2", children: _jsx("button", { type: "button", onClick: (e) => onDeleteClick(customer.id, customer.name || customer.email, e), className: "p-2 rounded-md hover:bg-[hsl(var(--admin-destructive)/0.1)] text-[hsl(var(--admin-foreground-muted))] hover:text-[hsl(var(--admin-destructive))] transition-colors", title: "Delete customer", children: _jsx(Trash2, { className: "h-4 w-4" }) }) }) })] }));
25
27
  }
26
28
  // =============================================================================
27
29
  // Component
@@ -38,11 +40,20 @@ function CustomerRow({ customer, onCustomerClick, onDeleteClick, formatDate }) {
38
40
  */
39
41
  export function CustomerTable({ pageSize = 20, onCustomerClick, className = '', }) {
40
42
  const { customers, total, page, isLoading, error, fetchCustomers, deleteCustomer } = useAdminCustomers();
43
+ const { groups, fetchGroups } = useAdminCustomerGroups();
41
44
  // Get locale from context
42
45
  const storeSettings = useStoreSettingsOptional();
43
46
  const resolvedLocale = storeSettings?.locale ?? 'en-US';
44
47
  const [search, setSearch] = useState('');
45
48
  const [debouncedSearch, setDebouncedSearch] = useState('');
49
+ const [groupFilter, setGroupFilter] = useState(''); // '' = all groups
50
+ const [showGroupsManager, setShowGroupsManager] = useState(false);
51
+ const groupNameById = useMemo(() => {
52
+ const map = new Map();
53
+ for (const g of groups)
54
+ map.set(g.id, g.name);
55
+ return map;
56
+ }, [groups]);
46
57
  // Delete confirmation state
47
58
  const [deleteTarget, setDeleteTarget] = useState(null);
48
59
  const [isDeleting, setIsDeleting] = useState(false);
@@ -58,17 +69,19 @@ export function CustomerTable({ pageSize = 20, onCustomerClick, className = '',
58
69
  useEffect(() => {
59
70
  fetchCustomers({
60
71
  search: debouncedSearch || undefined,
72
+ group: groupFilter || undefined,
61
73
  page: 1,
62
74
  limit: pageSize,
63
75
  });
64
- }, [debouncedSearch, pageSize, fetchCustomers]);
76
+ }, [debouncedSearch, groupFilter, pageSize, fetchCustomers]);
65
77
  const handlePageChange = useCallback((newPage) => {
66
78
  fetchCustomers({
67
79
  search: debouncedSearch || undefined,
80
+ group: groupFilter || undefined,
68
81
  page: newPage,
69
82
  limit: pageSize,
70
83
  });
71
- }, [debouncedSearch, pageSize, fetchCustomers]);
84
+ }, [debouncedSearch, groupFilter, pageSize, fetchCustomers]);
72
85
  // Delete handlers
73
86
  const handleDeleteClick = useCallback((id, name, e) => {
74
87
  e.stopPropagation(); // Prevent row click navigation
@@ -105,8 +118,8 @@ export function CustomerTable({ pageSize = 20, onCustomerClick, className = '',
105
118
  });
106
119
  };
107
120
  const totalPages = Math.ceil(total / pageSize);
108
- return (_jsxs("div", { className: `space-y-4 ${className}`, children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-4", children: [_jsxs("div", { className: "admin-input-with-icon flex-1 max-w-sm", children: [_jsx(Search, { className: "admin-input-with-icon-left h-4 w-4" }), _jsx("input", { type: "text", value: search, onChange: (e) => setSearch(e.target.value), placeholder: "Search by email or name...", className: "admin-input w-full" })] }), _jsxs("div", { className: "flex items-center gap-2 text-sm admin-text-muted", children: [_jsx(Users, { className: "h-4 w-4" }), _jsxs("span", { children: [total, " customer", total !== 1 ? 's' : ''] })] })] }), error && (_jsx("div", { className: "admin-alert-inline admin-alert-inline-error", children: error })), _jsx("div", { className: "admin-card overflow-hidden", children: _jsxs("table", { className: "admin-table w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "admin-table-header", children: [_jsx("th", { className: "px-4 py-3 text-left", children: "Customer" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Email" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Status" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Joined" }), _jsx("th", { className: "px-4 py-3 text-right", children: "Actions" })] }) }), _jsx("tbody", { children: isLoading ? (
121
+ return (_jsxs("div", { className: `space-y-4 ${className}`, children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-4", children: [_jsxs("div", { className: "admin-input-with-icon flex-1 max-w-sm", children: [_jsx(Search, { className: "admin-input-with-icon-left h-4 w-4" }), _jsx("input", { type: "text", value: search, onChange: (e) => setSearch(e.target.value), placeholder: "Search by email or name...", className: "admin-input w-full" })] }), _jsxs("select", { value: groupFilter, onChange: (e) => setGroupFilter(e.target.value), className: "admin-input w-auto", "aria-label": "Filter by group", children: [_jsx("option", { value: "", children: "All groups" }), groups.map((g) => (_jsx("option", { value: g.id, children: g.name }, g.id)))] }), _jsxs("button", { type: "button", onClick: () => setShowGroupsManager((v) => !v), className: "admin-btn admin-btn-secondary admin-btn-sm inline-flex items-center gap-1.5", children: [_jsx(Tags, { className: "h-4 w-4" }), showGroupsManager ? 'Hide groups' : 'Manage groups'] }), _jsxs("div", { className: "flex items-center gap-2 text-sm admin-text-muted", children: [_jsx(Users, { className: "h-4 w-4" }), _jsxs("span", { children: [total, " customer", total !== 1 ? 's' : ''] })] })] }), showGroupsManager && _jsx(CustomerGroupsManager, { onChanged: fetchGroups }), error && (_jsx("div", { className: "admin-alert-inline admin-alert-inline-error", children: error })), _jsx("div", { className: "admin-card overflow-hidden", children: _jsxs("table", { className: "admin-table w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "admin-table-header", children: [_jsx("th", { className: "px-4 py-3 text-left", children: "Customer" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Email" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Group" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Status" }), _jsx("th", { className: "px-4 py-3 text-left", children: "Joined" }), _jsx("th", { className: "px-4 py-3 text-right", children: "Actions" })] }) }), _jsx("tbody", { children: isLoading ? (
109
122
  // Loading skeleton
110
- Array.from({ length: 5 }).map((_, i) => (_jsxs("tr", { className: "admin-table-row", children: [_jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "admin-skeleton admin-skeleton-xl w-9 rounded-full" }), _jsx("div", { className: "admin-skeleton admin-skeleton-md w-24 rounded" })] }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "admin-skeleton admin-skeleton-md w-48 rounded" }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "admin-skeleton admin-skeleton-lg w-20 rounded" }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "admin-skeleton admin-skeleton-md w-24 rounded" }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "admin-skeleton admin-skeleton-md w-8 rounded ml-auto" }) })] }, i)))) : customers.length === 0 ? (_jsx("tr", { children: _jsxs("td", { colSpan: 5, className: "px-4 py-12 text-center", children: [_jsx(Users, { className: "mx-auto h-12 w-12 admin-empty-icon" }), _jsx("p", { className: "mt-2 text-sm admin-empty-text", children: debouncedSearch ? 'No customers found matching your search' : 'No customers yet' })] }) })) : (customers.map((customer) => (_jsx(CustomerRow, { customer: customer, onCustomerClick: onCustomerClick, onDeleteClick: handleDeleteClick, formatDate: formatDate }, customer.id)))) })] }) }), _jsx(DeleteConfirmDialog, { isOpen: !!deleteTarget, title: "Delete Customer", itemName: deleteTarget?.name || '', itemType: "customer", isDeleting: isDeleting, error: deleteError, onConfirm: handleDeleteConfirm, onCancel: handleDeleteCancel }), totalPages > 1 && (_jsxs("div", { className: "admin-pagination", children: [_jsxs("p", { className: "admin-pagination-info", children: ["Showing ", (page - 1) * pageSize + 1, " to", ' ', Math.min(page * pageSize, total), " of ", total, " customers"] }), _jsxs("div", { className: "admin-pagination-controls", children: [_jsx("button", { onClick: () => handlePageChange(page - 1), disabled: page <= 1, className: "admin-btn admin-btn-secondary admin-btn-sm disabled:opacity-50", children: "Previous" }), _jsx("button", { onClick: () => handlePageChange(page + 1), disabled: page >= totalPages, className: "admin-btn admin-btn-secondary admin-btn-sm disabled:opacity-50", children: "Next" })] })] }))] }));
123
+ Array.from({ length: 5 }).map((_, i) => (_jsxs("tr", { className: "admin-table-row", children: [_jsx("td", { className: "px-4 py-3", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "admin-skeleton admin-skeleton-xl w-9 rounded-full" }), _jsx("div", { className: "admin-skeleton admin-skeleton-md w-24 rounded" })] }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "admin-skeleton admin-skeleton-md w-48 rounded" }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "admin-skeleton admin-skeleton-md w-16 rounded" }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "admin-skeleton admin-skeleton-lg w-20 rounded" }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "admin-skeleton admin-skeleton-md w-24 rounded" }) }), _jsx("td", { className: "px-4 py-3", children: _jsx("div", { className: "admin-skeleton admin-skeleton-md w-8 rounded ml-auto" }) })] }, i)))) : customers.length === 0 ? (_jsx("tr", { children: _jsxs("td", { colSpan: 6, className: "px-4 py-12 text-center", children: [_jsx(Users, { className: "mx-auto h-12 w-12 admin-empty-icon" }), _jsx("p", { className: "mt-2 text-sm admin-empty-text", children: debouncedSearch ? 'No customers found matching your search' : 'No customers yet' })] }) })) : (customers.map((customer) => (_jsx(CustomerRow, { customer: customer, groupName: customer.groupId ? groupNameById.get(customer.groupId) ?? null : null, onCustomerClick: onCustomerClick, onDeleteClick: handleDeleteClick, formatDate: formatDate }, customer.id)))) })] }) }), _jsx(DeleteConfirmDialog, { isOpen: !!deleteTarget, title: "Delete Customer", itemName: deleteTarget?.name || '', itemType: "customer", isDeleting: isDeleting, error: deleteError, onConfirm: handleDeleteConfirm, onCancel: handleDeleteCancel }), totalPages > 1 && (_jsxs("div", { className: "admin-pagination", children: [_jsxs("p", { className: "admin-pagination-info", children: ["Showing ", (page - 1) * pageSize + 1, " to", ' ', Math.min(page * pageSize, total), " of ", total, " customers"] }), _jsxs("div", { className: "admin-pagination-controls", children: [_jsx("button", { onClick: () => handlePageChange(page - 1), disabled: page <= 1, className: "admin-btn admin-btn-secondary admin-btn-sm disabled:opacity-50", children: "Previous" }), _jsx("button", { onClick: () => handlePageChange(page + 1), disabled: page >= totalPages, className: "admin-btn admin-btn-secondary admin-btn-sm disabled:opacity-50", children: "Next" })] })] }))] }));
111
124
  }
112
125
  //# sourceMappingURL=CustomerTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerTable.js","sourceRoot":"","sources":["../../../src/admin/components/CustomerTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomerTable.js","sourceRoot":"","sources":["../../../src/admin/components/CustomerTable.tsx"],"names":[],"mappings":"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"}