@duongthiu/onex-core 0.1.0 → 0.1.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 (190) hide show
  1. package/README.md +44 -65
  2. package/THEME_API.md +36 -33
  3. package/dist/api.js +14 -0
  4. package/dist/api.js.map +1 -0
  5. package/dist/api.mjs +5 -0
  6. package/dist/api.mjs.map +1 -0
  7. package/dist/auth.js +23 -0
  8. package/dist/auth.js.map +1 -0
  9. package/dist/auth.mjs +6 -0
  10. package/dist/auth.mjs.map +1 -0
  11. package/dist/blog.js +22 -0
  12. package/dist/blog.js.map +1 -0
  13. package/dist/blog.mjs +5 -0
  14. package/dist/blog.mjs.map +1 -0
  15. package/dist/cart.js +27 -0
  16. package/dist/cart.js.map +1 -0
  17. package/dist/cart.mjs +6 -0
  18. package/dist/cart.mjs.map +1 -0
  19. package/dist/chunk-2CSWHI3L.js +210 -0
  20. package/dist/chunk-2CSWHI3L.js.map +1 -0
  21. package/dist/chunk-2FGHIDUV.js +99 -0
  22. package/dist/chunk-2FGHIDUV.js.map +1 -0
  23. package/dist/chunk-2NMEKWO5.js +40 -0
  24. package/dist/chunk-2NMEKWO5.js.map +1 -0
  25. package/dist/chunk-43BVHGDT.mjs +131 -0
  26. package/dist/chunk-43BVHGDT.mjs.map +1 -0
  27. package/dist/chunk-4JVQJI3I.mjs +290 -0
  28. package/dist/chunk-4JVQJI3I.mjs.map +1 -0
  29. package/dist/chunk-5N2EKK5O.js +9550 -0
  30. package/dist/chunk-5N2EKK5O.js.map +1 -0
  31. package/dist/chunk-5T6NDVSN.js +76 -0
  32. package/dist/chunk-5T6NDVSN.js.map +1 -0
  33. package/dist/chunk-73AINNCI.mjs +201 -0
  34. package/dist/chunk-73AINNCI.mjs.map +1 -0
  35. package/dist/chunk-AIXBDAVP.mjs +61 -0
  36. package/dist/chunk-AIXBDAVP.mjs.map +1 -0
  37. package/dist/chunk-ALYN5HAC.js +210 -0
  38. package/dist/chunk-ALYN5HAC.js.map +1 -0
  39. package/dist/chunk-AREMJR3Q.js +36 -0
  40. package/dist/chunk-AREMJR3Q.js.map +1 -0
  41. package/dist/chunk-DXAI6XOI.mjs +33 -0
  42. package/dist/chunk-DXAI6XOI.mjs.map +1 -0
  43. package/dist/chunk-F5TFNWFJ.mjs +257 -0
  44. package/dist/chunk-F5TFNWFJ.mjs.map +1 -0
  45. package/dist/chunk-FQ7FWUZN.js +265 -0
  46. package/dist/chunk-FQ7FWUZN.js.map +1 -0
  47. package/dist/{chunk-3SZX6LHT.js → chunk-J27VGXJH.js} +2 -24
  48. package/dist/chunk-J27VGXJH.js.map +1 -0
  49. package/dist/chunk-JZ46LLTZ.js +121 -0
  50. package/dist/chunk-JZ46LLTZ.js.map +1 -0
  51. package/dist/chunk-K24UHN6G.mjs +76 -0
  52. package/dist/chunk-K24UHN6G.mjs.map +1 -0
  53. package/dist/chunk-KCQGGU5R.mjs +344 -0
  54. package/dist/chunk-KCQGGU5R.mjs.map +1 -0
  55. package/dist/chunk-MT22NYKT.mjs +117 -0
  56. package/dist/chunk-MT22NYKT.mjs.map +1 -0
  57. package/dist/chunk-NDD472IZ.js +85 -0
  58. package/dist/chunk-NDD472IZ.js.map +1 -0
  59. package/dist/chunk-NHOIGGYU.mjs +833 -0
  60. package/dist/chunk-NHOIGGYU.mjs.map +1 -0
  61. package/dist/chunk-O3XR7TW3.mjs +12 -0
  62. package/dist/chunk-O3XR7TW3.mjs.map +1 -0
  63. package/dist/chunk-OAPYSC2X.mjs +206 -0
  64. package/dist/chunk-OAPYSC2X.mjs.map +1 -0
  65. package/dist/{chunk-XE4EOKS4.mjs → chunk-ONJREDYY.mjs} +3 -23
  66. package/dist/chunk-ONJREDYY.mjs.map +1 -0
  67. package/dist/chunk-OVT2LUAM.js +197 -0
  68. package/dist/chunk-OVT2LUAM.js.map +1 -0
  69. package/dist/chunk-OWNGNGKL.js +331 -0
  70. package/dist/chunk-OWNGNGKL.js.map +1 -0
  71. package/dist/chunk-P7SXNZSV.js +298 -0
  72. package/dist/chunk-P7SXNZSV.js.map +1 -0
  73. package/dist/chunk-PFJOL3HI.mjs +71 -0
  74. package/dist/chunk-PFJOL3HI.mjs.map +1 -0
  75. package/dist/chunk-PPULMWJ6.js +295 -0
  76. package/dist/chunk-PPULMWJ6.js.map +1 -0
  77. package/dist/chunk-RGIVKACG.js +359 -0
  78. package/dist/chunk-RGIVKACG.js.map +1 -0
  79. package/dist/chunk-RPP5K2LP.js +870 -0
  80. package/dist/chunk-RPP5K2LP.js.map +1 -0
  81. package/dist/{chunk-7EON6Q4L.mjs → chunk-RUCHWUD7.mjs} +7651 -6370
  82. package/dist/chunk-RUCHWUD7.mjs.map +1 -0
  83. package/dist/chunk-SEVUIX4H.js +137 -0
  84. package/dist/chunk-SEVUIX4H.js.map +1 -0
  85. package/dist/chunk-SK2FSHFM.mjs +208 -0
  86. package/dist/chunk-SK2FSHFM.mjs.map +1 -0
  87. package/dist/chunk-T6EJ2GAV.mjs +294 -0
  88. package/dist/chunk-T6EJ2GAV.mjs.map +1 -0
  89. package/dist/chunk-ULBDOFZI.mjs +302 -0
  90. package/dist/chunk-ULBDOFZI.mjs.map +1 -0
  91. package/dist/chunk-V3JIELNV.js +241 -0
  92. package/dist/chunk-V3JIELNV.js.map +1 -0
  93. package/dist/chunk-V5E2KWMA.mjs +238 -0
  94. package/dist/chunk-V5E2KWMA.mjs.map +1 -0
  95. package/dist/chunk-VJA3ER6A.js +14 -0
  96. package/dist/chunk-VJA3ER6A.js.map +1 -0
  97. package/dist/chunk-VLI7ULX5.js +66 -0
  98. package/dist/chunk-VLI7ULX5.js.map +1 -0
  99. package/dist/chunk-WFGS5OFH.mjs +189 -0
  100. package/dist/chunk-WFGS5OFH.mjs.map +1 -0
  101. package/dist/chunk-WVC5GP24.mjs +96 -0
  102. package/dist/chunk-WVC5GP24.mjs.map +1 -0
  103. package/dist/chunk-YOSPWY5K.mjs +36 -0
  104. package/dist/chunk-YOSPWY5K.mjs.map +1 -0
  105. package/dist/chunk-ZFFXXLX7.js +205 -0
  106. package/dist/chunk-ZFFXXLX7.js.map +1 -0
  107. package/dist/client.js +512 -249
  108. package/dist/client.mjs +21 -2
  109. package/dist/components.js +393 -0
  110. package/dist/components.js.map +1 -0
  111. package/dist/components.mjs +8 -0
  112. package/dist/components.mjs.map +1 -0
  113. package/dist/config.js +17 -0
  114. package/dist/config.js.map +1 -0
  115. package/dist/config.mjs +4 -0
  116. package/dist/config.mjs.map +1 -0
  117. package/dist/contact.js +22 -0
  118. package/dist/contact.js.map +1 -0
  119. package/dist/contact.mjs +5 -0
  120. package/dist/contact.mjs.map +1 -0
  121. package/dist/contexts.js +51 -0
  122. package/dist/contexts.js.map +1 -0
  123. package/dist/contexts.mjs +6 -0
  124. package/dist/contexts.mjs.map +1 -0
  125. package/dist/finance.js +26 -0
  126. package/dist/finance.js.map +1 -0
  127. package/dist/finance.mjs +5 -0
  128. package/dist/finance.mjs.map +1 -0
  129. package/dist/icons.js +15 -0
  130. package/dist/icons.js.map +1 -0
  131. package/dist/icons.mjs +4 -0
  132. package/dist/icons.mjs.map +1 -0
  133. package/dist/index.js +512 -249
  134. package/dist/index.js.map +1 -1
  135. package/dist/index.mjs +21 -2
  136. package/dist/index.mjs.map +1 -1
  137. package/dist/internal.js +1437 -0
  138. package/dist/internal.js.map +1 -0
  139. package/dist/internal.mjs +1404 -0
  140. package/dist/internal.mjs.map +1 -0
  141. package/dist/motion.js +51 -0
  142. package/dist/motion.js.map +1 -0
  143. package/dist/motion.mjs +38 -0
  144. package/dist/motion.mjs.map +1 -0
  145. package/dist/orders.js +22 -0
  146. package/dist/orders.js.map +1 -0
  147. package/dist/orders.mjs +5 -0
  148. package/dist/orders.mjs.map +1 -0
  149. package/dist/products.js +27 -0
  150. package/dist/products.js.map +1 -0
  151. package/dist/products.mjs +6 -0
  152. package/dist/products.mjs.map +1 -0
  153. package/dist/registry.js +44 -0
  154. package/dist/registry.js.map +1 -0
  155. package/dist/registry.mjs +7 -0
  156. package/dist/registry.mjs.map +1 -0
  157. package/dist/renderers.js +51 -0
  158. package/dist/renderers.js.map +1 -0
  159. package/dist/renderers.mjs +6 -0
  160. package/dist/renderers.mjs.map +1 -0
  161. package/dist/server.js +11 -189
  162. package/dist/server.js.map +1 -1
  163. package/dist/server.mjs +3 -186
  164. package/dist/server.mjs.map +1 -1
  165. package/dist/types.js +37 -0
  166. package/dist/types.js.map +1 -0
  167. package/dist/types.mjs +4 -0
  168. package/dist/types.mjs.map +1 -0
  169. package/dist/utils.js +160 -0
  170. package/dist/utils.js.map +1 -0
  171. package/dist/utils.mjs +7 -0
  172. package/dist/utils.mjs.map +1 -0
  173. package/dist/wrappers.js +104 -0
  174. package/dist/wrappers.js.map +1 -0
  175. package/dist/wrappers.mjs +96 -0
  176. package/dist/wrappers.mjs.map +1 -0
  177. package/package.json +112 -9
  178. package/dist/api-vuL1Eg5L.d.mts +0 -2961
  179. package/dist/api-vuL1Eg5L.d.ts +0 -2961
  180. package/dist/chunk-3SZX6LHT.js.map +0 -1
  181. package/dist/chunk-7EON6Q4L.mjs.map +0 -1
  182. package/dist/chunk-WDY773GJ.js +0 -8308
  183. package/dist/chunk-WDY773GJ.js.map +0 -1
  184. package/dist/chunk-XE4EOKS4.mjs.map +0 -1
  185. package/dist/client.d.mts +0 -1461
  186. package/dist/client.d.ts +0 -1461
  187. package/dist/index.d.mts +0 -125
  188. package/dist/index.d.ts +0 -125
  189. package/dist/server.d.mts +0 -70
  190. package/dist/server.d.ts +0 -70
@@ -0,0 +1,298 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var zustand = require('zustand');
5
+
6
+ // src/features/orders/use-orders.ts
7
+ var ordersService = null;
8
+ var useOrders = zustand.create((set) => ({
9
+ // Initial state
10
+ orders: [],
11
+ currentOrder: null,
12
+ isLoading: false,
13
+ error: null,
14
+ total: 0,
15
+ totalPages: 0,
16
+ currentPage: 1,
17
+ /**
18
+ * Create a new order (public)
19
+ */
20
+ createOrder: async (data) => {
21
+ if (!ordersService) {
22
+ throw new Error(
23
+ "Orders service not initialized. Call initializeOnex() first."
24
+ );
25
+ }
26
+ set({ isLoading: true, error: null });
27
+ try {
28
+ const order = await ordersService.createOrder(data);
29
+ set({ currentOrder: order, isLoading: false });
30
+ return order;
31
+ } catch (error) {
32
+ set({ error: error.message, isLoading: false });
33
+ throw error;
34
+ }
35
+ },
36
+ /**
37
+ * Create a private order (authenticated)
38
+ */
39
+ createPrivateOrder: async (data) => {
40
+ if (!ordersService) {
41
+ throw new Error(
42
+ "Orders service not initialized. Call initializeOnex() first."
43
+ );
44
+ }
45
+ set({ isLoading: true, error: null });
46
+ try {
47
+ const order = await ordersService.createPrivateOrder(data);
48
+ set({ currentOrder: order, isLoading: false });
49
+ return order;
50
+ } catch (error) {
51
+ set({ error: error.message, isLoading: false });
52
+ throw error;
53
+ }
54
+ },
55
+ /**
56
+ * Fetch orders list
57
+ */
58
+ fetchOrders: async (params) => {
59
+ if (!ordersService) {
60
+ throw new Error(
61
+ "Orders service not initialized. Call initializeOnex() first."
62
+ );
63
+ }
64
+ set({ isLoading: true, error: null });
65
+ try {
66
+ const response = await ordersService.getOrders(params);
67
+ set({
68
+ orders: response.items,
69
+ total: response.total,
70
+ totalPages: response.totalPages,
71
+ currentPage: response.page,
72
+ isLoading: false
73
+ });
74
+ } catch (error) {
75
+ set({ error: error.message, isLoading: false });
76
+ }
77
+ },
78
+ /**
79
+ * Fetch order history for authenticated user
80
+ */
81
+ fetchOrderHistory: async (params) => {
82
+ if (!ordersService) {
83
+ throw new Error(
84
+ "Orders service not initialized. Call initializeOnex() first."
85
+ );
86
+ }
87
+ set({ isLoading: true, error: null });
88
+ try {
89
+ const response = await ordersService.getOrderHistory(params);
90
+ set({
91
+ orders: response.items,
92
+ total: response.total,
93
+ totalPages: response.totalPages,
94
+ currentPage: response.page,
95
+ isLoading: false
96
+ });
97
+ } catch (error) {
98
+ set({ error: error.message, isLoading: false });
99
+ }
100
+ },
101
+ /**
102
+ * Fetch order by ID
103
+ */
104
+ fetchOrderById: async (orderId) => {
105
+ if (!ordersService) {
106
+ throw new Error(
107
+ "Orders service not initialized. Call initializeOnex() first."
108
+ );
109
+ }
110
+ set({ isLoading: true, error: null });
111
+ try {
112
+ const order = await ordersService.getOrderById(orderId);
113
+ set({ currentOrder: order, isLoading: false });
114
+ } catch (error) {
115
+ set({ error: error.message, isLoading: false });
116
+ }
117
+ },
118
+ /**
119
+ * Fetch order by order number
120
+ */
121
+ fetchOrderByNumber: async (orderNumber) => {
122
+ if (!ordersService) {
123
+ throw new Error(
124
+ "Orders service not initialized. Call initializeOnex() first."
125
+ );
126
+ }
127
+ set({ isLoading: true, error: null });
128
+ try {
129
+ const order = await ordersService.getOrderByNumber(orderNumber);
130
+ set({ currentOrder: order, isLoading: false });
131
+ } catch (error) {
132
+ set({ error: error.message, isLoading: false });
133
+ }
134
+ },
135
+ /**
136
+ * Update order status
137
+ */
138
+ updateOrderStatus: async (orderId, status) => {
139
+ if (!ordersService) {
140
+ throw new Error(
141
+ "Orders service not initialized. Call initializeOnex() first."
142
+ );
143
+ }
144
+ set({ isLoading: true, error: null });
145
+ try {
146
+ const order = await ordersService.updateOrderStatus(orderId, status);
147
+ set((state) => {
148
+ var _a;
149
+ return {
150
+ currentOrder: ((_a = state.currentOrder) == null ? void 0 : _a.id) === orderId ? order : state.currentOrder,
151
+ orders: state.orders.map((o) => o.id === orderId ? order : o),
152
+ isLoading: false
153
+ };
154
+ });
155
+ } catch (error) {
156
+ set({ error: error.message, isLoading: false });
157
+ }
158
+ },
159
+ /**
160
+ * Cancel order
161
+ */
162
+ cancelOrder: async (orderId) => {
163
+ if (!ordersService) {
164
+ throw new Error(
165
+ "Orders service not initialized. Call initializeOnex() first."
166
+ );
167
+ }
168
+ set({ isLoading: true, error: null });
169
+ try {
170
+ const order = await ordersService.cancelOrder(orderId);
171
+ set((state) => {
172
+ var _a;
173
+ return {
174
+ currentOrder: ((_a = state.currentOrder) == null ? void 0 : _a.id) === orderId ? order : state.currentOrder,
175
+ orders: state.orders.map((o) => o.id === orderId ? order : o),
176
+ isLoading: false
177
+ };
178
+ });
179
+ } catch (error) {
180
+ set({ error: error.message, isLoading: false });
181
+ }
182
+ },
183
+ /**
184
+ * Pay for order
185
+ */
186
+ payOrder: async (orderId, paymentData) => {
187
+ if (!ordersService) {
188
+ throw new Error(
189
+ "Orders service not initialized. Call initializeOnex() first."
190
+ );
191
+ }
192
+ set({ isLoading: true, error: null });
193
+ try {
194
+ const order = await ordersService.payOrder(orderId, paymentData);
195
+ set((state) => {
196
+ var _a;
197
+ return {
198
+ currentOrder: ((_a = state.currentOrder) == null ? void 0 : _a.id) === orderId ? order : state.currentOrder,
199
+ orders: state.orders.map((o) => o.id === orderId ? order : o),
200
+ isLoading: false
201
+ };
202
+ });
203
+ } catch (error) {
204
+ set({ error: error.message, isLoading: false });
205
+ }
206
+ },
207
+ /**
208
+ * Clear error
209
+ */
210
+ clearError: () => {
211
+ set({ error: null });
212
+ },
213
+ /**
214
+ * Clear current order
215
+ */
216
+ clearCurrentOrder: () => {
217
+ set({ currentOrder: null });
218
+ }
219
+ }));
220
+ function initializeOrdersService(service) {
221
+ ordersService = service;
222
+ }
223
+
224
+ // src/features/orders/orders-service.ts
225
+ var OrdersService = class {
226
+ constructor(api) {
227
+ this.api = api;
228
+ }
229
+ /**
230
+ * Create a new order (public - no auth required)
231
+ */
232
+ async createOrder(data) {
233
+ return await this.api.post("/orders", data);
234
+ }
235
+ /**
236
+ * Create a private order (requires authentication)
237
+ */
238
+ async createPrivateOrder(data) {
239
+ return await this.api.post("/orders/private", data);
240
+ }
241
+ /**
242
+ * Get order by ID
243
+ */
244
+ async getOrderById(orderId) {
245
+ return await this.api.get(`/orders/${orderId}`);
246
+ }
247
+ /**
248
+ * Get order by order number
249
+ */
250
+ async getOrderByNumber(orderNumber) {
251
+ return await this.api.get(`/orders/number/${orderNumber}`);
252
+ }
253
+ /**
254
+ * Get order history for authenticated user
255
+ */
256
+ async getOrderHistory(params) {
257
+ return await this.api.get(
258
+ "/orders/history",
259
+ params
260
+ );
261
+ }
262
+ /**
263
+ * Get all orders (with pagination)
264
+ */
265
+ async getOrders(params) {
266
+ return await this.api.get(
267
+ "/orders",
268
+ params
269
+ );
270
+ }
271
+ /**
272
+ * Update order status
273
+ */
274
+ async updateOrderStatus(orderId, status) {
275
+ return await this.api.put(`/orders/${orderId}/status`, { status });
276
+ }
277
+ /**
278
+ * Cancel order
279
+ */
280
+ async cancelOrder(orderId) {
281
+ return await this.api.put(`/orders/${orderId}/cancel`, {});
282
+ }
283
+ /**
284
+ * Pay for order
285
+ */
286
+ async payOrder(orderId, paymentData) {
287
+ return await this.api.post(
288
+ `/orders/${orderId}/pay`,
289
+ paymentData || {}
290
+ );
291
+ }
292
+ };
293
+
294
+ exports.OrdersService = OrdersService;
295
+ exports.initializeOrdersService = initializeOrdersService;
296
+ exports.useOrders = useOrders;
297
+ //# sourceMappingURL=chunk-P7SXNZSV.js.map
298
+ //# sourceMappingURL=chunk-P7SXNZSV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/features/orders/use-orders.ts","../src/features/orders/orders-service.ts"],"names":["create"],"mappings":"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","file":"chunk-P7SXNZSV.js","sourcesContent":["/**\n * Orders Hook\n * Zustand store for orders state and actions\n */\n\nimport { create } from \"zustand\";\nimport { OrdersService } from \"./orders-service\";\nimport type { Order, CreateOrderData, OrdersListParams } from \"./types\";\n\ninterface OrdersState {\n // State\n orders: Order[];\n currentOrder: Order | null;\n isLoading: boolean;\n error: string | null;\n total: number;\n totalPages: number;\n currentPage: number;\n\n // Actions\n createOrder: (data: CreateOrderData) => Promise<Order>;\n createPrivateOrder: (data: CreateOrderData) => Promise<Order>;\n fetchOrders: (params?: OrdersListParams) => Promise<void>;\n fetchOrderHistory: (params?: OrdersListParams) => Promise<void>;\n fetchOrderById: (orderId: string) => Promise<void>;\n fetchOrderByNumber: (orderNumber: string) => Promise<void>;\n updateOrderStatus: (orderId: string, status: string) => Promise<void>;\n cancelOrder: (orderId: string) => Promise<void>;\n payOrder: (\n orderId: string,\n paymentData?: Record<string, unknown>\n ) => Promise<void>;\n clearError: () => void;\n clearCurrentOrder: () => void;\n}\n\nlet ordersService: OrdersService | null = null;\n\nexport const useOrders = create<OrdersState>((set) => ({\n // Initial state\n orders: [],\n currentOrder: null,\n isLoading: false,\n error: null,\n total: 0,\n totalPages: 0,\n currentPage: 1,\n\n /**\n * Create a new order (public)\n */\n createOrder: async (data) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.createOrder(data);\n set({ currentOrder: order, isLoading: false });\n return order;\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n throw error;\n }\n },\n\n /**\n * Create a private order (authenticated)\n */\n createPrivateOrder: async (data) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.createPrivateOrder(data);\n set({ currentOrder: order, isLoading: false });\n return order;\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n throw error;\n }\n },\n\n /**\n * Fetch orders list\n */\n fetchOrders: async (params) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const response = await ordersService.getOrders(params);\n set({\n orders: response.items,\n total: response.total,\n totalPages: response.totalPages,\n currentPage: response.page,\n isLoading: false,\n });\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Fetch order history for authenticated user\n */\n fetchOrderHistory: async (params) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const response = await ordersService.getOrderHistory(params);\n set({\n orders: response.items,\n total: response.total,\n totalPages: response.totalPages,\n currentPage: response.page,\n isLoading: false,\n });\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Fetch order by ID\n */\n fetchOrderById: async (orderId) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.getOrderById(orderId);\n set({ currentOrder: order, isLoading: false });\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Fetch order by order number\n */\n fetchOrderByNumber: async (orderNumber) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.getOrderByNumber(orderNumber);\n set({ currentOrder: order, isLoading: false });\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Update order status\n */\n updateOrderStatus: async (orderId, status) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.updateOrderStatus(orderId, status);\n set((state) => ({\n currentOrder:\n state.currentOrder?.id === orderId ? order : state.currentOrder,\n orders: state.orders.map((o) => (o.id === orderId ? order : o)),\n isLoading: false,\n }));\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Cancel order\n */\n cancelOrder: async (orderId) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.cancelOrder(orderId);\n set((state) => ({\n currentOrder:\n state.currentOrder?.id === orderId ? order : state.currentOrder,\n orders: state.orders.map((o) => (o.id === orderId ? order : o)),\n isLoading: false,\n }));\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Pay for order\n */\n payOrder: async (orderId, paymentData) => {\n if (!ordersService) {\n throw new Error(\n \"Orders service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const order = await ordersService.payOrder(orderId, paymentData);\n set((state) => ({\n currentOrder:\n state.currentOrder?.id === orderId ? order : state.currentOrder,\n orders: state.orders.map((o) => (o.id === orderId ? order : o)),\n isLoading: false,\n }));\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n }\n },\n\n /**\n * Clear error\n */\n clearError: () => {\n set({ error: null });\n },\n\n /**\n * Clear current order\n */\n clearCurrentOrder: () => {\n set({ currentOrder: null });\n },\n}));\n\n/**\n * Initialize orders service\n * @internal Called by initializeOnex()\n */\nexport function initializeOrdersService(service: OrdersService): void {\n ordersService = service;\n}\n","/**\n * Orders Service\n * Handles all order-related API calls\n */\n\nimport { ApiClient } from \"../../api/client\";\nimport type {\n Order,\n CreateOrderData,\n OrdersListResponse,\n OrdersListParams,\n} from \"./types\";\n\nexport class OrdersService {\n constructor(private api: ApiClient) {}\n\n /**\n * Create a new order (public - no auth required)\n */\n async createOrder(data: CreateOrderData): Promise<Order> {\n return await this.api.post<Order>(\"/orders\", data);\n }\n\n /**\n * Create a private order (requires authentication)\n */\n async createPrivateOrder(data: CreateOrderData): Promise<Order> {\n return await this.api.post<Order>(\"/orders/private\", data);\n }\n\n /**\n * Get order by ID\n */\n async getOrderById(orderId: string): Promise<Order> {\n return await this.api.get<Order>(`/orders/${orderId}`);\n }\n\n /**\n * Get order by order number\n */\n async getOrderByNumber(orderNumber: string): Promise<Order> {\n return await this.api.get<Order>(`/orders/number/${orderNumber}`);\n }\n\n /**\n * Get order history for authenticated user\n */\n async getOrderHistory(\n params?: OrdersListParams\n ): Promise<OrdersListResponse> {\n return await this.api.get<OrdersListResponse>(\n \"/orders/history\",\n params as Record<string, unknown>\n );\n }\n\n /**\n * Get all orders (with pagination)\n */\n async getOrders(params?: OrdersListParams): Promise<OrdersListResponse> {\n return await this.api.get<OrdersListResponse>(\n \"/orders\",\n params as Record<string, unknown>\n );\n }\n\n /**\n * Update order status\n */\n async updateOrderStatus(orderId: string, status: string): Promise<Order> {\n return await this.api.put<Order>(`/orders/${orderId}/status`, { status });\n }\n\n /**\n * Cancel order\n */\n async cancelOrder(orderId: string): Promise<Order> {\n return await this.api.put<Order>(`/orders/${orderId}/cancel`, {});\n }\n\n /**\n * Pay for order\n */\n async payOrder(\n orderId: string,\n paymentData?: Record<string, unknown>\n ): Promise<Order> {\n return await this.api.post<Order>(\n `/orders/${orderId}/pay`,\n paymentData || {}\n );\n }\n}\n"]}
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ import { create } from 'zustand';
3
+
4
+ // src/features/finance/use-finance.ts
5
+ var financeService = null;
6
+ var useFinance = create((set) => ({
7
+ // Initial state
8
+ qrCode: null,
9
+ isLoading: false,
10
+ error: null,
11
+ /**
12
+ * Create QR code for bank transfer
13
+ */
14
+ createQrCode: async (payload) => {
15
+ if (!financeService) {
16
+ throw new Error(
17
+ "Finance service not initialized. Call initializeOnex() first."
18
+ );
19
+ }
20
+ set({ isLoading: true, error: null });
21
+ try {
22
+ const qrCode = await financeService.createQrCode(payload);
23
+ set({ qrCode, isLoading: false });
24
+ return qrCode;
25
+ } catch (error) {
26
+ set({ error: error.message, isLoading: false });
27
+ throw error;
28
+ }
29
+ },
30
+ /**
31
+ * Clear QR code
32
+ */
33
+ clearQrCode: () => {
34
+ set({ qrCode: null });
35
+ },
36
+ /**
37
+ * Clear error
38
+ */
39
+ clearError: () => {
40
+ set({ error: null });
41
+ }
42
+ }));
43
+ function initializeFinanceService(service) {
44
+ financeService = service;
45
+ }
46
+
47
+ // src/features/finance/finance-service.ts
48
+ var FinanceService = class {
49
+ constructor(api) {
50
+ this.api = api;
51
+ }
52
+ /**
53
+ * Create QR code for bank transfer
54
+ */
55
+ async createQrCode(payload) {
56
+ return await this.api.post("/finance/public/qr", payload);
57
+ }
58
+ };
59
+
60
+ // src/features/finance/constants.ts
61
+ var BANK_TRANSFER_DATA = {
62
+ account_number: "999914287",
63
+ account_name: "CONG TY TNHH TIN AN",
64
+ bank_id: "970422",
65
+ // MB Bank
66
+ bank_name: "Ng\xE2n h\xE0ng Qu\xE2n \u0111\u1ED9i (MB Bank)"
67
+ };
68
+
69
+ export { BANK_TRANSFER_DATA, FinanceService, initializeFinanceService, useFinance };
70
+ //# sourceMappingURL=chunk-PFJOL3HI.mjs.map
71
+ //# sourceMappingURL=chunk-PFJOL3HI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/features/finance/use-finance.ts","../src/features/finance/finance-service.ts","../src/features/finance/constants.ts"],"names":[],"mappings":";;;AAqBA,IAAI,cAAA,GAAwC,IAAA;AAErC,IAAM,UAAA,GAAa,MAAA,CAAqB,CAAC,GAAA,MAAS;AAAA;AAAA,EAEvD,MAAA,EAAQ,IAAA;AAAA,EACR,SAAA,EAAW,KAAA;AAAA,EACX,KAAA,EAAO,IAAA;AAAA;AAAA;AAAA;AAAA,EAKP,YAAA,EAAc,OAAO,OAAA,KAAY;AAC/B,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AAEA,IAAA,GAAA,CAAI,EAAE,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,MAAM,CAAA;AACpC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe,YAAA,CAAa,OAAO,CAAA;AACxD,MAAA,GAAA,CAAI,EAAE,MAAA,EAAQ,SAAA,EAAW,KAAA,EAAO,CAAA;AAChC,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,GAAA,CAAI,EAAE,KAAA,EAAQ,KAAA,CAAgB,OAAA,EAAS,SAAA,EAAW,OAAO,CAAA;AACzD,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,MAAM;AACjB,IAAA,GAAA,CAAI,EAAE,MAAA,EAAQ,IAAA,EAAM,CAAA;AAAA,EACtB,CAAA;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,MAAM;AAChB,IAAA,GAAA,CAAI,EAAE,KAAA,EAAO,IAAA,EAAM,CAAA;AAAA,EACrB;AACF,CAAA,CAAE;AAMK,SAAS,yBAAyB,OAAA,EAA+B;AACtE,EAAA,cAAA,GAAiB,OAAA;AACnB;;;AC/DO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAAoB,GAAA,EAAgB;AAAhB,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA;AAAA,EAAiB;AAAA;AAAA;AAAA;AAAA,EAKrC,MAAM,aAAa,OAAA,EAA+C;AAChE,IAAA,OAAO,MAAM,IAAA,CAAK,GAAA,CAAI,IAAA,CAAiB,sBAAsB,OAAO,CAAA;AAAA,EACtE;AACF;;;ACZO,IAAM,kBAAA,GAAqB;AAAA,EAChC,cAAA,EAAgB,WAAA;AAAA,EAChB,YAAA,EAAc,qBAAA;AAAA,EACd,OAAA,EAAS,QAAA;AAAA;AAAA,EACT,SAAA,EAAW;AACb","file":"chunk-PFJOL3HI.mjs","sourcesContent":["/**\n * Finance Hook\n * Zustand store for finance operations (QR code generation)\n */\n\nimport { create } from \"zustand\";\nimport { FinanceService } from \"./finance-service\";\nimport type { CreateQrPayload, QrResponse } from \"./types\";\n\ninterface FinanceState {\n // State\n qrCode: QrResponse | null;\n isLoading: boolean;\n error: string | null;\n\n // Actions\n createQrCode: (payload: CreateQrPayload) => Promise<QrResponse>;\n clearQrCode: () => void;\n clearError: () => void;\n}\n\nlet financeService: FinanceService | null = null;\n\nexport const useFinance = create<FinanceState>((set) => ({\n // Initial state\n qrCode: null,\n isLoading: false,\n error: null,\n\n /**\n * Create QR code for bank transfer\n */\n createQrCode: async (payload) => {\n if (!financeService) {\n throw new Error(\n \"Finance service not initialized. Call initializeOnex() first.\"\n );\n }\n\n set({ isLoading: true, error: null });\n try {\n const qrCode = await financeService.createQrCode(payload);\n set({ qrCode, isLoading: false });\n return qrCode;\n } catch (error) {\n set({ error: (error as Error).message, isLoading: false });\n throw error;\n }\n },\n\n /**\n * Clear QR code\n */\n clearQrCode: () => {\n set({ qrCode: null });\n },\n\n /**\n * Clear error\n */\n clearError: () => {\n set({ error: null });\n },\n}));\n\n/**\n * Initialize finance service\n * @internal Called by initializeOnex()\n */\nexport function initializeFinanceService(service: FinanceService): void {\n financeService = service;\n}\n","/**\n * Finance Service\n * Handles QR code generation for bank transfers\n */\n\nimport { ApiClient } from \"../../api/client\";\nimport type { CreateQrPayload, QrResponse } from \"./types\";\n\nexport class FinanceService {\n constructor(private api: ApiClient) {}\n\n /**\n * Create QR code for bank transfer\n */\n async createQrCode(payload: CreateQrPayload): Promise<QrResponse> {\n return await this.api.post<QrResponse>(\"/finance/public/qr\", payload);\n }\n}\n","/**\n * Finance Constants\n * Bank transfer configuration\n */\n\nexport const BANK_TRANSFER_DATA = {\n account_number: \"999914287\",\n account_name: \"CONG TY TNHH TIN AN\",\n bank_id: \"970422\", // MB Bank\n bank_name: \"Ngân hàng Quân đội (MB Bank)\",\n} as const;\n"]}