sme-pos-package 1.0.13 → 1.0.15

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 (314) hide show
  1. package/dist/index.d.mts +1 -1
  2. package/dist/index.mjs +1 -0
  3. package/package.json +4 -1
  4. package/dist/index.css.map +0 -1
  5. package/dist/index.mjs.map +0 -1
  6. package/dist/tailwind.preset.mjs.map +0 -1
  7. package/public/assets/images/bank-logos.png +0 -0
  8. package/public/assets/images/banner1.png +0 -0
  9. package/public/assets/images/banner2.png +0 -0
  10. package/public/assets/images/banner3.png +0 -0
  11. package/public/assets/images/banner4.png +0 -0
  12. package/public/assets/images/cashier.svg +0 -9
  13. package/public/assets/images/empty-cart.png +0 -0
  14. package/public/assets/images/empty-table-state.png +0 -0
  15. package/public/assets/images/layout-display/left-layout.png +0 -0
  16. package/public/assets/images/layout-display/right-layout.png +0 -0
  17. package/public/assets/images/modal-illustration.png +0 -0
  18. package/public/assets/images/order-empty-state.png +0 -0
  19. package/public/assets/images/order.png +0 -0
  20. package/public/assets/images/payment-success-label.png +0 -0
  21. package/public/assets/images/table-empty.png +0 -0
  22. package/public/assets/images/take-away.png +0 -0
  23. package/public/assets/lottie/loading.json +0 -1
  24. package/public/assets/lottie/soft_pos.json +0 -1
  25. package/public/assets/lottie/success.json +0 -1
  26. package/public/config.json +0 -27
  27. package/public/env.json +0 -17
  28. package/src/animations/success.json +0 -9730
  29. package/src/assets/icons/breadcrumbs-icon.tsx +0 -85
  30. package/src/assets/icons/cart-icon.tsx +0 -14
  31. package/src/assets/icons/common.tsx +0 -270
  32. package/src/assets/icons/customer-view-icon.tsx +0 -20
  33. package/src/assets/icons/dining-table.tsx +0 -34
  34. package/src/assets/icons/edit-line-icon.tsx +0 -18
  35. package/src/assets/icons/emenu-icon.tsx +0 -39
  36. package/src/assets/icons/file-close-line-icon.tsx +0 -18
  37. package/src/assets/icons/helper-icon.tsx +0 -84
  38. package/src/assets/icons/home-gear-line-icon.tsx +0 -18
  39. package/src/assets/icons/kanban-icon.tsx +0 -16
  40. package/src/assets/icons/loading-icon.tsx +0 -45
  41. package/src/assets/icons/logout-box-line-icon.tsx +0 -18
  42. package/src/assets/icons/order-icon.tsx +0 -92
  43. package/src/assets/icons/payment-icon.tsx +0 -429
  44. package/src/assets/icons/pincode.tsx +0 -196
  45. package/src/assets/icons/pos-connect-icon.tsx +0 -67
  46. package/src/assets/icons/pos-device-icon.tsx +0 -52
  47. package/src/assets/icons/pos-icon.tsx +0 -75
  48. package/src/assets/icons/printer-line-icon.tsx +0 -18
  49. package/src/assets/icons/star-icon.tsx +0 -174
  50. package/src/assets/icons/table-icon.tsx +0 -77
  51. package/src/assets/icons/user-add-line-icon.tsx +0 -33
  52. package/src/assets/icons/user-icon.tsx +0 -65
  53. package/src/components/common/button-action.tsx +0 -46
  54. package/src/components/common/button-icon.tsx +0 -23
  55. package/src/components/common/dropdown/index.tsx +0 -79
  56. package/src/components/common/empty-state.tsx +0 -60
  57. package/src/components/common/header/index.tsx +0 -89
  58. package/src/components/common/header/tabs.tsx +0 -119
  59. package/src/components/common/image.tsx +0 -20
  60. package/src/components/common/input/index.tsx +0 -55
  61. package/src/components/common/input/radio-group.tsx +0 -75
  62. package/src/components/common/input/text-area.tsx +0 -28
  63. package/src/components/common/modal/delete-confirm-modal-container.tsx +0 -65
  64. package/src/components/common/modal/index.ts +0 -2
  65. package/src/components/common/modal/modal-direction.tsx +0 -125
  66. package/src/components/common/modal/modal-header.tsx +0 -37
  67. package/src/components/common/modal/modal-wrapper.tsx +0 -56
  68. package/src/components/common/modal/modal-zoom.tsx +0 -61
  69. package/src/components/common/pagination.tsx +0 -95
  70. package/src/components/common/refresh-button.tsx +0 -28
  71. package/src/components/common/search-bar.tsx +0 -27
  72. package/src/components/common/search.tsx +0 -59
  73. package/src/components/common/skeleton.tsx +0 -7
  74. package/src/components/common/tabs-layout.tsx +0 -98
  75. package/src/components/common/use-check-session.tsx +0 -19
  76. package/src/components/customer-management/add-customer/add-customer-drawer.tsx +0 -286
  77. package/src/components/customer-management/add-customer/address-select.tsx +0 -51
  78. package/src/components/customer-management/choose-customer-drawer.tsx +0 -177
  79. package/src/components/customer-management/customer-info-drawer.tsx +0 -166
  80. package/src/components/customer-management/customer-no-data.tsx +0 -18
  81. package/src/components/emenu/emenu-qr-code.tsx +0 -59
  82. package/src/components/emenu/menu-link.tsx +0 -67
  83. package/src/components/index.ts +0 -8
  84. package/src/components/kanban-template/kitchen-template.tsx +0 -60
  85. package/src/components/kanban-template/pos-order-template.tsx +0 -77
  86. package/src/components/kanban-template/pos-template.tsx +0 -170
  87. package/src/components/kitchen-management/change-status-confirm-modal.tsx +0 -61
  88. package/src/components/kitchen-management/index.ts +0 -1
  89. package/src/components/kitchen-management/kitchen-order/index.tsx +0 -153
  90. package/src/components/kitchen-management/kitchen-order/line.tsx +0 -78
  91. package/src/components/kitchen-management/kitchen-order/state.tsx +0 -52
  92. package/src/components/kitchen-management/kitchen-status.tsx +0 -69
  93. package/src/components/kitchen-management/orders-kitchen-management.tsx +0 -113
  94. package/src/components/order-management/index.tsx +0 -128
  95. package/src/components/order-management/order-actions.tsx +0 -46
  96. package/src/components/order-management/order-detail/header.tsx +0 -37
  97. package/src/components/order-management/order-detail/index.ts +0 -3
  98. package/src/components/order-management/order-detail/information.tsx +0 -96
  99. package/src/components/order-management/order-detail/order-detail.tsx +0 -84
  100. package/src/components/order-management/order-detail/order-line.tsx +0 -56
  101. package/src/components/order-management/order-detail/summary.tsx +0 -221
  102. package/src/components/order-management/order-header.tsx +0 -113
  103. package/src/components/order-management/order-pagination.tsx +0 -49
  104. package/src/components/order-management/order-status.tsx +0 -58
  105. package/src/components/order-management/order-table.tsx +0 -179
  106. package/src/components/order-management/order-tabs.tsx +0 -48
  107. package/src/components/pos-management/add-product-from-barcode/index.tsx +0 -97
  108. package/src/components/pos-management/cart-content/action-line.tsx +0 -81
  109. package/src/components/pos-management/cart-content/cancel-order-line-modal.tsx +0 -41
  110. package/src/components/pos-management/cart-content/cart-item.tsx +0 -173
  111. package/src/components/pos-management/cart-content/cart-items.tsx +0 -130
  112. package/src/components/pos-management/cart-content/draft-orders/draft-order-line.tsx +0 -67
  113. package/src/components/pos-management/cart-content/draft-orders/index.tsx +0 -40
  114. package/src/components/pos-management/cart-content/edit-cart-modal.tsx +0 -11
  115. package/src/components/pos-management/cart-content/index.tsx +0 -260
  116. package/src/components/pos-management/cart-content/no-select-order.tsx +0 -26
  117. package/src/components/pos-management/cart-content/order-info/customer-info.tsx +0 -53
  118. package/src/components/pos-management/cart-content/order-info/index.tsx +0 -109
  119. package/src/components/pos-management/cart-content/order-total.tsx +0 -36
  120. package/src/components/pos-management/cart-content/orders-line.tsx +0 -72
  121. package/src/components/pos-management/menu-content/category-tab.tsx +0 -38
  122. package/src/components/pos-management/menu-content/create-order-modal.tsx +0 -65
  123. package/src/components/pos-management/menu-content/product-content.tsx +0 -93
  124. package/src/components/pos-management/menu-content/product-detail/info.tsx +0 -28
  125. package/src/components/pos-management/menu-content/product-detail/modal.tsx +0 -148
  126. package/src/components/pos-management/menu-content/product-detail/option.tsx +0 -87
  127. package/src/components/pos-management/menu-content/product-detail/quantity-control.tsx +0 -155
  128. package/src/components/pos-management/menu-content/product-detail/sale-keypad.tsx +0 -100
  129. package/src/components/pos-management/menu-content/product-item.tsx +0 -65
  130. package/src/components/pos-management/order-helper/cancel-order-confirm.tsx +0 -43
  131. package/src/components/pos-management/order-helper/history-call.tsx +0 -105
  132. package/src/components/pos-management/order-helper/order-helper-modal.tsx +0 -116
  133. package/src/components/pos-management/payment-content/bill/actions.tsx +0 -46
  134. package/src/components/pos-management/payment-content/bill/content.tsx +0 -207
  135. package/src/components/pos-management/payment-content/bill/index.tsx +0 -18
  136. package/src/components/pos-management/payment-content/card-payment/index.tsx +0 -124
  137. package/src/components/pos-management/payment-content/card-payment/pos-payment/pos-connect.tsx +0 -183
  138. package/src/components/pos-management/payment-content/card-payment/pos-payment/qr-connect.tsx +0 -185
  139. package/src/components/pos-management/payment-content/card-payment/waiting-for-payment-pos-modal.tsx +0 -37
  140. package/src/components/pos-management/payment-content/cash-payment/index.tsx +0 -216
  141. package/src/components/pos-management/payment-content/index.tsx +0 -70
  142. package/src/components/pos-management/payment-content/payment-info.tsx +0 -67
  143. package/src/components/pos-management/payment-content/payment-layout.tsx +0 -16
  144. package/src/components/pos-management/payment-content/payment-method-cards.tsx +0 -99
  145. package/src/components/pos-management/payment-content/qr-payment/index.tsx +0 -118
  146. package/src/components/pos-management/payment-content/qr-payment/qr_code.js +0 -29
  147. package/src/components/pos-management/payment-content/qr-payment/vietqr.js +0 -436
  148. package/src/components/pos-management/payment-content/session-close-modal.tsx +0 -35
  149. package/src/components/pos-management/payment-content/soft-pos-payment/index.tsx +0 -48
  150. package/src/components/pos-management/pos-helpers/back-confirm.tsx +0 -45
  151. package/src/components/pos-management/pos-helpers/index.tsx +0 -135
  152. package/src/components/pos-management/pos-helpers/layout-display-modal.tsx +0 -99
  153. package/src/components/pos-management/search.tsx +0 -48
  154. package/src/components/pos-management/table-content/filtered-tables.tsx +0 -59
  155. package/src/components/pos-management/table-content/floor-tabs.tsx +0 -65
  156. package/src/components/pos-management/table-content/index.tsx +0 -76
  157. package/src/components/pos-management/table-content/table-item.tsx +0 -127
  158. package/src/components/pos-management/table-content/tables.tsx +0 -96
  159. package/src/components/restaurant-management/add-floor-modal.tsx +0 -133
  160. package/src/components/restaurant-management/add-table-modal.tsx +0 -198
  161. package/src/components/restaurant-management/delete-floor-confirm-modal.tsx +0 -42
  162. package/src/components/restaurant-management/delete-table-confirm-modal.tsx +0 -51
  163. package/src/components/restaurant-management/header.tsx +0 -22
  164. package/src/components/restaurant-management/index.tsx +0 -54
  165. package/src/components/restaurant-management/left-side.tsx +0 -51
  166. package/src/components/restaurant-management/right-side.tsx +0 -179
  167. package/src/components/restaurant-management/table-empty.tsx +0 -43
  168. package/src/components/session-management/close-session-modal/actions.tsx +0 -45
  169. package/src/components/session-management/close-session-modal/close-session-confirm.tsx +0 -157
  170. package/src/components/session-management/close-session-modal/close-session-ticket.tsx +0 -218
  171. package/src/components/session-management/close-session-modal/container.tsx +0 -25
  172. package/src/components/session-management/close-session-modal/draft-orders-confirm.tsx +0 -53
  173. package/src/components/session-management/close-session-modal/draft-orders-summary.tsx +0 -82
  174. package/src/components/session-management/close-session-modal/draft-orders.tsx +0 -34
  175. package/src/components/session-management/close-session-modal/index.tsx +0 -35
  176. package/src/components/session-management/close-session-modal/order/index.ts +0 -1
  177. package/src/components/session-management/close-session-modal/order/order-line.tsx +0 -64
  178. package/src/components/session-management/close-session-modal/order/orders-in-draft.tsx +0 -31
  179. package/src/components/session-management/close-session-modal/session-summary.tsx +0 -165
  180. package/src/components/session-management/index.ts +0 -1
  181. package/src/components/session-management/open-shift/index.tsx +0 -172
  182. package/src/components/table-management/index.tsx +0 -0
  183. package/src/constants/api/index.ts +0 -1
  184. package/src/constants/headers.constant.tsx +0 -24
  185. package/src/constants/index.ts +0 -1
  186. package/src/constants/language.store.ts +0 -21
  187. package/src/constants/methods.constant.ts +0 -10
  188. package/src/constants/order-state.ts +0 -8
  189. package/src/constants/payment-color.constant.ts +0 -26
  190. package/src/constants/query.constant.ts +0 -14
  191. package/src/constants/routes.constants.ts +0 -23
  192. package/src/constants/template-name.constant.ts +0 -9
  193. package/src/hooks/bill/use-get-bill-information.ts +0 -49
  194. package/src/hooks/bill/use-print-bill.tsx +0 -0
  195. package/src/hooks/common/load-env-config.ts +0 -98
  196. package/src/hooks/common/use-back.ts +0 -13
  197. package/src/hooks/common/use-broadcast.ts +0 -22
  198. package/src/hooks/common/use-click-outside.ts +0 -58
  199. package/src/hooks/common/use-get-base64-photo.ts +0 -71
  200. package/src/hooks/common/use-get-query.ts +0 -25
  201. package/src/hooks/common/use-pos.ts +0 -21
  202. package/src/hooks/common/use-query-params.ts +0 -89
  203. package/src/hooks/common/use-speech.ts +0 -36
  204. package/src/hooks/customer/use-customer-provider.ts +0 -247
  205. package/src/hooks/floor/use-floor-provider.ts +0 -172
  206. package/src/hooks/kitchen/use-kitchen-provider.ts +0 -80
  207. package/src/hooks/order/use-get-point-reward.ts +0 -50
  208. package/src/hooks/order/use-loop-fetch-order.ts +0 -30
  209. package/src/hooks/order/use-order-items.ts +0 -61
  210. package/src/hooks/order/use-orders.ts +0 -76
  211. package/src/hooks/payment/use-payment-provider.ts +0 -221
  212. package/src/hooks/product/use-product-provider.ts +0 -87
  213. package/src/hooks/session/use-check-session.tsx +0 -19
  214. package/src/hooks/session/use-session-provider.ts +0 -79
  215. package/src/hooks/table/use-pos-table-provider.ts +0 -193
  216. package/src/index.css +0 -5
  217. package/src/index.ts +0 -10
  218. package/src/layouts/common.tsx +0 -15
  219. package/src/layouts/index.ts +0 -4
  220. package/src/layouts/pos-layout.tsx +0 -33
  221. package/src/layouts/pos-order-layout.tsx +0 -43
  222. package/src/layouts/sale-layout.tsx +0 -25
  223. package/src/locales/en.json +0 -394
  224. package/src/locales/vi.json +0 -400
  225. package/src/pages/index.ts +0 -4
  226. package/src/pages/login/index.tsx +0 -128
  227. package/src/pages/pincode/index.tsx +0 -198
  228. package/src/pages/pos/kitchen-management/layout.tsx +0 -18
  229. package/src/pages/pos/management-floor/index.tsx +0 -7
  230. package/src/pages/pos/management-order/index.tsx +0 -7
  231. package/src/pages/pos/management-order/order-detail/index.tsx +0 -7
  232. package/src/pages/pos/management-table/index.tsx +0 -0
  233. package/src/pages/pos/payment-success/index.tsx +0 -75
  234. package/src/provider/app-provider.tsx +0 -56
  235. package/src/provider/fallback/custom-error.tsx +0 -26
  236. package/src/provider/main-provider.tsx +0 -41
  237. package/src/provider/meta-provider.tsx +0 -72
  238. package/src/provider/modal-provider.tsx +0 -48
  239. package/src/provider/notification-provider.tsx +0 -64
  240. package/src/provider/pos-provider/close-session-provider/index.tsx +0 -207
  241. package/src/provider/pos-provider/customer-provider/index.tsx +0 -30
  242. package/src/provider/pos-provider/floor-provider/index.tsx +0 -39
  243. package/src/provider/pos-provider/index.ts +0 -6
  244. package/src/provider/pos-provider/kitchen-provider/index.tsx +0 -30
  245. package/src/provider/pos-provider/order-detail-provider/index.tsx +0 -233
  246. package/src/provider/pos-provider/order-provider/index.tsx +0 -803
  247. package/src/provider/pos-provider/payment-provider/index.tsx +0 -30
  248. package/src/provider/pos-provider/product-provider/index.tsx +0 -30
  249. package/src/provider/pos-provider/sale-provider/index.tsx +0 -168
  250. package/src/provider/pos-provider/session-provider/index.tsx +0 -30
  251. package/src/provider/pos-provider/socket-provider/index.tsx +0 -118
  252. package/src/provider/pos-provider/table-provider/index.tsx +0 -30
  253. package/src/provider/public-provider.tsx +0 -104
  254. package/src/provider/use-session-provider.ts +0 -79
  255. package/src/router/app-router.tsx +0 -38
  256. package/src/router/index.tsx +0 -26
  257. package/src/router/pos-route.tsx +0 -75
  258. package/src/router/protected-route.tsx +0 -16
  259. package/src/router/public-route.tsx +0 -11
  260. package/src/store/header/index.ts +0 -21
  261. package/src/store/session/index.ts +0 -25
  262. package/src/store/states/cart.state.ts +0 -135
  263. package/src/store/states/close-session.state.ts +0 -20
  264. package/src/store/states/customer.state.ts +0 -19
  265. package/src/store/states/payment.state.ts +0 -14
  266. package/src/styles/base.css +0 -212
  267. package/src/styles/common.css +0 -65
  268. package/src/styles/lib/tailwind.css +0 -0
  269. package/src/styles/lib/tailwind.theme.css +0 -34
  270. package/src/styles/loading.css +0 -72
  271. package/src/styles/main.css +0 -5
  272. package/src/styles/refreshing-content.css +0 -55
  273. package/src/styles/text.css +0 -44
  274. package/src/types/account.ts +0 -61
  275. package/src/types/branch.ts +0 -6
  276. package/src/types/category.ts +0 -13
  277. package/src/types/common.ts +0 -4
  278. package/src/types/customer.ts +0 -52
  279. package/src/types/dashboard.ts +0 -18
  280. package/src/types/edc.ts +0 -37
  281. package/src/types/export-e-invoice.ts +0 -17
  282. package/src/types/filter.d.ts +0 -12
  283. package/src/types/floor/floor.ts +0 -16
  284. package/src/types/floor.d.ts +0 -36
  285. package/src/types/index.ts +0 -127
  286. package/src/types/invoice.ts +0 -32
  287. package/src/types/modal.ts +0 -15
  288. package/src/types/notification.ts +0 -12
  289. package/src/types/order.ts +0 -182
  290. package/src/types/payment.ts +0 -44
  291. package/src/types/product/product.ts +0 -47
  292. package/src/types/product.ts +0 -137
  293. package/src/types/provider-info.d.ts +0 -14
  294. package/src/types/qr.d.ts +0 -25
  295. package/src/types/report.d.ts +0 -43
  296. package/src/types/sale.d.ts +0 -68
  297. package/src/types/search.d.ts +0 -7
  298. package/src/types/session.d.ts +0 -30
  299. package/src/types/shop-qr.d.ts +0 -89
  300. package/src/types/staff.d.ts +0 -35
  301. package/src/types/store.d.ts +0 -25
  302. package/src/types/table.d.ts +0 -57
  303. package/src/utils/close-session-ticket.tsx +0 -129
  304. package/src/utils/functions.ts +0 -299
  305. package/src/utils/i18n.ts +0 -25
  306. package/src/utils/pos/bill.ts +0 -156
  307. package/src/utils/pos/convert-order.ts +0 -58
  308. package/src/utils/pos/helpers.ts +0 -48
  309. package/src/utils/pos/session.ts +0 -44
  310. package/src/utils/storages/index.ts +0 -1
  311. package/src/utils/storages/local-storage.ts +0 -72
  312. package/tailwind.preset.ts +0 -25
  313. package/tsconfig.json +0 -30
  314. package/tsup.config.ts +0 -30
@@ -1,30 +0,0 @@
1
- import usePaymentProvider, {
2
- usePaymentProviderType,
3
- } from "@hooks/payment/use-payment-provider"
4
- import { createContext, useContext } from "react"
5
-
6
- const ReactContext = createContext<usePaymentProviderType>(
7
- {} as usePaymentProviderType
8
- )
9
-
10
- export const PaymentProvider = ({
11
- children,
12
- }: {
13
- children: React.ReactNode
14
- }) => {
15
- return (
16
- <ReactContext.Provider value={usePaymentProvider()}>
17
- {children}
18
- </ReactContext.Provider>
19
- )
20
- }
21
-
22
- export const usePayment = () => {
23
- const context = useContext(ReactContext)
24
-
25
- if (!context) {
26
- throw new Error("usePayment must be used within a PaymentProvider")
27
- }
28
-
29
- return context
30
- }
@@ -1,30 +0,0 @@
1
- import useProductProvider, {
2
- useProductProviderType,
3
- } from "@hooks/product/use-product-provider"
4
- import { createContext, useContext } from "react"
5
-
6
- const ReactContext = createContext<useProductProviderType>(
7
- {} as useProductProviderType
8
- )
9
-
10
- export const ProductProvider = ({
11
- children,
12
- }: {
13
- children: React.ReactNode
14
- }) => {
15
- return (
16
- <ReactContext.Provider value={useProductProvider()}>
17
- {children}
18
- </ReactContext.Provider>
19
- )
20
- }
21
-
22
- export const useProduct = () => {
23
- const context = useContext(ReactContext)
24
-
25
- if (!context) {
26
- throw new Error("useProduct must be used within a ProductProvider")
27
- }
28
-
29
- return context
30
- }
@@ -1,168 +0,0 @@
1
- import { QUERY_KEYS } from "@constants/query.constant";
2
- import { useService } from "@fctc/widget-logic/provider";
3
- import { sessionStorageUtils } from "@fctc/widget-logic/utils";
4
- import { usePosAppProvider } from "@provider/app-provider";
5
- import { useQuery } from "@tanstack/react-query";
6
- import { createContext, useContext } from "react";
7
-
8
- import { useCallback } from "react";
9
- import { useSearchParams } from "react-router-dom";
10
-
11
- export enum LoadDataModel {
12
- ACCOUNT_CASH_ROUNDING = "account.cash.rounding",
13
- ACCOUNT_FISCAL_POSITION = "account.fiscal.position",
14
- ACCOUNT_FISCAL_POSITION_TAX = "account.fiscal.position.tax",
15
- ACCOUNT_TAX = "account.tax",
16
- ACCOUNT_TAX_GROUP = "account.tax.group",
17
- DECIMAL_PRECISION = "decimal.precision",
18
- IR_MODULE_MODULE = "ir.module.module",
19
- IR_UI_VIEW = "ir.ui.view",
20
- POS_BILL = "pos.bill",
21
- POS_CATEGORY = "pos.category",
22
- POS_CONFIG = "pos.config",
23
- POS_NOTE = "pos.note",
24
- POS_ORDER = "pos.order",
25
- POS_ORDER_LINE = "pos.order.line",
26
- POS_PACK_OPERATION_LOT = "pos.pack.operation.lot",
27
- POS_PAYMENT = "pos.payment",
28
- POS_PAYMENT_METHOD = "pos.payment.method",
29
- POS_PRINTER = "pos.printer",
30
- POS_SESSION = "pos.session",
31
- POS_PREPARATION_DISPLAY_DISPLAY = "pos_preparation_display.display",
32
- PRODUCT_ATTRIBUTE = "product.attribute",
33
- PRODUCT_ATTRIBUTE_CUSTOM_VALUE = "product.attribute.custom.value",
34
- PRODUCT_CATEGORY = "product.category",
35
- PRODUCT_COMBO = "product.combo",
36
- PRODUCT_COMBO_ITEM = "product.combo.item",
37
- PRODUCT_PACKAGING = "product.packaging",
38
- PRODUCT_PRICELIST = "product.pricelist",
39
- PRODUCT_PRICELIST_ITEM = "product.pricelist.item",
40
- PRODUCT_PRODUCT = "product.product",
41
- PRODUCT_TAG = "product.tag",
42
- PRODUCT_TEMPLATE_ATTRIBUTE_LINE = "product.template.attribute.line",
43
- PRODUCT_TEMPLATE_ATTRIBUTE_VALUE = "product.template.attribute.value",
44
- RES_COMPANY = "res.company",
45
- RES_COUNTRY = "res.country",
46
- RES_COUNTRY_STATE = "res.country.state",
47
- RES_CURRENCY = "res.currency",
48
- RES_LANG = "res.lang",
49
- RES_PARTNER = "res.partner",
50
- RES_USERS = "res.users",
51
- STOCK_PICKING_TYPE = "stock.picking.type",
52
- UOM_CATEGORY = "uom.category",
53
- UOM_UOM = "uom.uom",
54
- LOYALTY_PROGRAM = "loyalty.program",
55
- LOYALTY_RULE = "loyalty.rule",
56
- RESTAURANT_TABLE = "restaurant.table",
57
- RESTAURANT_FLOOR = "restaurant.floor",
58
- POS_MAKE_PAYMENT = "pos.make.payment",
59
- }
60
-
61
- const useGetLoadPosSession = (enabled = true) => {
62
- const { useLoadDataPosSession } = useService();
63
- const loadDataPosSessionMutation = useLoadDataPosSession().mutateAsync;
64
- const { user } = usePosAppProvider();
65
- const xNode = user?.userProfile?.data?.x_node;
66
- const service = sessionStorageUtils.getMenuFocus().service || `wesap`;
67
- const [searchParams] = useSearchParams();
68
- const sessionId = searchParams.get(QUERY_KEYS.SESSION_ID);
69
-
70
- const queryResult = useQuery<any>({
71
- queryKey: ["get-load-pos-session", service, xNode, sessionId],
72
- queryFn: () => {
73
- return loadDataPosSessionMutation({
74
- model: LoadDataModel.POS_SESSION,
75
- ids: [sessionId],
76
- service: service ?? "",
77
- xNode: xNode ?? "",
78
- });
79
- },
80
- enabled: enabled && !!service && !!xNode && !!sessionId,
81
- });
82
- const { data, isLoading } = queryResult;
83
-
84
- const getSpec = useCallback(
85
- (model: LoadDataModel) => {
86
- if (!data || isLoading) return undefined;
87
-
88
- const { fields, relations } = data[model] ?? {};
89
-
90
- let spec: Record<string, any> = {};
91
-
92
- if (fields?.length) {
93
- spec = Object.fromEntries(fields.map((key: string) => [key, {}]));
94
- } else if (relations) {
95
- spec = Object.fromEntries(
96
- Object.keys(relations).map((key) => [key, {}])
97
- );
98
- }
99
-
100
- if ("payment_ids" in spec) {
101
- spec["payment_ids"] = {
102
- fields: {
103
- currency_id: {
104
- fields: {
105
- id: {},
106
- display_name: {},
107
- },
108
- },
109
- payment_date: {},
110
- payment_method_id: {
111
- fields: {
112
- id: {},
113
- display_name: {},
114
- },
115
- },
116
- amount: {},
117
- payment_method_payment_mode: {},
118
- card_no: {},
119
- card_brand: {},
120
- cardholder_name: {},
121
- },
122
- };
123
- }
124
-
125
- return spec;
126
- },
127
- [data, isLoading]
128
- );
129
-
130
- const getData = useCallback(
131
- (model: LoadDataModel) => {
132
- if (!data || isLoading) return undefined;
133
- return (data[model]?.data ?? {}) as Record<string, any>;
134
- },
135
- [data, isLoading]
136
- );
137
-
138
- const isModePosRestaurant = getData(LoadDataModel.POS_CONFIG)?.[0]
139
- ?.module_pos_restaurant;
140
-
141
- return { queryResult, getSpec, getData, isModePosRestaurant };
142
- };
143
-
144
- export default useGetLoadPosSession;
145
-
146
- export type useGetLoadPosSessionType = ReturnType<typeof useGetLoadPosSession>;
147
-
148
- const ReactContext = createContext<useGetLoadPosSessionType>(
149
- {} as useGetLoadPosSessionType
150
- );
151
-
152
- export const SaleProvider = ({ children }: { children: React.ReactNode }) => {
153
- return (
154
- <ReactContext.Provider value={useGetLoadPosSession()}>
155
- {children}
156
- </ReactContext.Provider>
157
- );
158
- };
159
-
160
- export const useSale = () => {
161
- const context = useContext(ReactContext);
162
-
163
- if (!context) {
164
- throw new Error("useSale must be used within a SaleProvider");
165
- }
166
-
167
- return context;
168
- };
@@ -1,30 +0,0 @@
1
- import useSessionProvider, {
2
- useSessionProviderType,
3
- } from "@hooks/session/use-session-provider"
4
- import { createContext, useContext } from "react"
5
-
6
- const ReactContext = createContext<useSessionProviderType>(
7
- {} as useSessionProviderType
8
- )
9
-
10
- export const SessionProvider = ({
11
- children,
12
- }: {
13
- children: React.ReactNode
14
- }) => {
15
- return (
16
- <ReactContext.Provider value={useSessionProvider()}>
17
- {children}
18
- </ReactContext.Provider>
19
- )
20
- }
21
-
22
- export const useSession = () => {
23
- const context = useContext(ReactContext)
24
-
25
- if (!context) {
26
- throw new Error("useSession must be used within a SessionProvider")
27
- }
28
-
29
- return context
30
- }
@@ -1,118 +0,0 @@
1
- import { QUERY_KEYS } from "@constants/query.constant";
2
- import { useQueryParams } from "@hooks/common/use-query-params";
3
- import { usePosAppProvider } from "@provider/app-provider";
4
- import mqtt from "mqtt";
5
- import { createContext, useContext, useState } from "react";
6
-
7
- const useSocket = () => {
8
- const [clientMtqq, setClientMtqq] = useState<any>();
9
- const { user } = usePosAppProvider();
10
-
11
- const { getQuery } = useQueryParams();
12
- const posId = getQuery(QUERY_KEYS.POS_ID);
13
- const dataUser = user?.userProfile?.data;
14
-
15
- const onConnect = (topicName: string | string[]) => {
16
- console.log("🔌 Trying to connect to MQTT...");
17
- const options = {
18
- clientId: [dataUser?.company.cif, "web", `serialNumber${posId}`].join(
19
- "-"
20
- ),
21
- reconnectPeriod: 3000,
22
- keepalive: 20,
23
- clean: false,
24
- };
25
- const client = mqtt.connect("wss://sme-socket-dev.atomsolution.vn", {
26
- path: "/mqtt",
27
- ...options,
28
- });
29
- client.on("connect", () => {
30
- if (!topicName || topicName?.length === 0) return;
31
- client.subscribe(topicName, (err) => {
32
- if (err) {
33
- console.error("❌ Subscribe error:", err);
34
- } else {
35
- console.log("📡 Subscribed successfully!", client);
36
- }
37
- });
38
- });
39
-
40
- client.on("error", (err) => {
41
- console.error("❌ MQTT Error:", err);
42
- });
43
-
44
- client.on("reconnect", () => {
45
- console.log("♻️ Reconnecting to MQTT...");
46
- });
47
-
48
- setClientMtqq(client);
49
- };
50
-
51
- const onDisconnect = () => {
52
- clientMtqq?.end(true);
53
- setClientMtqq(undefined);
54
- };
55
-
56
- const onPublish = (topic: string, payload: string) => {
57
- clientMtqq?.publish(topic, payload);
58
- // if (clientMtqq) console.log("send", topic, payload);
59
- };
60
-
61
- const onSubscribe = (topic: string | string[]) => {
62
- clientMtqq.on("connect", () => {
63
- clientMtqq.subscribe(topic, (err: any) => {
64
- if (err) {
65
- console.error("❌ Subscribe error:", err);
66
- } else {
67
- console.log("📡 Subscribed successfully!", clientMtqq);
68
- }
69
- });
70
- });
71
- };
72
-
73
- return { clientMtqq, onDisconnect, onPublish, onConnect, onSubscribe };
74
- };
75
-
76
- export type useSocketType = ReturnType<typeof useSocket>;
77
-
78
- const ReactContext = createContext<useSocketType>({} as useSocketType);
79
-
80
- const SocketProvider = ({ children }: { children: React.ReactNode }) => {
81
- return (
82
- <ReactContext.Provider value={useSocket()}>
83
- {children}
84
- </ReactContext.Provider>
85
- );
86
- };
87
-
88
- export default SocketProvider;
89
-
90
- export const useSocketData = () => {
91
- const context = useContext(ReactContext);
92
-
93
- if (!context) {
94
- throw new Error("useSocketData must be used within a ");
95
- }
96
-
97
- return context;
98
- };
99
-
100
- export function convertMessage(str: string) {
101
- try {
102
- let obj = JSON.parse(str);
103
-
104
- if (typeof obj === "string") {
105
- obj = JSON.parse(obj);
106
- }
107
-
108
- const type = obj?.type?.split("-")?.pop();
109
-
110
- return {
111
- type,
112
- sound: obj?.payload?.sound ?? false,
113
- };
114
- } catch (e) {
115
- console.error("❌ Invalid JSON", e);
116
- return undefined;
117
- }
118
- }
@@ -1,30 +0,0 @@
1
- import usePosTableProvider, {
2
- usePosTableProviderType,
3
- } from "@hooks/table/use-pos-table-provider"
4
- import { TTable } from "@type/table"
5
- import { createContext, useContext } from "react"
6
-
7
- const ReactContext = createContext<usePosTableProviderType>(
8
- {} as usePosTableProviderType
9
- )
10
-
11
- export const TableProvider = ({ children }: { children: React.ReactNode }) => {
12
- const queryResult = usePosTableProvider(true)
13
- return (
14
- <ReactContext.Provider value={queryResult}>
15
- {children}
16
- </ReactContext.Provider>
17
- )
18
- }
19
-
20
- export const usePosTable = () => {
21
- const context = useContext(ReactContext)
22
-
23
- if (!context) {
24
- throw new Error("usePosTable must be used within a TableProvider")
25
- }
26
-
27
- return context
28
- }
29
-
30
- export type TTableRes = TDataRes<TTable[]>
@@ -1,104 +0,0 @@
1
- import { useEnv } from "@fctc/widget-logic/provider";
2
- import { isObjectEmpty, sessionStorageUtils } from "@fctc/widget-logic/utils";
3
- import useHeaderStore from "@store/header";
4
- import { useEffect } from "react";
5
- import { usePosAppProvider } from "./app-provider";
6
- import { I18nProvider } from "@fctc/sme-widget-ui";
7
- import { ToastContainer } from "react-toastify";
8
-
9
- const PublicProvider = ({ children }: { children: React.ReactNode }) => {
10
- const { setupEnv, env, setEnvFile } = useEnv();
11
- const { user } = usePosAppProvider();
12
- const dataUser = user?.userProfile?.data;
13
- const service = sessionStorageUtils.getMenuFocus().service;
14
- const { selectedLang } = useHeaderStore();
15
-
16
- useEffect(() => {
17
- async function loadEnvAndConfig() {
18
- try {
19
- const envResponse = await fetch("/env.json");
20
- const envConfig = await envResponse.json();
21
- const configResponse = await fetch("/config.json");
22
- const config = await configResponse.json();
23
- console.log("config", config);
24
- setupEnv({
25
- baseUrl: envConfig.baseUrl,
26
- default_service: "mms",
27
- config: {
28
- grantType: envConfig.config?.grantType,
29
- clientId: window.location.hostname.includes("mms")
30
- ? envConfig.config?.mmsClientId
31
- : envConfig.config?.mpClientId,
32
- clientSecret: envConfig.config?.clientSecret,
33
- redirectUri: window.location.hostname.includes("mms")
34
- ? envConfig.config?.mmsRedirectUrl
35
- : envConfig.config?.mpRedirectUrl,
36
- websiteCode: window.location.hostname.includes("mms")
37
- ? envConfig.config?.websiteMmscode
38
- : envConfig.config?.websiteMpcode,
39
- },
40
- refreshTokenEndpoint: "/id/api/v2/token",
41
- xNode: service === "wesap" ? dataUser?.x_node : "",
42
- });
43
-
44
- setEnvFile(config);
45
-
46
- document.documentElement.style.setProperty(
47
- "--background-button",
48
- config?.VITE_BG_BUTTON
49
- );
50
- document.documentElement.style.setProperty(
51
- "--primary",
52
- config?.VITE_BG_BUTTON
53
- );
54
- document.documentElement.style.setProperty(
55
- "--background-page",
56
- config?.VITE_BACKGROUND_PAGE
57
- );
58
- document.documentElement.style.setProperty(
59
- "--text-color",
60
- config?.TEXT_COLOR
61
- );
62
- document.documentElement.style.setProperty(
63
- "--stroke-default",
64
- config?.STROKE_DEFAULT
65
- );
66
- document.documentElement.style.setProperty(
67
- "--selected-color",
68
- config?.SELECTED_COLOR
69
- );
70
- document.documentElement.style.setProperty(
71
- "--active-menu-bg-color",
72
- config?.SIDEBAR_ACTIVE_MENU_BACKGROUND
73
- );
74
- document.documentElement.style.setProperty(
75
- "--active-menu-text-color",
76
- config?.SIDEBAR_ACTIVE_MENU_TEXT
77
- );
78
- document.documentElement.style.setProperty(
79
- "--active-border-color",
80
- config?.BORDER_ACTIVE_COLOR
81
- );
82
- } catch (error) {
83
- console.error("Error loading env or config:", error);
84
- }
85
- }
86
-
87
- if (!env?.requests) {
88
- loadEnvAndConfig();
89
- }
90
- }, []);
91
-
92
- return (
93
- <I18nProvider lang={String(selectedLang?.value)}>
94
- <ToastContainer position="bottom-right" />
95
- {
96
- env?.requests &&
97
- !isObjectEmpty(env?.requests) &&
98
- env?.envFile &&
99
- children
100
- }
101
- </I18nProvider>
102
- );
103
- };
104
- export default PublicProvider;
@@ -1,79 +0,0 @@
1
- import { useService } from "@fctc/widget-logic/provider";
2
- import { sessionStorageUtils } from "@fctc/widget-logic/utils";
3
- import { useMutation } from "@tanstack/react-query";
4
- import { usePosAppProvider } from "./app-provider";
5
-
6
- const useSessionProvider = () => {
7
- const { useCreateSession, useHandleClosingSession, useCreatePosConfig } =
8
- useService();
9
-
10
- const createSessionMutation = useCreateSession().mutateAsync;
11
- const setOpeningCashBoxMutation = useHandleClosingSession().mutateAsync;
12
- const createPosConfigMutation = useCreatePosConfig().mutateAsync;
13
-
14
- const { user } = usePosAppProvider();
15
- const dataUser = user?.userProfile?.data;
16
- const service = sessionStorageUtils.getMenuFocus().service || `wesap`;
17
- const xNode = dataUser?.x_node || "";
18
-
19
- const openSession = useMutation({
20
- mutationFn: async (configId: number) => {
21
- return await createSessionMutation({
22
- configId,
23
- model: "pos.session",
24
- service,
25
- xNode,
26
- });
27
- },
28
- });
29
-
30
- const setOpeningCashBox = useMutation({
31
- mutationFn: ({
32
- cashBoxValue,
33
- sessionId,
34
- }: {
35
- cashBoxValue: number;
36
- sessionId: number;
37
- }) => {
38
- return setOpeningCashBoxMutation({
39
- model: "pos.session",
40
- ids: [Number(sessionId)],
41
- service,
42
- xNode,
43
- method: "set_opening_control",
44
- kwargs: {
45
- cashbox_value: cashBoxValue,
46
- notes: "Opening cashbox",
47
- },
48
- });
49
- },
50
- });
51
-
52
- const createPosConfig = useMutation({
53
- mutationFn: async ({
54
- name,
55
- modulePosRestaurant,
56
- }: {
57
- name: string;
58
- modulePosRestaurant: string;
59
- }) => {
60
- return await createPosConfigMutation({
61
- model: "pos.config",
62
- name,
63
- service,
64
- xNode,
65
- modulePosRestaurant,
66
- });
67
- },
68
- });
69
-
70
- return {
71
- openSession,
72
- setOpeningCashBox,
73
- createPosConfig,
74
- };
75
- };
76
-
77
- export default useSessionProvider;
78
-
79
- export type useSessionProviderType = ReturnType<typeof useSessionProvider>;
@@ -1,38 +0,0 @@
1
- import {
2
- EnvProvider,
3
- MainProvider,
4
- MetaProvider,
5
- ServiceProvider,
6
- } from "@fctc/widget-logic/provider";
7
- import CustomError from "@provider/fallback/custom-error";
8
- import { ModalProvider } from "@provider/modal-provider";
9
- import PublicProvider from "@provider/public-provider";
10
- import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
11
- import { AnimatePresence } from "framer-motion";
12
- import { ErrorBoundary } from "react-error-boundary";
13
-
14
- const queryClient = new QueryClient({});
15
- const AppProvider = ({ children }: { children: React.ReactNode }) => {
16
- return (
17
- <AnimatePresence mode="wait">
18
- {/* <Suspense fallback={<CustomSuspense />}> */}
19
- <ErrorBoundary fallback={<CustomError />}>
20
- <EnvProvider>
21
- <QueryClientProvider client={queryClient}>
22
- <MainProvider>
23
- <ServiceProvider>
24
- <MetaProvider>
25
- <ModalProvider>
26
- <PublicProvider>{children}</PublicProvider>
27
- </ModalProvider>
28
- </MetaProvider>
29
- </ServiceProvider>
30
- </MainProvider>
31
- </QueryClientProvider>
32
- </EnvProvider>
33
- </ErrorBoundary>
34
- {/* </Suspense> */}
35
- </AnimatePresence>
36
- );
37
- };
38
- export default AppProvider;
@@ -1,26 +0,0 @@
1
- import { ROUTES } from "@constants/routes.constants"
2
- import { LoginPage } from "@pages/login"
3
- import EnterPinCode from "@pages/pincode"
4
- import { Navigate, Route, Routes } from "react-router-dom"
5
- import POSRoutes from "./pos-route"
6
- import ProtectedRoute from "./protected-route"
7
- import PublicRoute from "./public-route"
8
-
9
- const AppRouter = () => {
10
- return (
11
- <Routes>
12
- <Route path="/" element={<Navigate to={ROUTES.pinCode} replace />} />
13
-
14
- <Route element={<PublicRoute />}>
15
- <Route path={ROUTES.login} element={<LoginPage />} />
16
- </Route>
17
-
18
- <Route element={<ProtectedRoute />}>
19
- <Route path={ROUTES.pinCode} element={<EnterPinCode />} />
20
- {POSRoutes()}
21
- </Route>
22
- </Routes>
23
- )
24
- }
25
-
26
- export default AppRouter