@nextblock-cms/ecom 0.20.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/_virtual/_rolldown/runtime.cjs.js +1 -0
  2. package/index.cjs.js +1 -1
  3. package/index.es.js +38 -146
  4. package/lib/CurrencyProvider.cjs.js +1 -1
  5. package/lib/CurrencyProvider.d.ts +1 -1
  6. package/lib/CurrencyProvider.es.js +85 -95
  7. package/lib/PaymentReadinessProvider.cjs.js +1 -1
  8. package/lib/PaymentReadinessProvider.d.ts +1 -1
  9. package/lib/PaymentReadinessProvider.es.js +24 -27
  10. package/lib/cart-store.cjs.js +1 -1
  11. package/lib/cart-store.es.js +109 -121
  12. package/lib/components/AccountNavigationMenu.cjs.js +1 -1
  13. package/lib/components/AccountNavigationMenu.d.ts +1 -1
  14. package/lib/components/AccountNavigationMenu.es.js +36 -50
  15. package/lib/components/AddToCartButton.cjs.js +1 -1
  16. package/lib/components/AddToCartButton.d.ts +1 -1
  17. package/lib/components/AddToCartButton.es.js +94 -89
  18. package/lib/components/Cart.cjs.js +1 -1
  19. package/lib/components/Cart.d.ts +1 -1
  20. package/lib/components/Cart.es.js +261 -180
  21. package/lib/components/CartDrawer.cjs.js +1 -1
  22. package/lib/components/CartDrawer.d.ts +1 -1
  23. package/lib/components/CartDrawer.es.js +218 -148
  24. package/lib/components/CartIcon.cjs.js +1 -1
  25. package/lib/components/CartIcon.d.ts +1 -1
  26. package/lib/components/CartIcon.es.js +33 -35
  27. package/lib/components/Checkout.cjs.js +1 -1
  28. package/lib/components/Checkout.d.ts +1 -1
  29. package/lib/components/Checkout.es.js +1092 -1108
  30. package/lib/components/CouponForm.cjs.js +1 -1
  31. package/lib/components/CouponForm.d.ts +1 -1
  32. package/lib/components/CouponForm.es.js +136 -148
  33. package/lib/components/CurrencySwitcher.cjs.js +1 -1
  34. package/lib/components/CurrencySwitcher.d.ts +1 -1
  35. package/lib/components/CurrencySwitcher.es.js +22 -18
  36. package/lib/components/CustomerProfileForm.cjs.js +1 -1
  37. package/lib/components/CustomerProfileForm.es.js +454 -313
  38. package/lib/components/FeaturedProduct.cjs.js +1 -1
  39. package/lib/components/FeaturedProduct.d.ts +1 -1
  40. package/lib/components/FeaturedProduct.es.js +98 -83
  41. package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
  42. package/lib/components/FreemiusLicensePanel.d.ts +1 -1
  43. package/lib/components/FreemiusLicensePanel.es.js +70 -65
  44. package/lib/components/InvoiceDocument.cjs.js +1 -1
  45. package/lib/components/InvoiceDocument.es.js +256 -192
  46. package/lib/components/InvoiceViewerShell.cjs.js +2 -2
  47. package/lib/components/InvoiceViewerShell.d.ts +1 -1
  48. package/lib/components/InvoiceViewerShell.es.js +75 -106
  49. package/lib/components/ProductCard.cjs.js +1 -1
  50. package/lib/components/ProductCard.d.ts +1 -1
  51. package/lib/components/ProductCard.es.js +186 -171
  52. package/lib/components/ProductDetailsLayout.cjs.js +1 -1
  53. package/lib/components/ProductDetailsLayout.es.js +405 -404
  54. package/lib/components/ProductGallery.cjs.js +1 -1
  55. package/lib/components/ProductGallery.d.ts +1 -1
  56. package/lib/components/ProductGallery.es.js +51 -54
  57. package/lib/components/ProductGrid.cjs.js +1 -1
  58. package/lib/components/ProductGrid.d.ts +1 -1
  59. package/lib/components/ProductGrid.es.js +23 -25
  60. package/lib/components/ShippingEstimator.cjs.js +1 -1
  61. package/lib/components/ShippingEstimator.d.ts +1 -1
  62. package/lib/components/ShippingEstimator.es.js +158 -153
  63. package/lib/components/ShortDescription.cjs.js +1 -1
  64. package/lib/components/ShortDescription.es.js +17 -17
  65. package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
  66. package/lib/components/SimpleTiptapRenderer.es.js +238 -211
  67. package/lib/components/SubscriptionSelector.cjs.js +1 -1
  68. package/lib/components/SubscriptionSelector.es.js +159 -154
  69. package/lib/countries.cjs.js +1 -1
  70. package/lib/countries.es.js +232 -75
  71. package/lib/coupon-server.cjs.js +1 -1
  72. package/lib/coupon-server.es.js +180 -224
  73. package/lib/coupons.cjs.js +1 -1
  74. package/lib/coupons.es.js +12 -14
  75. package/lib/currency-constants.cjs.js +1 -1
  76. package/lib/currency-constants.es.js +4 -4
  77. package/lib/currency-rest-client.cjs.js +1 -1
  78. package/lib/currency-rest-client.es.js +15 -22
  79. package/lib/currency-store.cjs.js +1 -1
  80. package/lib/currency-store.es.js +20 -27
  81. package/lib/currency-sync.cjs.js +1 -1
  82. package/lib/currency-sync.es.js +124 -170
  83. package/lib/currency.cjs.js +1 -1
  84. package/lib/currency.es.js +242 -310
  85. package/lib/customer-addresses.cjs.js +1 -1
  86. package/lib/customer-addresses.es.js +80 -109
  87. package/lib/customer-orders.cjs.js +1 -1
  88. package/lib/customer-orders.es.js +31 -43
  89. package/lib/customer.cjs.js +1 -1
  90. package/lib/customer.es.js +43 -52
  91. package/lib/export-helpers.cjs.js +1 -1
  92. package/lib/export-helpers.es.js +53 -52
  93. package/lib/factory.cjs.js +1 -1
  94. package/lib/factory.es.js +10 -7
  95. package/lib/freemius-coupons.cjs.js +1 -1
  96. package/lib/freemius-coupons.es.js +245 -262
  97. package/lib/freemius-license-claim.cjs.js +1 -1
  98. package/lib/freemius-license-claim.es.js +87 -71
  99. package/lib/freemius-license.cjs.js +1 -1
  100. package/lib/freemius-license.es.js +32 -39
  101. package/lib/freemius-order-sync.cjs.js +1 -1
  102. package/lib/freemius-order-sync.es.js +226 -290
  103. package/lib/freemius-trial-provision.cjs.js +1 -1
  104. package/lib/freemius-trial-provision.es.js +136 -130
  105. package/lib/inventory-settings.cjs.js +1 -1
  106. package/lib/inventory-settings.es.js +69 -77
  107. package/lib/invoice-server.cjs.js +3 -3
  108. package/lib/invoice-server.es.js +94 -141
  109. package/lib/invoice-ui.cjs.js +1 -1
  110. package/lib/invoice-ui.es.js +50 -66
  111. package/lib/invoice.cjs.js +1 -1
  112. package/lib/invoice.es.js +85 -94
  113. package/lib/order-inventory.cjs.js +25 -25
  114. package/lib/order-inventory.es.js +67 -79
  115. package/lib/order-tax-details.cjs.js +1 -1
  116. package/lib/order-tax-details.es.js +142 -153
  117. package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
  118. package/lib/pages/cms/coupons/CouponEditorForm.d.ts +1 -1
  119. package/lib/pages/cms/coupons/CouponEditorForm.es.js +227 -185
  120. package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
  121. package/lib/pages/cms/coupons/CouponsPage.d.ts +1 -1
  122. package/lib/pages/cms/coupons/CouponsPage.es.js +235 -166
  123. package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
  124. package/lib/pages/cms/coupons/CreateCouponDialog.d.ts +1 -1
  125. package/lib/pages/cms/coupons/CreateCouponDialog.es.js +35 -34
  126. package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
  127. package/lib/pages/cms/coupons/EditCouponPage.d.ts +1 -1
  128. package/lib/pages/cms/coupons/EditCouponPage.es.js +47 -47
  129. package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
  130. package/lib/pages/cms/coupons/ProductScopePicker.d.ts +1 -1
  131. package/lib/pages/cms/coupons/ProductScopePicker.es.js +128 -117
  132. package/lib/pages/cms/coupons/actions.cjs.js +1 -1
  133. package/lib/pages/cms/coupons/actions.es.js +112 -115
  134. package/lib/pages/cms/coupons/index.cjs.js +1 -0
  135. package/lib/pages/cms/coupons/index.es.js +3 -0
  136. package/lib/pages/cms/coupons/product-options.cjs.js +1 -1
  137. package/lib/pages/cms/coupons/product-options.es.js +21 -23
  138. package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
  139. package/lib/pages/cms/orders/ExportReportsDialog.es.js +135 -129
  140. package/lib/pages/cms/orders/MarkPaidButton.d.ts +1 -1
  141. package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
  142. package/lib/pages/cms/orders/OrderDetailPage.d.ts +1 -1
  143. package/lib/pages/cms/orders/OrderDetailPage.es.js +186 -134
  144. package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
  145. package/lib/pages/cms/orders/OrderPrintButton.d.ts +1 -1
  146. package/lib/pages/cms/orders/OrderPrintButton.es.js +15 -21
  147. package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
  148. package/lib/pages/cms/orders/OrderStatusForm.d.ts +1 -1
  149. package/lib/pages/cms/orders/OrderStatusForm.es.js +85 -69
  150. package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
  151. package/lib/pages/cms/orders/OrdersPage.d.ts +1 -1
  152. package/lib/pages/cms/orders/OrdersPage.es.js +170 -102
  153. package/lib/pages/cms/orders/actions.cjs.js +3 -3
  154. package/lib/pages/cms/orders/actions.es.js +53 -69
  155. package/lib/pages/cms/orders/export-actions.cjs.js +1 -1
  156. package/lib/pages/cms/orders/export-actions.es.js +23 -26
  157. package/lib/pages/cms/orders/index.cjs.js +1 -0
  158. package/lib/pages/cms/orders/index.es.js +6 -0
  159. package/lib/pages/cms/orders/server-actions.cjs.js +1 -1
  160. package/lib/pages/cms/orders/server-actions.es.js +60 -51
  161. package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
  162. package/lib/pages/cms/payments/PaymentsClient.d.ts +1 -1
  163. package/lib/pages/cms/payments/PaymentsClient.es.js +316 -346
  164. package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
  165. package/lib/pages/cms/payments/PaymentsPage.d.ts +1 -1
  166. package/lib/pages/cms/payments/PaymentsPage.es.js +29 -32
  167. package/lib/pages/cms/payments/actions.cjs.js +1 -1
  168. package/lib/pages/cms/payments/actions.es.js +38 -48
  169. package/lib/pages/cms/payments/index.cjs.js +1 -0
  170. package/lib/pages/cms/payments/index.es.js +3 -0
  171. package/lib/pages/cms/payments/queries.cjs.js +1 -1
  172. package/lib/pages/cms/payments/queries.es.js +38 -48
  173. package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
  174. package/lib/pages/cms/products/ProductsPage.d.ts +1 -1
  175. package/lib/pages/cms/products/ProductsPage.es.js +63 -66
  176. package/lib/pages/cms/products/[id]/edit/EditProductPage.d.ts +1 -1
  177. package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
  178. package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +138 -155
  179. package/lib/pages/cms/products/actions.cjs.js +4 -4
  180. package/lib/pages/cms/products/actions.es.js +121 -162
  181. package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
  182. package/lib/pages/cms/products/attributes/AttributeManagementPage.d.ts +1 -1
  183. package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +55 -47
  184. package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
  185. package/lib/pages/cms/products/attributes/components/AttributeManager.d.ts +1 -1
  186. package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +285 -290
  187. package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
  188. package/lib/pages/cms/products/categories/CategoryManagementPage.d.ts +1 -1
  189. package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +43 -35
  190. package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
  191. package/lib/pages/cms/products/categories/components/CategoryManager.es.js +315 -262
  192. package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
  193. package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +115 -113
  194. package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
  195. package/lib/pages/cms/products/components/CurrencyPriceFields.d.ts +1 -1
  196. package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +136 -145
  197. package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
  198. package/lib/pages/cms/products/components/DeleteProductButton.d.ts +1 -1
  199. package/lib/pages/cms/products/components/DeleteProductButton.es.js +35 -47
  200. package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
  201. package/lib/pages/cms/products/components/FreemiusPricingDashboard.d.ts +1 -1
  202. package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +106 -84
  203. package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
  204. package/lib/pages/cms/products/components/ProductCategorySelector.es.js +156 -159
  205. package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
  206. package/lib/pages/cms/products/components/ProductForm.es.js +872 -693
  207. package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
  208. package/lib/pages/cms/products/components/ProductMediaManager.es.js +106 -103
  209. package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
  210. package/lib/pages/cms/products/components/ProductsBulkTable.d.ts +1 -1
  211. package/lib/pages/cms/products/components/ProductsBulkTable.es.js +303 -294
  212. package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
  213. package/lib/pages/cms/products/components/SaleScheduleFields.d.ts +1 -1
  214. package/lib/pages/cms/products/components/SaleScheduleFields.es.js +111 -134
  215. package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
  216. package/lib/pages/cms/products/components/SyncFreemiusButton.d.ts +1 -1
  217. package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +29 -35
  218. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
  219. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.d.ts +1 -1
  220. package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +36 -48
  221. package/lib/pages/cms/products/components/SyncProductForm.d.ts +1 -1
  222. package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
  223. package/lib/pages/cms/products/components/VariationsEditor.d.ts +1 -1
  224. package/lib/pages/cms/products/components/VariationsEditor.es.js +396 -405
  225. package/lib/pages/cms/products/index.cjs.js +1 -0
  226. package/lib/pages/cms/products/index.es.js +8 -0
  227. package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
  228. package/lib/pages/cms/products/inventory/InventoryPage.d.ts +1 -1
  229. package/lib/pages/cms/products/inventory/InventoryPage.es.js +21 -15
  230. package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
  231. package/lib/pages/cms/products/inventory/InventoryTableClient.d.ts +1 -1
  232. package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +230 -209
  233. package/lib/pages/cms/products/inventory/actions.cjs.js +3 -3
  234. package/lib/pages/cms/products/inventory/actions.es.js +83 -91
  235. package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
  236. package/lib/pages/cms/products/new/NewProductPage.d.ts +1 -1
  237. package/lib/pages/cms/products/new/NewProductPage.es.js +58 -74
  238. package/lib/pages/cms/products/product-price-sync.cjs.js +1 -1
  239. package/lib/pages/cms/products/product-price-sync.es.js +74 -89
  240. package/lib/pages/cms/products/server-actions.cjs.js +1 -1
  241. package/lib/pages/cms/products/server-actions.es.js +250 -233
  242. package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
  243. package/lib/pages/cms/shipping/ShippingPage.es.js +287 -209
  244. package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
  245. package/lib/pages/cms/shipping/components/RateForm.d.ts +1 -1
  246. package/lib/pages/cms/shipping/components/RateForm.es.js +439 -436
  247. package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
  248. package/lib/pages/cms/shipping/components/ZoneForm.es.js +245 -224
  249. package/lib/pages/cms/shipping/index.cjs.js +1 -0
  250. package/lib/pages/cms/shipping/index.es.js +3 -0
  251. package/lib/pages/cms/shipping/server-actions.cjs.js +1 -1
  252. package/lib/pages/cms/shipping/server-actions.es.js +131 -149
  253. package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
  254. package/lib/pages/cms/taxes/TaxesPage.d.ts +1 -1
  255. package/lib/pages/cms/taxes/TaxesPage.es.js +211 -169
  256. package/lib/pages/cms/taxes/actions.cjs.js +1 -1
  257. package/lib/pages/cms/taxes/actions.es.js +41 -53
  258. package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
  259. package/lib/pages/cms/taxes/components/TaxRateForm.d.ts +1 -1
  260. package/lib/pages/cms/taxes/components/TaxRateForm.es.js +112 -99
  261. package/lib/pages/cms/taxes/index.cjs.js +1 -0
  262. package/lib/pages/cms/taxes/index.es.js +3 -0
  263. package/lib/payment-config.cjs.js +1 -1
  264. package/lib/payment-config.es.js +110 -126
  265. package/lib/product-actions.cjs.js +4 -4
  266. package/lib/product-actions.es.js +289 -544
  267. package/lib/product-context.cjs.js +1 -1
  268. package/lib/product-context.es.js +13 -15
  269. package/lib/product-schema.cjs.js +1 -1
  270. package/lib/product-schema.es.js +99 -134
  271. package/lib/providers/freemius.cjs.js +1 -5
  272. package/lib/providers/freemius.es.js +446 -530
  273. package/lib/providers/stripe.cjs.js +1 -1
  274. package/lib/providers/stripe.es.js +417 -477
  275. package/lib/server-actions/coupon-actions.cjs.js +1 -1
  276. package/lib/server-actions/coupon-actions.es.js +22 -22
  277. package/lib/server-actions/customer-actions.cjs.js +1 -1
  278. package/lib/server-actions/customer-actions.es.js +26 -28
  279. package/lib/server-actions/product-actions.cjs.js +1 -1
  280. package/lib/server-actions/product-actions.es.js +9 -15
  281. package/lib/server-actions/shipping-actions.cjs.js +1 -1
  282. package/lib/server-actions/shipping-actions.es.js +27 -24
  283. package/lib/server-actions/tax-actions.cjs.js +1 -1
  284. package/lib/server-actions/tax-actions.es.js +33 -39
  285. package/lib/shared-inventory.cjs.js +2 -2
  286. package/lib/shared-inventory.es.js +111 -160
  287. package/lib/shipping/resolver.cjs.js +2 -2
  288. package/lib/shipping/resolver.es.js +44 -61
  289. package/lib/shipping-rate-currency.cjs.js +1 -1
  290. package/lib/shipping-rate-currency.es.js +52 -67
  291. package/lib/states.cjs.js +1 -1
  292. package/lib/states.es.js +333 -154
  293. package/lib/stripe/checkout.cjs.js +1 -1
  294. package/lib/stripe/checkout.es.js +125 -181
  295. package/lib/stripe/client.cjs.js +1 -1
  296. package/lib/stripe/client.es.js +14 -19
  297. package/lib/stripe/order-sync.cjs.js +1 -1
  298. package/lib/stripe/order-sync.es.js +106 -126
  299. package/lib/stripe/webhooks.cjs.js +1 -1
  300. package/lib/stripe/webhooks.es.js +37 -31
  301. package/lib/tax-calculation.cjs.js +1 -1
  302. package/lib/tax-calculation.es.js +84 -98
  303. package/lib/trials.cjs.js +1 -1
  304. package/lib/trials.es.js +24 -30
  305. package/lib/types.cjs.js +1 -1
  306. package/lib/types.es.js +21 -27
  307. package/lib/use-cart.cjs.js +1 -1
  308. package/lib/use-cart.es.js +38 -40
  309. package/lib/use-price-formatter.cjs.js +1 -1
  310. package/lib/use-price-formatter.es.js +10 -11
  311. package/lib/variation-utils.cjs.js +1 -1
  312. package/lib/variation-utils.es.js +199 -261
  313. package/lib/zod-config.cjs.js +1 -1
  314. package/lib/zod-config.es.js +5 -6
  315. package/package.json +16 -16
  316. package/server.cjs.js +1 -1
  317. package/server.es.js +56 -211
@@ -1,71 +1,87 @@
1
- 'use client';
2
- import { jsxs as s, jsx as l } from "react/jsx-runtime";
3
- import { useState as c, useTransition as v, useMemo as g } from "react";
4
- import { useRouter as S } from "next/navigation";
5
- import { Select as f, SelectTrigger as b, SelectValue as N, SelectContent as T, SelectItem as O, Button as k } from "@nextblock-cms/ui";
6
- import { updateOrderStatus as w } from "./server-actions.es.js";
7
- const o = [
8
- { value: "pending", label: "Pending" },
9
- { value: "trial", label: "Trial" },
10
- { value: "paid", label: "Paid" },
11
- { value: "shipped", label: "Shipped" },
12
- { value: "cancelled", label: "Cancelled" },
13
- { value: "refunded", label: "Refunded" }
1
+ "use client";
2
+ import { updateOrderStatus as e } from "./server-actions.es.js";
3
+ import { useMemo as t, useState as n, useTransition as r } from "react";
4
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
+ import { useRouter as o } from "next/navigation";
6
+ import { Button as s, Select as c, SelectContent as l, SelectItem as u, SelectTrigger as d, SelectValue as f } from "@nextblock-cms/ui";
7
+ //#region libs/ecommerce/src/lib/pages/cms/orders/OrderStatusForm.tsx
8
+ var p = [
9
+ {
10
+ value: "pending",
11
+ label: "Pending"
12
+ },
13
+ {
14
+ value: "trial",
15
+ label: "Trial"
16
+ },
17
+ {
18
+ value: "paid",
19
+ label: "Paid"
20
+ },
21
+ {
22
+ value: "shipped",
23
+ label: "Shipped"
24
+ },
25
+ {
26
+ value: "cancelled",
27
+ label: "Cancelled"
28
+ },
29
+ {
30
+ value: "refunded",
31
+ label: "Refunded"
32
+ }
14
33
  ];
15
- function F({
16
- orderId: u,
17
- currentStatus: t
18
- }) {
19
- const m = S(), [a, p] = c(
20
- o.some((e) => e.value === t) ? t : "pending"
21
- ), [d, r] = c(null), [i, h] = v(), n = g(
22
- () => a !== t,
23
- [t, a]
24
- ), x = () => {
25
- n && (r(null), h(async () => {
26
- try {
27
- const e = await w(u, a);
28
- if (!e.success) {
29
- r(e.error || "Failed to update order status.");
30
- return;
31
- }
32
- m.refresh();
33
- } catch (e) {
34
- console.error(e), r("Unexpected error while saving the order status.");
35
- }
36
- }));
37
- };
38
- return /* @__PURE__ */ s("div", { className: "rounded-lg border bg-white p-4 dark:border-slate-800 dark:bg-slate-900", children: [
39
- /* @__PURE__ */ s("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-end", children: [
40
- /* @__PURE__ */ s("div", { className: "min-w-[220px] flex-1 space-y-2", children: [
41
- /* @__PURE__ */ l("p", { className: "text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-500", children: "Order Status" }),
42
- /* @__PURE__ */ s(
43
- f,
44
- {
45
- value: a,
46
- onValueChange: (e) => {
47
- p(e), r(null);
48
- },
49
- children: [
50
- /* @__PURE__ */ l(b, { children: /* @__PURE__ */ l(N, { placeholder: "Select status" }) }),
51
- /* @__PURE__ */ l(T, { children: o.map((e) => /* @__PURE__ */ l(O, { value: e.value, children: e.label }, e.value)) })
52
- ]
53
- }
54
- )
55
- ] }),
56
- /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ l(
57
- k,
58
- {
59
- type: "button",
60
- onClick: x,
61
- disabled: i || !n,
62
- children: i ? "Saving..." : "Save"
63
- }
64
- ) })
65
- ] }),
66
- d ? /* @__PURE__ */ l("p", { className: "mt-2 text-xs text-red-600 dark:text-red-400", children: d }) : n ? null : /* @__PURE__ */ l("p", { className: "mt-2 text-xs text-slate-500", children: "Status is already up to date." })
67
- ] });
34
+ function m({ orderId: m, currentStatus: h }) {
35
+ let g = o(), [_, v] = n(p.some((e) => e.value === h) ? h : "pending"), [y, b] = n(null), [x, S] = r(), C = t(() => _ !== h, [h, _]);
36
+ return /* @__PURE__ */ a("div", {
37
+ className: "rounded-lg border bg-white p-4 dark:border-slate-800 dark:bg-slate-900",
38
+ children: [/* @__PURE__ */ a("div", {
39
+ className: "flex flex-col gap-3 sm:flex-row sm:items-end",
40
+ children: [/* @__PURE__ */ a("div", {
41
+ className: "min-w-[220px] flex-1 space-y-2",
42
+ children: [/* @__PURE__ */ i("p", {
43
+ className: "text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-500",
44
+ children: "Order Status"
45
+ }), /* @__PURE__ */ a(c, {
46
+ value: _,
47
+ onValueChange: (e) => {
48
+ v(e), b(null);
49
+ },
50
+ children: [/* @__PURE__ */ i(d, { children: /* @__PURE__ */ i(f, { placeholder: "Select status" }) }), /* @__PURE__ */ i(l, { children: p.map((e) => /* @__PURE__ */ i(u, {
51
+ value: e.value,
52
+ children: e.label
53
+ }, e.value)) })]
54
+ })]
55
+ }), /* @__PURE__ */ i("div", {
56
+ className: "flex items-center gap-2",
57
+ children: /* @__PURE__ */ i(s, {
58
+ type: "button",
59
+ onClick: () => {
60
+ C && (b(null), S(async () => {
61
+ try {
62
+ let t = await e(m, _);
63
+ if (!t.success) {
64
+ b(t.error || "Failed to update order status.");
65
+ return;
66
+ }
67
+ g.refresh();
68
+ } catch (e) {
69
+ console.error(e), b("Unexpected error while saving the order status.");
70
+ }
71
+ }));
72
+ },
73
+ disabled: x || !C,
74
+ children: x ? "Saving..." : "Save"
75
+ })
76
+ })]
77
+ }), y ? /* @__PURE__ */ i("p", {
78
+ className: "mt-2 text-xs text-red-600 dark:text-red-400",
79
+ children: y
80
+ }) : C ? null : /* @__PURE__ */ i("p", {
81
+ className: "mt-2 text-xs text-slate-500",
82
+ children: "Status is already up to date."
83
+ })]
84
+ });
68
85
  }
69
- export {
70
- F as OrderStatusForm
71
- };
86
+ //#endregion
87
+ export { m as OrderStatusForm };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("next/link"),m=require("./actions.cjs.js"),g=require("./ExportReportsDialog.cjs.js"),x=(s,a="usd")=>new Intl.NumberFormat("en-US",{style:"currency",currency:a}).format(s/100);async function p({searchParams:s}){const a=await s,r=Number(a.page)||1,l=a.status||"all",{data:c,totalPages:i}=await m.getOrders(r,l);return e.jsxs("div",{className:"p-6 space-y-6",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Orders"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(g.ExportReportsDialog,{}),e.jsx(d,{href:`/cms/orders?page=${r}&status=${l}`,className:"px-3 py-2 text-sm font-medium border rounded hover:bg-gray-50 dark:hover:bg-slate-800",children:"Refresh"})]})]}),e.jsx("div",{className:"flex gap-2 border-b pb-4",children:["all","paid","trial","pending","failed"].map(t=>e.jsx(d,{href:`/cms/orders?page=1&status=${t}`,className:`px-3 py-1 rounded-full text-sm font-medium capitalize ${l===t?"bg-black text-white dark:bg-white dark:text-black":"bg-gray-100 text-gray-600 hover:bg-gray-200 dark:bg-slate-800 dark:text-gray-300 dark:hover:bg-slate-700"}`,children:t},t))}),e.jsx("div",{className:"border rounded-lg overflow-hidden dark:border-slate-800",children:e.jsxs("table",{className:"w-full text-sm text-left align-middle",children:[e.jsx("thead",{className:"bg-gray-50 text-gray-500 font-medium border-b dark:bg-slate-900 dark:text-slate-400 dark:border-slate-800",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-4 py-3",children:"ID"}),e.jsx("th",{className:"px-4 py-3",children:"Customer"}),e.jsx("th",{className:"px-4 py-3",children:"Status"}),e.jsx("th",{className:"px-4 py-3",children:"Provider"}),e.jsx("th",{className:"px-4 py-3 text-right",children:"Amount"}),e.jsx("th",{className:"px-4 py-3 text-right",children:"Date"}),e.jsx("th",{className:"px-4 py-3 text-right",children:"Actions"})]})}),e.jsx("tbody",{className:"divide-y dark:divide-slate-800",children:c.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:7,className:"px-4 py-8 text-center text-gray-500",children:"No orders found."})}):c.map(t=>{const n=t.customer_details,o=n?.name||n?.email||t.customer?.full_name||"Guest Customer";return e.jsxs("tr",{className:"hover:bg-gray-50 dark:hover:bg-slate-800/50",children:[e.jsxs("td",{className:"px-4 py-3 font-mono text-gray-500",children:[t.id.slice(0,8),"..."]}),e.jsx("td",{className:"px-4 py-3 font-medium",children:o}),e.jsx("td",{className:"px-4 py-3",children:e.jsx(h,{status:t.status})}),e.jsx("td",{className:"px-4 py-3 capitalize text-gray-600 dark:text-gray-400",children:t.provider==="freemius"?"Freemius":"Stripe"}),e.jsx("td",{className:"px-4 py-3 text-right",children:e.jsxs("div",{className:"flex flex-col items-end",children:[e.jsx("span",{children:x(t.total,t.currency||"usd")}),t.discount_total?e.jsxs("span",{className:"text-[10px] text-emerald-600",children:[t.coupon_code," -",x(t.discount_total,t.currency||"usd")]}):null]})}),e.jsx("td",{className:"px-4 py-3 text-right text-gray-500 whitespace-nowrap",children:new Date(t.created_at||"").toLocaleDateString()}),e.jsx("td",{className:"px-4 py-3 text-right",children:e.jsx(d,{href:`/cms/orders/${t.id}`,className:"text-blue-600 hover:underline dark:text-blue-400",children:"View"})})]},t.id)})})]})}),e.jsxs("div",{className:"flex justify-between items-center pt-4",children:[e.jsxs("div",{className:"text-sm text-gray-500",children:["Page ",r," of ",i]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(d,{href:`/cms/orders?page=${Math.max(1,r-1)}&status=${l}`,className:`px-3 py-1 border rounded text-sm ${r<=1?"pointer-events-none opacity-50":"hover:bg-gray-50 dark:hover:bg-slate-800"}`,children:"Previous"}),e.jsx(d,{href:`/cms/orders?page=${Math.min(i,r+1)}&status=${l}`,className:`px-3 py-1 border rounded text-sm ${r>=i?"pointer-events-none opacity-50":"hover:bg-gray-50 dark:hover:bg-slate-800"}`,children:"Next"})]})]})]})}function h({status:s}){let a="bg-gray-100 text-gray-700 dark:bg-slate-800 dark:text-gray-300";return s==="paid"&&(a="bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400"),s==="trial"&&(a="bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-300"),s==="pending"&&(a="bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400"),s==="failed"&&(a="bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400"),e.jsx("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium capitalize ${a}`,children:s})}exports.OrdersPage=p;
1
+ const e=require("../../../../_virtual/_rolldown/runtime.cjs.js"),t=require("./actions.cjs.js"),n=require("./ExportReportsDialog.cjs.js");let r=require("next/link");r=e.__toESM(r,1);let i=require("react/jsx-runtime");var a=(e,t=`usd`)=>new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e/100);async function o({searchParams:e}){let o=await e,c=Number(o.page)||1,l=o.status||`all`,{data:u,totalPages:d}=await t.getOrders(c,l);return(0,i.jsxs)(`div`,{className:`p-6 space-y-6`,children:[(0,i.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,i.jsx)(`h1`,{className:`text-2xl font-bold tracking-tight`,children:`Orders`}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(n.ExportReportsDialog,{}),(0,i.jsx)(r.default,{href:`/cms/orders?page=${c}&status=${l}`,className:`px-3 py-2 text-sm font-medium border rounded hover:bg-gray-50 dark:hover:bg-slate-800`,children:`Refresh`})]})]}),(0,i.jsx)(`div`,{className:`flex gap-2 border-b pb-4`,children:[`all`,`paid`,`trial`,`pending`,`failed`].map(e=>(0,i.jsx)(r.default,{href:`/cms/orders?page=1&status=${e}`,className:`px-3 py-1 rounded-full text-sm font-medium capitalize ${l===e?`bg-black text-white dark:bg-white dark:text-black`:`bg-gray-100 text-gray-600 hover:bg-gray-200 dark:bg-slate-800 dark:text-gray-300 dark:hover:bg-slate-700`}`,children:e},e))}),(0,i.jsx)(`div`,{className:`border rounded-lg overflow-hidden dark:border-slate-800`,children:(0,i.jsxs)(`table`,{className:`w-full text-sm text-left align-middle`,children:[(0,i.jsx)(`thead`,{className:`bg-gray-50 text-gray-500 font-medium border-b dark:bg-slate-900 dark:text-slate-400 dark:border-slate-800`,children:(0,i.jsxs)(`tr`,{children:[(0,i.jsx)(`th`,{className:`px-4 py-3`,children:`ID`}),(0,i.jsx)(`th`,{className:`px-4 py-3`,children:`Customer`}),(0,i.jsx)(`th`,{className:`px-4 py-3`,children:`Status`}),(0,i.jsx)(`th`,{className:`px-4 py-3`,children:`Provider`}),(0,i.jsx)(`th`,{className:`px-4 py-3 text-right`,children:`Amount`}),(0,i.jsx)(`th`,{className:`px-4 py-3 text-right`,children:`Date`}),(0,i.jsx)(`th`,{className:`px-4 py-3 text-right`,children:`Actions`})]})}),(0,i.jsx)(`tbody`,{className:`divide-y dark:divide-slate-800`,children:u.length===0?(0,i.jsx)(`tr`,{children:(0,i.jsx)(`td`,{colSpan:7,className:`px-4 py-8 text-center text-gray-500`,children:`No orders found.`})}):u.map(e=>{let t=e.customer_details,n=t?.name||t?.email||e.customer?.full_name||`Guest Customer`;return(0,i.jsxs)(`tr`,{className:`hover:bg-gray-50 dark:hover:bg-slate-800/50`,children:[(0,i.jsxs)(`td`,{className:`px-4 py-3 font-mono text-gray-500`,children:[e.id.slice(0,8),`...`]}),(0,i.jsx)(`td`,{className:`px-4 py-3 font-medium`,children:n}),(0,i.jsx)(`td`,{className:`px-4 py-3`,children:(0,i.jsx)(s,{status:e.status})}),(0,i.jsx)(`td`,{className:`px-4 py-3 capitalize text-gray-600 dark:text-gray-400`,children:e.provider===`freemius`?`Freemius`:`Stripe`}),(0,i.jsx)(`td`,{className:`px-4 py-3 text-right`,children:(0,i.jsxs)(`div`,{className:`flex flex-col items-end`,children:[(0,i.jsx)(`span`,{children:a(e.total,e.currency||`usd`)}),e.discount_total?(0,i.jsxs)(`span`,{className:`text-[10px] text-emerald-600`,children:[e.coupon_code,` -`,a(e.discount_total,e.currency||`usd`)]}):null]})}),(0,i.jsx)(`td`,{className:`px-4 py-3 text-right text-gray-500 whitespace-nowrap`,children:new Date(e.created_at||``).toLocaleDateString()}),(0,i.jsx)(`td`,{className:`px-4 py-3 text-right`,children:(0,i.jsx)(r.default,{href:`/cms/orders/${e.id}`,className:`text-blue-600 hover:underline dark:text-blue-400`,children:`View`})})]},e.id)})})]})}),(0,i.jsxs)(`div`,{className:`flex justify-between items-center pt-4`,children:[(0,i.jsxs)(`div`,{className:`text-sm text-gray-500`,children:[`Page `,c,` of `,d]}),(0,i.jsxs)(`div`,{className:`flex gap-2`,children:[(0,i.jsx)(r.default,{href:`/cms/orders?page=${Math.max(1,c-1)}&status=${l}`,className:`px-3 py-1 border rounded text-sm ${c<=1?`pointer-events-none opacity-50`:`hover:bg-gray-50 dark:hover:bg-slate-800`}`,children:`Previous`}),(0,i.jsx)(r.default,{href:`/cms/orders?page=${Math.min(d,c+1)}&status=${l}`,className:`px-3 py-1 border rounded text-sm ${c>=d?`pointer-events-none opacity-50`:`hover:bg-gray-50 dark:hover:bg-slate-800`}`,children:`Next`})]})]})]})}function s({status:e}){let t=`bg-gray-100 text-gray-700 dark:bg-slate-800 dark:text-gray-300`;return e===`paid`&&(t=`bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400`),e===`trial`&&(t=`bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-300`),e===`pending`&&(t=`bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400`),e===`failed`&&(t=`bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400`),(0,i.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-xs font-medium capitalize ${t}`,children:e})}exports.OrdersPage=o;
@@ -3,4 +3,4 @@ export declare function OrdersPage({ searchParams, }: {
3
3
  page?: string;
4
4
  status?: string;
5
5
  }>;
6
- }): Promise<import("react").JSX.Element>;
6
+ }): Promise<import('react').JSX.Element>;
@@ -1,104 +1,172 @@
1
- import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
- import i from "next/link";
3
- import { getOrders as h } from "./actions.es.js";
4
- import { ExportReportsDialog as g } from "./ExportReportsDialog.es.js";
5
- const m = (s, r = "usd") => new Intl.NumberFormat("en-US", {
6
- style: "currency",
7
- currency: r
8
- }).format(s / 100);
9
- async function N({
10
- searchParams: s
11
- }) {
12
- const r = await s, l = Number(r.page) || 1, d = r.status || "all", { data: n, totalPages: c } = await h(l, d);
13
- return /* @__PURE__ */ a("div", { className: "p-6 space-y-6", children: [
14
- /* @__PURE__ */ a("div", { className: "flex justify-between items-center", children: [
15
- /* @__PURE__ */ e("h1", { className: "text-2xl font-bold tracking-tight", children: "Orders" }),
16
- /* @__PURE__ */ a("div", { className: "flex items-center gap-2", children: [
17
- /* @__PURE__ */ e(g, {}),
18
- /* @__PURE__ */ e(i, { href: `/cms/orders?page=${l}&status=${d}`, className: "px-3 py-2 text-sm font-medium border rounded hover:bg-gray-50 dark:hover:bg-slate-800", children: "Refresh" })
19
- ] })
20
- ] }),
21
- /* @__PURE__ */ e("div", { className: "flex gap-2 border-b pb-4", children: ["all", "paid", "trial", "pending", "failed"].map((t) => /* @__PURE__ */ e(
22
- i,
23
- {
24
- href: `/cms/orders?page=1&status=${t}`,
25
- className: `px-3 py-1 rounded-full text-sm font-medium capitalize ${d === t ? "bg-black text-white dark:bg-white dark:text-black" : "bg-gray-100 text-gray-600 hover:bg-gray-200 dark:bg-slate-800 dark:text-gray-300 dark:hover:bg-slate-700"}`,
26
- children: t
27
- },
28
- t
29
- )) }),
30
- /* @__PURE__ */ e("div", { className: "border rounded-lg overflow-hidden dark:border-slate-800", children: /* @__PURE__ */ a("table", { className: "w-full text-sm text-left align-middle", children: [
31
- /* @__PURE__ */ e("thead", { className: "bg-gray-50 text-gray-500 font-medium border-b dark:bg-slate-900 dark:text-slate-400 dark:border-slate-800", children: /* @__PURE__ */ a("tr", { children: [
32
- /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "ID" }),
33
- /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Customer" }),
34
- /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Status" }),
35
- /* @__PURE__ */ e("th", { className: "px-4 py-3", children: "Provider" }),
36
- /* @__PURE__ */ e("th", { className: "px-4 py-3 text-right", children: "Amount" }),
37
- /* @__PURE__ */ e("th", { className: "px-4 py-3 text-right", children: "Date" }),
38
- /* @__PURE__ */ e("th", { className: "px-4 py-3 text-right", children: "Actions" })
39
- ] }) }),
40
- /* @__PURE__ */ e("tbody", { className: "divide-y dark:divide-slate-800", children: n.length === 0 ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e("td", { colSpan: 7, className: "px-4 py-8 text-center text-gray-500", children: "No orders found." }) }) : n.map((t) => {
41
- const o = t.customer_details, p = o?.name || o?.email || t.customer?.full_name || "Guest Customer";
42
- return /* @__PURE__ */ a("tr", { className: "hover:bg-gray-50 dark:hover:bg-slate-800/50", children: [
43
- /* @__PURE__ */ a("td", { className: "px-4 py-3 font-mono text-gray-500", children: [
44
- t.id.slice(0, 8),
45
- "..."
46
- ] }),
47
- /* @__PURE__ */ e("td", { className: "px-4 py-3 font-medium", children: p }),
48
- /* @__PURE__ */ e("td", { className: "px-4 py-3", children: /* @__PURE__ */ e(x, { status: t.status }) }),
49
- /* @__PURE__ */ e("td", { className: "px-4 py-3 capitalize text-gray-600 dark:text-gray-400", children: t.provider === "freemius" ? "Freemius" : "Stripe" }),
50
- /* @__PURE__ */ e("td", { className: "px-4 py-3 text-right", children: /* @__PURE__ */ a("div", { className: "flex flex-col items-end", children: [
51
- /* @__PURE__ */ e("span", { children: m(t.total, t.currency || "usd") }),
52
- t.discount_total ? /* @__PURE__ */ a("span", { className: "text-[10px] text-emerald-600", children: [
53
- t.coupon_code,
54
- " -",
55
- m(t.discount_total, t.currency || "usd")
56
- ] }) : null
57
- ] }) }),
58
- /* @__PURE__ */ e("td", { className: "px-4 py-3 text-right text-gray-500 whitespace-nowrap", children: new Date(t.created_at || "").toLocaleDateString() }),
59
- /* @__PURE__ */ e("td", { className: "px-4 py-3 text-right", children: /* @__PURE__ */ e(
60
- i,
61
- {
62
- href: `/cms/orders/${t.id}`,
63
- className: "text-blue-600 hover:underline dark:text-blue-400",
64
- children: "View"
65
- }
66
- ) })
67
- ] }, t.id);
68
- }) })
69
- ] }) }),
70
- /* @__PURE__ */ a("div", { className: "flex justify-between items-center pt-4", children: [
71
- /* @__PURE__ */ a("div", { className: "text-sm text-gray-500", children: [
72
- "Page ",
73
- l,
74
- " of ",
75
- c
76
- ] }),
77
- /* @__PURE__ */ a("div", { className: "flex gap-2", children: [
78
- /* @__PURE__ */ e(
79
- i,
80
- {
81
- href: `/cms/orders?page=${Math.max(1, l - 1)}&status=${d}`,
82
- className: `px-3 py-1 border rounded text-sm ${l <= 1 ? "pointer-events-none opacity-50" : "hover:bg-gray-50 dark:hover:bg-slate-800"}`,
83
- children: "Previous"
84
- }
85
- ),
86
- /* @__PURE__ */ e(
87
- i,
88
- {
89
- href: `/cms/orders?page=${Math.min(c, l + 1)}&status=${d}`,
90
- className: `px-3 py-1 border rounded text-sm ${l >= c ? "pointer-events-none opacity-50" : "hover:bg-gray-50 dark:hover:bg-slate-800"}`,
91
- children: "Next"
92
- }
93
- )
94
- ] })
95
- ] })
96
- ] });
1
+ import { getOrders as e } from "./actions.es.js";
2
+ import { ExportReportsDialog as t } from "./ExportReportsDialog.es.js";
3
+ import n from "next/link";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ //#region libs/ecommerce/src/lib/pages/cms/orders/OrdersPage.tsx
6
+ var a = (e, t = "usd") => new Intl.NumberFormat("en-US", {
7
+ style: "currency",
8
+ currency: t
9
+ }).format(e / 100);
10
+ async function o({ searchParams: o }) {
11
+ let c = await o, l = Number(c.page) || 1, u = c.status || "all", { data: d, totalPages: f } = await e(l, u);
12
+ return /* @__PURE__ */ i("div", {
13
+ className: "p-6 space-y-6",
14
+ children: [
15
+ /* @__PURE__ */ i("div", {
16
+ className: "flex justify-between items-center",
17
+ children: [/* @__PURE__ */ r("h1", {
18
+ className: "text-2xl font-bold tracking-tight",
19
+ children: "Orders"
20
+ }), /* @__PURE__ */ i("div", {
21
+ className: "flex items-center gap-2",
22
+ children: [/* @__PURE__ */ r(t, {}), /* @__PURE__ */ r(n, {
23
+ href: `/cms/orders?page=${l}&status=${u}`,
24
+ className: "px-3 py-2 text-sm font-medium border rounded hover:bg-gray-50 dark:hover:bg-slate-800",
25
+ children: "Refresh"
26
+ })]
27
+ })]
28
+ }),
29
+ /* @__PURE__ */ r("div", {
30
+ className: "flex gap-2 border-b pb-4",
31
+ children: [
32
+ "all",
33
+ "paid",
34
+ "trial",
35
+ "pending",
36
+ "failed"
37
+ ].map((e) => /* @__PURE__ */ r(n, {
38
+ href: `/cms/orders?page=1&status=${e}`,
39
+ className: `px-3 py-1 rounded-full text-sm font-medium capitalize ${u === e ? "bg-black text-white dark:bg-white dark:text-black" : "bg-gray-100 text-gray-600 hover:bg-gray-200 dark:bg-slate-800 dark:text-gray-300 dark:hover:bg-slate-700"}`,
40
+ children: e
41
+ }, e))
42
+ }),
43
+ /* @__PURE__ */ r("div", {
44
+ className: "border rounded-lg overflow-hidden dark:border-slate-800",
45
+ children: /* @__PURE__ */ i("table", {
46
+ className: "w-full text-sm text-left align-middle",
47
+ children: [/* @__PURE__ */ r("thead", {
48
+ className: "bg-gray-50 text-gray-500 font-medium border-b dark:bg-slate-900 dark:text-slate-400 dark:border-slate-800",
49
+ children: /* @__PURE__ */ i("tr", { children: [
50
+ /* @__PURE__ */ r("th", {
51
+ className: "px-4 py-3",
52
+ children: "ID"
53
+ }),
54
+ /* @__PURE__ */ r("th", {
55
+ className: "px-4 py-3",
56
+ children: "Customer"
57
+ }),
58
+ /* @__PURE__ */ r("th", {
59
+ className: "px-4 py-3",
60
+ children: "Status"
61
+ }),
62
+ /* @__PURE__ */ r("th", {
63
+ className: "px-4 py-3",
64
+ children: "Provider"
65
+ }),
66
+ /* @__PURE__ */ r("th", {
67
+ className: "px-4 py-3 text-right",
68
+ children: "Amount"
69
+ }),
70
+ /* @__PURE__ */ r("th", {
71
+ className: "px-4 py-3 text-right",
72
+ children: "Date"
73
+ }),
74
+ /* @__PURE__ */ r("th", {
75
+ className: "px-4 py-3 text-right",
76
+ children: "Actions"
77
+ })
78
+ ] })
79
+ }), /* @__PURE__ */ r("tbody", {
80
+ className: "divide-y dark:divide-slate-800",
81
+ children: d.length === 0 ? /* @__PURE__ */ r("tr", { children: /* @__PURE__ */ r("td", {
82
+ colSpan: 7,
83
+ className: "px-4 py-8 text-center text-gray-500",
84
+ children: "No orders found."
85
+ }) }) : d.map((e) => {
86
+ let t = e.customer_details, o = t?.name || t?.email || e.customer?.full_name || "Guest Customer";
87
+ return /* @__PURE__ */ i("tr", {
88
+ className: "hover:bg-gray-50 dark:hover:bg-slate-800/50",
89
+ children: [
90
+ /* @__PURE__ */ i("td", {
91
+ className: "px-4 py-3 font-mono text-gray-500",
92
+ children: [e.id.slice(0, 8), "..."]
93
+ }),
94
+ /* @__PURE__ */ r("td", {
95
+ className: "px-4 py-3 font-medium",
96
+ children: o
97
+ }),
98
+ /* @__PURE__ */ r("td", {
99
+ className: "px-4 py-3",
100
+ children: /* @__PURE__ */ r(s, { status: e.status })
101
+ }),
102
+ /* @__PURE__ */ r("td", {
103
+ className: "px-4 py-3 capitalize text-gray-600 dark:text-gray-400",
104
+ children: e.provider === "freemius" ? "Freemius" : "Stripe"
105
+ }),
106
+ /* @__PURE__ */ r("td", {
107
+ className: "px-4 py-3 text-right",
108
+ children: /* @__PURE__ */ i("div", {
109
+ className: "flex flex-col items-end",
110
+ children: [/* @__PURE__ */ r("span", { children: a(e.total, e.currency || "usd") }), e.discount_total ? /* @__PURE__ */ i("span", {
111
+ className: "text-[10px] text-emerald-600",
112
+ children: [
113
+ e.coupon_code,
114
+ " -",
115
+ a(e.discount_total, e.currency || "usd")
116
+ ]
117
+ }) : null]
118
+ })
119
+ }),
120
+ /* @__PURE__ */ r("td", {
121
+ className: "px-4 py-3 text-right text-gray-500 whitespace-nowrap",
122
+ children: new Date(e.created_at || "").toLocaleDateString()
123
+ }),
124
+ /* @__PURE__ */ r("td", {
125
+ className: "px-4 py-3 text-right",
126
+ children: /* @__PURE__ */ r(n, {
127
+ href: `/cms/orders/${e.id}`,
128
+ className: "text-blue-600 hover:underline dark:text-blue-400",
129
+ children: "View"
130
+ })
131
+ })
132
+ ]
133
+ }, e.id);
134
+ })
135
+ })]
136
+ })
137
+ }),
138
+ /* @__PURE__ */ i("div", {
139
+ className: "flex justify-between items-center pt-4",
140
+ children: [/* @__PURE__ */ i("div", {
141
+ className: "text-sm text-gray-500",
142
+ children: [
143
+ "Page ",
144
+ l,
145
+ " of ",
146
+ f
147
+ ]
148
+ }), /* @__PURE__ */ i("div", {
149
+ className: "flex gap-2",
150
+ children: [/* @__PURE__ */ r(n, {
151
+ href: `/cms/orders?page=${Math.max(1, l - 1)}&status=${u}`,
152
+ className: `px-3 py-1 border rounded text-sm ${l <= 1 ? "pointer-events-none opacity-50" : "hover:bg-gray-50 dark:hover:bg-slate-800"}`,
153
+ children: "Previous"
154
+ }), /* @__PURE__ */ r(n, {
155
+ href: `/cms/orders?page=${Math.min(f, l + 1)}&status=${u}`,
156
+ className: `px-3 py-1 border rounded text-sm ${l >= f ? "pointer-events-none opacity-50" : "hover:bg-gray-50 dark:hover:bg-slate-800"}`,
157
+ children: "Next"
158
+ })]
159
+ })]
160
+ })
161
+ ]
162
+ });
97
163
  }
98
- function x({ status: s }) {
99
- let r = "bg-gray-100 text-gray-700 dark:bg-slate-800 dark:text-gray-300";
100
- return s === "paid" && (r = "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400"), s === "trial" && (r = "bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-300"), s === "pending" && (r = "bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400"), s === "failed" && (r = "bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400"), /* @__PURE__ */ e("span", { className: `px-2 py-0.5 rounded-full text-xs font-medium capitalize ${r}`, children: s });
164
+ function s({ status: e }) {
165
+ let t = "bg-gray-100 text-gray-700 dark:bg-slate-800 dark:text-gray-300";
166
+ return e === "paid" && (t = "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400"), e === "trial" && (t = "bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-300"), e === "pending" && (t = "bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400"), e === "failed" && (t = "bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400"), /* @__PURE__ */ r("span", {
167
+ className: `px-2 py-0.5 rounded-full text-xs font-medium capitalize ${t}`,
168
+ children: e
169
+ });
101
170
  }
102
- export {
103
- N as OrdersPage
104
- };
171
+ //#endregion
172
+ export { o as OrdersPage };
@@ -1,7 +1,7 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("@nextblock-cms/db/server"),m=20;async function h(l=1,i,s){const d=await g.createClient(),t=(l-1)*m,n=t+m-1;let o=d.from("orders").select(`
1
+ "use server";let e=require("@nextblock-cms/db/server");var t=20;async function n(n=1,r,i){let a=await(0,e.createClient)(),o=(n-1)*t,s=o+t-1,c=a.from(`orders`).select(`
2
2
  *,
3
3
  order_items (*)
4
- `,{count:"exact"}).order("created_at",{ascending:!1}).range(t,n);i&&i!=="all"&&(o=o.eq("status",i)),s&&(o=o.or(`id.eq.${s},user_id.eq.${s}`));const{data:u,error:f,count:e}=await o;if(f)throw console.error("Error fetching orders:",f),new Error("Failed to fetch orders");const r=u||[],c=Array.from(new Set(r.map(a=>a.user_id).filter(Boolean))),p=new Map;if(c.length>0){const{data:a,error:w}=await d.from("profiles").select("*").in("id",c);!w&&a&&a.forEach(_=>p.set(_.id,_))}return{data:r.map(a=>({...a,customer:a.user_id?p.get(a.user_id):null})),total:e||0,totalPages:e?Math.ceil(e/m):0}}async function E(l){const i=await g.createClient(),{data:s,error:d}=await i.from("orders").select(`
4
+ `,{count:`exact`}).order(`created_at`,{ascending:!1}).range(o,s);r&&r!==`all`&&(c=c.eq(`status`,r)),i&&(c=c.or(`id.eq.${i},user_id.eq.${i}`));let{data:l,error:u,count:d}=await c;if(u)throw console.error(`Error fetching orders:`,u),Error(`Failed to fetch orders`);let f=l||[],p=Array.from(new Set(f.map(e=>e.user_id).filter(Boolean))),m=new Map;if(p.length>0){let{data:e,error:t}=await a.from(`profiles`).select(`*`).in(`id`,p);!t&&e&&e.forEach(e=>m.set(e.id,e))}return{data:f.map(e=>({...e,customer:e.user_id?m.get(e.user_id):null})),total:d||0,totalPages:d?Math.ceil(d/t):0}}async function r(t){let n=await(0,e.createClient)(),{data:r,error:i}=await n.from(`orders`).select(`
5
5
  *,
6
6
  order_items (*)
7
- `).eq("id",l).single();if(d||!s)return console.error(`Error fetching order ${l}:`,d),null;const t=s;let n=null;if(t.user_id){const{data:e}=await i.from("profiles").select("*").eq("id",t.user_id).single();n=e}const o=t.order_items.map(e=>e.product_id).filter(Boolean),u=new Map;if(o.length>0){const{data:e}=await i.from("products").select("id, title, slug, product_media(media(file_path))").in("id",o);e&&e.forEach(r=>{let c=null;r.product_media&&r.product_media.length>0&&r.product_media[0].media&&(c=r.product_media[0].media.file_path),u.set(r.id,{title:r.title,slug:r.slug,image_url:c})})}const f=t.order_items.map(e=>({...e,product:e.product_id?u.get(e.product_id):null}));return{...t,order_items:f,customer:n}}exports.getOrderDetails=E;exports.getOrders=h;
7
+ `).eq(`id`,t).single();if(i||!r)return console.error(`Error fetching order ${t}:`,i),null;let a=r,o=null;if(a.user_id){let{data:e}=await n.from(`profiles`).select(`*`).eq(`id`,a.user_id).single();o=e}let s=a.order_items.map(e=>e.product_id).filter(Boolean),c=new Map;if(s.length>0){let{data:e}=await n.from(`products`).select(`id, title, slug, product_media(media(file_path))`).in(`id`,s);e&&e.forEach(e=>{let t=null;e.product_media&&e.product_media.length>0&&e.product_media[0].media&&(t=e.product_media[0].media.file_path),c.set(e.id,{title:e.title,slug:e.slug,image_url:t})})}let l=a.order_items.map(e=>({...e,product:e.product_id?c.get(e.product_id):null}));return{...a,order_items:l,customer:o}}exports.getOrderDetails=r,exports.getOrders=n;