npm-pkg-hook 1.3.8 → 1.4.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 (394) hide show
  1. package/.babelrc +2 -10
  2. package/.env +5 -1
  3. package/dist/index.js +17953 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.mjs +17711 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/eslint.config.mjs +154 -0
  8. package/expire.json +1 -0
  9. package/index.d.ts +2 -0
  10. package/jest.config.ts +9 -0
  11. package/package.json +45 -36
  12. package/src/config/client/errors.ts +39 -0
  13. package/src/config/content/en.json +5 -0
  14. package/src/config/content/es.json +5 -0
  15. package/src/config/content/index.ts +16 -0
  16. package/src/hooks/addTenMinutes/index.ts +14 -0
  17. package/src/hooks/calculateLogLatHaversine/index.ts +41 -0
  18. package/src/hooks/completeSchedules/index.ts +22 -0
  19. package/src/hooks/convertToMilitaryTime/index.ts +18 -0
  20. package/src/hooks/generateStoreURL/index.ts +41 -0
  21. package/src/hooks/generateTemplate/index.ts +66 -0
  22. package/src/hooks/getCardType/index.ts +24 -0
  23. package/src/hooks/getCategoriesWithProduct/{index.js → index.ts} +7 -7
  24. package/src/hooks/getGlobalSession/index.ts +69 -0
  25. package/src/hooks/getSession/index.ts +72 -0
  26. package/src/hooks/getTodayTimestamps/index.ts +70 -0
  27. package/src/hooks/getTotalHours/index.ts +76 -0
  28. package/src/hooks/handleLogin/index.ts +14 -0
  29. package/src/hooks/index.ts +154 -0
  30. package/src/hooks/isTokenExpired/index.ts +17 -0
  31. package/src/hooks/newMessageSubscription/index.ts +28 -0
  32. package/src/hooks/newStoreOrderSubscription/index.ts +26 -0
  33. package/src/hooks/{useStatusOpenStore/helpers/index.js → statusOpenStores/helpers/index.ts} +24 -1
  34. package/src/hooks/statusOpenStores/index.ts +221 -0
  35. package/src/hooks/updateExtProductFoodsOptional/{index.js → index.ts} +15 -6
  36. package/src/hooks/useAcumulateDate/index.ts +18 -0
  37. package/src/hooks/useAllStoresPendingToRegister/index.ts +37 -0
  38. package/src/hooks/useAmountInput/index.ts +127 -0
  39. package/src/hooks/useAnimationText/{index.jsx → index.ts} +2 -2
  40. package/src/hooks/useAsideCart/index.ts +217 -0
  41. package/src/hooks/useBanner/{index.js → index.ts} +2 -1
  42. package/src/hooks/useCart/{queries.js → queries.ts} +11 -1
  43. package/src/hooks/useCart/useCart/helpers/{index.js → index.ts} +10 -6
  44. package/src/hooks/useCart/useCart/{index.js → index.ts} +58 -44
  45. package/src/hooks/useCart/useGetCart/{index.js → index.ts} +6 -3
  46. package/src/hooks/useCatWithProduct/{index.js → index.ts} +17 -7
  47. package/src/hooks/useCatWithProduct/{queries.js → queries.ts} +50 -23
  48. package/src/hooks/useCatWithProduct/types/index.ts +104 -0
  49. package/src/hooks/useCatWithProductClient/{index.js → index.ts} +19 -18
  50. package/src/hooks/useCatWithProductClient/{queries.js → queries.ts} +1 -0
  51. package/src/hooks/useCategoriesProduct/{index.js → index.ts} +3 -1
  52. package/src/hooks/useCategoriesProduct/{queries.js → queries.ts} +2 -2
  53. package/src/hooks/useCategoryInStore/index.ts +167 -0
  54. package/src/hooks/useCategoryInStore/{queries.js → queries.ts} +2 -2
  55. package/src/hooks/useCategoryStore/{index.js → index.ts} +4 -3
  56. package/src/hooks/useCategoryStore/{queries.js → queries.ts} +2 -2
  57. package/src/hooks/useChartData/{index.js → index.ts} +31 -34
  58. package/src/hooks/useChartData/useChartData/{index.js → index.ts} +31 -30
  59. package/src/hooks/useChartData/useChartDataAllOrders/{index.js → index.ts} +4 -4
  60. package/src/hooks/useChatRoomSubscription/index.ts +28 -0
  61. package/src/hooks/useCheckbox/{index.js → index.ts} +1 -1
  62. package/src/hooks/useCities/index.ts +14 -0
  63. package/src/hooks/useCities/queries.ts +12 -0
  64. package/src/hooks/useClients/{index.js → index.ts} +36 -10
  65. package/src/hooks/useClients/queries.ts +215 -0
  66. package/src/hooks/useColorByLetters/helpers/alea.ts +73 -0
  67. package/src/hooks/useColorByLetters/helpers/colors.ts +45 -0
  68. package/src/hooks/useColorByLetters/helpers/index.ts +24 -0
  69. package/src/hooks/useColorByLetters/helpers/mersenne_twister.ts +118 -0
  70. package/src/hooks/useColorByLetters/index.ts +24 -0
  71. package/src/hooks/useConnection/index.ts +24 -0
  72. package/src/hooks/useCountries/index.ts +20 -0
  73. package/src/hooks/useCountries/queries.ts +12 -0
  74. package/src/hooks/useCreateDeliveryTime/index.ts +51 -0
  75. package/src/hooks/useCreateOrderStatusType/index.ts +134 -0
  76. package/src/hooks/useCreateProduct/helpers/index.ts +23 -0
  77. package/src/hooks/useCreateProduct/helpers/manageCacheDataCatProduct/{index.js → index.ts} +1 -1
  78. package/src/hooks/useCreateProduct/helpers/useEditImageProduct/{index.js → index.ts} +14 -8
  79. package/src/hooks/useCreateProduct/index.ts +337 -0
  80. package/src/hooks/useCreateStorePendingToRegister/index.ts +17 -0
  81. package/src/hooks/useCreateStorePendingToRegister/queries.ts +10 -0
  82. package/src/hooks/useDashboardComponents/index.ts +50 -0
  83. package/src/hooks/useDeleteExtraProductFoods/index.ts +13 -0
  84. package/src/hooks/useDeleteSubProductOptional/{index.js → index.ts} +5 -3
  85. package/src/hooks/useDeliveryTime/index.ts +29 -0
  86. package/src/hooks/useDepartments/index.ts +14 -0
  87. package/src/hooks/useDepartments/queries.ts +13 -0
  88. package/src/hooks/useDessert/{index.js → index.ts} +162 -114
  89. package/src/hooks/useDessertWithPrice/helpers/index.ts +76 -0
  90. package/src/hooks/useDessertWithPrice/index.ts +381 -0
  91. package/src/hooks/useDessertWithPrice/queries.ts +18 -0
  92. package/src/hooks/useDevWS/index.ts +53 -0
  93. package/src/hooks/useDevices/index.ts +2 -0
  94. package/src/hooks/useDevices/queries.ts +28 -0
  95. package/src/hooks/useDevices/useGetDevices.ts +28 -0
  96. package/src/hooks/useDevices/useRegisterDevices.ts +75 -0
  97. package/src/hooks/useDownloadReports/helpers/downloadFileFromResponse.ts +21 -0
  98. package/src/hooks/useDownloadReports/index.ts +2 -0
  99. package/src/hooks/useDownloadReports/useDownloadReportByDay/index.ts +105 -0
  100. package/src/hooks/useDownloadReports/useGetReportByDateRange/index.ts +116 -0
  101. package/src/hooks/useDrag/{index.js → index.ts} +16 -0
  102. package/src/hooks/useDropzone/{index.js → index.ts} +2 -2
  103. package/src/hooks/useDynamicAuth/{index.js → index.ts} +2 -1
  104. package/src/hooks/useEditCategory/{index.js → index.ts} +14 -14
  105. package/src/hooks/useEditOneExtProductFoodOptional/index.ts +28 -0
  106. package/src/hooks/useEditOneExtProductFoodOptional/{queries.js → queries.ts} +2 -2
  107. package/src/hooks/useEditSubProductOptional/index.ts +12 -0
  108. package/src/hooks/useEmployee/index.ts +18 -0
  109. package/src/hooks/useEmployee/queries.ts +85 -0
  110. package/src/hooks/useEmployee/useCreateEmployee.ts +90 -0
  111. package/src/hooks/useEvent/{index.js → index.ts} +1 -0
  112. package/src/hooks/useFavoriteStores/index.ts +31 -0
  113. package/src/hooks/useFavoriteStores/queries.ts +54 -0
  114. package/src/hooks/useFetchMoreInteractions/index.jsx +26 -26
  115. package/src/hooks/useFilterConfigs/index.ts +173 -0
  116. package/src/hooks/useFingerprintjs/{index.js → index.ts} +32 -7
  117. package/src/hooks/useFormTools/index.ts +143 -0
  118. package/src/hooks/useFormatDate/index.ts +91 -0
  119. package/src/hooks/useFullScreenMode/{index.js → index.ts} +1 -5
  120. package/src/hooks/useGetAllLocationUser/index.ts +13 -0
  121. package/src/hooks/useGetAllLocationUser/queries.ts +44 -0
  122. package/src/hooks/{useSales/useGetAllSales/index.js → useGetAllSales/index.ts} +3 -2
  123. package/src/hooks/useGetCookies/index.ts +43 -0
  124. package/src/hooks/useGetExtProductFoodsSubOptionalAll/{index.js → index.ts} +2 -1
  125. package/src/hooks/useGetFoodRecomended/{index.js → index.ts} +2 -1
  126. package/src/hooks/useGetMessagesToRoom/index.ts +23 -0
  127. package/src/hooks/useGetMinPrice/{index.js → index.ts} +2 -1
  128. package/src/hooks/useGetOneStoreRating/{index.js → index.ts} +2 -1
  129. package/src/hooks/useGetSalesAmountToday/index.ts +31 -0
  130. package/src/hooks/useGetStoreCookie/index.ts +21 -0
  131. package/src/hooks/useGoogleLogin/{index.js → index.ts} +14 -5
  132. package/src/hooks/useHover/{index.js → index.ts} +3 -0
  133. package/src/hooks/useImageOptimization/{index.js → index.ts} +4 -0
  134. package/src/hooks/useImageUploaderProduct/helper/canvasUtils.ts +146 -0
  135. package/src/hooks/useImageUploaderProduct/helper/getOrientation.ts +54 -0
  136. package/src/hooks/useImageUploaderProduct/helper/index.ts +5 -0
  137. package/src/hooks/useImageUploaderProduct/index.ts +295 -0
  138. package/src/hooks/useImageWeight/{index.js → index.ts} +4 -0
  139. package/src/hooks/useImagesStore/index.ts +227 -0
  140. package/src/hooks/useImagesStore/{queries.js → queries.ts} +4 -68
  141. package/src/hooks/useImagesStore/utils/index.ts +4 -0
  142. package/src/hooks/useIncomingOrders/index.ts +11 -0
  143. package/src/hooks/useIncomingOrders/queries.ts +87 -0
  144. package/src/hooks/useIntersection/{index.js → index.ts} +1 -1
  145. package/src/hooks/useInventory/index.ts +2 -0
  146. package/src/hooks/useInventory/queries.ts +58 -0
  147. package/src/hooks/useInventory/useGetProductsInStock.ts +16 -0
  148. package/src/hooks/useInventory/useUpdateManageStock.ts +41 -0
  149. package/src/hooks/useLazyScript/{index.js → index.ts} +3 -0
  150. package/src/hooks/useLocalBackendIp/index.ts +34 -0
  151. package/src/hooks/useLocalSorage/{index.js → index.ts} +3 -3
  152. package/src/hooks/useLocationManager/index.ts +63 -0
  153. package/src/hooks/useLoginEmployeeInStore/index.ts +38 -0
  154. package/src/hooks/useLogout/helpers/BroadcastChannel.ts +74 -0
  155. package/src/hooks/useLogout/helpers/apiBaseUrl.ts +12 -0
  156. package/src/hooks/useLogout/helpers/fetchData.ts +37 -0
  157. package/src/hooks/useLogout/helpers/getCsrfToken.ts +37 -0
  158. package/src/hooks/useLogout/helpers/index.ts +65 -0
  159. package/src/hooks/useLogout/helpers/logger.ts +88 -0
  160. package/src/hooks/useLogout/helpers/parseUrl.ts +39 -0
  161. package/src/hooks/useLogout/index.ts +105 -0
  162. package/src/hooks/useManageNewOrder/helpers/index.ts +45 -0
  163. package/src/hooks/useManageNewOrder/index.ts +104 -0
  164. package/src/hooks/useManageQueryParams/index.ts +120 -0
  165. package/src/hooks/useMobile/index.ts +65 -0
  166. package/src/hooks/useModules/helpers/index.ts +1 -0
  167. package/src/hooks/useModules/helpers/validateModules.ts +43 -0
  168. package/src/hooks/useModules/index.ts +124 -0
  169. package/src/hooks/useMouse/index.ts +55 -0
  170. package/src/hooks/useOrderStatusTypes/index.ts +2 -0
  171. package/src/hooks/useOrderStatusTypes/useOrderStatusTypes/index.ts +133 -0
  172. package/src/hooks/useOrderStatusTypes/useUpdateOrderStatusPriorities/index.ts +99 -0
  173. package/src/hooks/useOrders/index.ts +3 -0
  174. package/src/hooks/useOrders/queries.ts +99 -0
  175. package/src/hooks/useOrders/useChangeOrderState/index.ts +128 -0
  176. package/src/hooks/useOrders/{index.js → useOrdersFromStore/index.ts} +20 -18
  177. package/src/hooks/usePWAInstall/index.ts +38 -0
  178. package/src/hooks/usePaymentMethod/index.ts +3 -0
  179. package/src/hooks/usePaymentMethod/paymentMethod.gql.ts +62 -0
  180. package/src/hooks/usePaymentMethod/paymentMethod.types.ts +28 -0
  181. package/src/hooks/usePaymentMethod/useCreatePaymentMethod/index.ts +25 -0
  182. package/src/hooks/usePaymentMethod/useGetAllPaymentMethods/index.ts +19 -0
  183. package/src/hooks/usePaymentMethod/useGetPaymentMethod/index.ts +26 -0
  184. package/src/hooks/usePortFetcher/index.ts +33 -0
  185. package/src/hooks/usePrintSaleTicket/index.ts +68 -0
  186. package/src/hooks/useProductsFood/index.ts +341 -0
  187. package/src/hooks/useProductsFood/{queriesStore.js → queriesStore.ts} +151 -84
  188. package/src/hooks/useProductsFood/types/index.ts +0 -0
  189. package/src/hooks/useProductsFood/useEditProduct.ts +49 -0
  190. package/src/hooks/useProductsFood/usetagsProducts.ts +101 -0
  191. package/src/hooks/useProviders/useProvidersCreateStore/{index.js → index.ts} +2 -1
  192. package/src/hooks/useProviders/useProvidersDataStore/{index.js → index.ts} +2 -1
  193. package/src/hooks/useProvidersStore/{index.js → index.ts} +2 -1
  194. package/src/hooks/usePushNotificationOrder/index.ts +52 -0
  195. package/src/hooks/usePushNotifications/helpers/index.ts +123 -0
  196. package/src/hooks/usePushNotifications/index.ts +150 -0
  197. package/src/hooks/useQueryLocationsMap/index.ts +20 -0
  198. package/src/hooks/useQueryLocationsMap/queries.ts +40 -0
  199. package/src/hooks/useRatingArrayData/{index.js → index.ts} +4 -4
  200. package/src/hooks/useRatingArrayData/{queries.js → queries.ts} +1 -1
  201. package/src/hooks/useReactToPrint/index.ts +4 -0
  202. package/src/hooks/useRemoveExtraProductFoodsOptional/{index.js → index.ts} +2 -1
  203. package/src/hooks/useRemoveExtraProductFoodsOptional/{queries.js → queries.ts} +4 -4
  204. package/src/hooks/useReport/{index.js → index.ts} +5 -5
  205. package/src/hooks/useReport/{queries.js → queries.ts} +4 -55
  206. package/src/hooks/useRestaurant/helpers/index.ts +28 -0
  207. package/src/hooks/useRestaurant/helpers/manageStatusOpen.ts +26 -0
  208. package/src/hooks/useRestaurant/index.ts +71 -0
  209. package/src/hooks/useRestaurant/{queries.js → queries.ts} +2 -1
  210. package/src/hooks/useRoads/index.ts +20 -0
  211. package/src/hooks/useRoads/queries.ts +13 -0
  212. package/src/hooks/useRoles/index.ts +4 -0
  213. package/src/hooks/useRoles/queries.ts +70 -0
  214. package/src/hooks/useRoles/useCreateRole.ts +40 -0
  215. package/src/hooks/useRoles/useGetRoles.ts +37 -0
  216. package/src/hooks/useRoles/useRemoveRoles.ts +40 -0
  217. package/src/hooks/useRoles/useUpdateRolesPriority.ts +44 -0
  218. package/src/hooks/useSales/helpers/add-product.utils.ts +120 -0
  219. package/src/hooks/useSales/helpers/apply-discount-to-cart.utils.ts +292 -0
  220. package/src/hooks/useSales/helpers/comment-product.utils.ts +41 -0
  221. package/src/hooks/useSales/helpers/constants/index.ts +38 -0
  222. package/src/hooks/useSales/helpers/extras.utils.ts +42 -0
  223. package/src/hooks/useSales/helpers/filterProductsByCarProId.utils.ts +17 -0
  224. package/src/hooks/useSales/helpers/increment-product-quantity.utils.ts +76 -0
  225. package/src/hooks/useSales/helpers/index.ts +3 -0
  226. package/src/hooks/useSales/helpers/initializer.utils.ts +22 -0
  227. package/src/hooks/useSales/helpers/isStockInsufficient.ts +3 -0
  228. package/src/hooks/useSales/helpers/remove-product.utils.test.ts +49 -0
  229. package/src/hooks/useSales/helpers/remove-product.utils.ts +34 -0
  230. package/src/hooks/useSales/helpers/resolveProduct.ts +29 -0
  231. package/src/hooks/useSales/helpers/useAddToCart.ts +64 -0
  232. package/src/hooks/useSales/index.ts +1418 -0
  233. package/src/hooks/useSales/{queries.js → queries.ts} +256 -166
  234. package/src/hooks/useSales/types/index.ts +206 -0
  235. package/src/hooks/useSales/types/use-sales.types.ts +8 -0
  236. package/src/hooks/useSales/useGetSale.ts +21 -0
  237. package/src/hooks/useSales/useTotalSales.ts +24 -0
  238. package/src/hooks/useSaveAvailableProduct/helpers/{index.js → index.ts} +4 -4
  239. package/src/hooks/useSaveAvailableProduct/{index.js → index.ts} +7 -1
  240. package/src/hooks/useSaveLocation/index.ts +17 -0
  241. package/src/hooks/useSaveLocation/queries.ts +19 -0
  242. package/src/hooks/useSchedule/{index.jsx → index.ts} +16 -4
  243. package/src/hooks/useSchedule/{index.js → schedule.ts} +22 -15
  244. package/src/hooks/useScheduleData/{index.js → index.ts} +21 -9
  245. package/src/hooks/useSetImageProducts/index.ts +59 -0
  246. package/src/hooks/useSetImageProducts/queries.ts +18 -0
  247. package/src/hooks/useSetSession/{index.js → index.ts} +16 -17
  248. package/src/hooks/useSetupSchedule/helpers/index.ts +85 -0
  249. package/src/hooks/useSetupSchedule/index.ts +284 -0
  250. package/src/hooks/useStatusOpenStore/helpers/index.ts +124 -0
  251. package/src/hooks/useStatusOpenStore/{index.js → index.ts} +39 -16
  252. package/src/hooks/useStatusOrdersClient/{index.js → index.ts} +3 -2
  253. package/src/hooks/useStatusOrdersClient/{queries.js → queries.ts} +2 -2
  254. package/src/hooks/useStock/index.ts +1 -0
  255. package/src/hooks/useStock/useStockUpdatedAllSubscription.ts +40 -0
  256. package/src/hooks/useStockMovements/helpers/index.ts +16 -0
  257. package/src/hooks/useStockMovements/index.ts +39 -0
  258. package/src/hooks/useStore/index.ts +83 -0
  259. package/src/hooks/useStore/{queries.js → queries.ts} +71 -71
  260. package/src/hooks/useStoreContacts/{index.js → index.ts} +11 -5
  261. package/src/hooks/useStoreTable/index.ts +2 -0
  262. package/src/hooks/useStoreTable/queries.ts +47 -0
  263. package/src/hooks/useStoreTable/useStoreTableCreate.ts +77 -0
  264. package/src/hooks/useStoreTable/useStoreTables.ts +15 -0
  265. package/src/hooks/useSubscriptionValidation/index.ts +112 -0
  266. package/src/hooks/useTagProducts/index.ts +3 -0
  267. package/src/hooks/useTagProducts/useDeleteOneTag.ts +106 -0
  268. package/src/hooks/useTagProducts/useGetAllTags.ts +68 -0
  269. package/src/hooks/useTagProducts/useRegisterMultipleTags.ts +157 -0
  270. package/src/hooks/useTheme/index.ts +65 -0
  271. package/src/hooks/useTimeAgo/{useTimeAgo.js → useTimeAgo.ts} +7 -7
  272. package/src/hooks/useTokenCards/index.ts +45 -0
  273. package/src/hooks/useTopProductsMovements/index.ts +27 -0
  274. package/src/hooks/useTotalAllSales/index.ts +25 -0
  275. package/src/hooks/useTotalProductsInStock/index.ts +23 -0
  276. package/src/hooks/useTotalProductsSold/index.ts +23 -0
  277. package/src/hooks/useTotalProductsSolded/index.ts +20 -0
  278. package/src/hooks/useUpdateCart/{index.js → index.ts} +3 -2
  279. package/src/hooks/useUpdateCartCookie/index.ts +60 -0
  280. package/src/hooks/useUpdateDashboardComponent/index.ts +91 -0
  281. package/src/hooks/useUpdateExistingOrders/{index.js → index.ts} +5 -11
  282. package/src/hooks/useUpdateExtProductFoodsSubOptional/index.ts +61 -0
  283. package/src/hooks/useUpdateModuleOrder/index.ts +37 -0
  284. package/src/hooks/useUpdateMultipleExtProduct/index.ts +34 -0
  285. package/src/hooks/useUpdateMultipleExtProduct/queries.ts +33 -0
  286. package/src/hooks/useUpdateMultipleProducts/index.ts +117 -0
  287. package/src/hooks/useUpdateMultipleProducts/queries.ts +51 -0
  288. package/src/hooks/useUploadProducts/helpers/index.ts +1 -0
  289. package/src/hooks/useUploadProducts/helpers/parseNumber.ts +37 -0
  290. package/src/hooks/useUploadProducts/helpers/validateProductDataExcel.ts +73 -0
  291. package/src/hooks/useUploadProducts/index.ts +442 -0
  292. package/src/hooks/useUpsertGoal/index.ts +68 -0
  293. package/src/hooks/useUser/{index.js → index.ts} +11 -4
  294. package/src/hooks/useUser/{queries.js → queries.ts} +9 -4
  295. package/src/hooks/useWeeklyStockMovement/helpers/index.ts +32 -0
  296. package/src/hooks/useWeeklyStockMovement/index.ts +52 -0
  297. package/src/hooks/useWindowSize/{index.js → index.ts} +9 -2
  298. package/src/index.ts +12 -0
  299. package/src/security/index.ts +1 -0
  300. package/src/services/index.ts +1 -0
  301. package/src/utils/UtilDateRange.ts +56 -0
  302. package/src/utils/generateCode.ts +222 -0
  303. package/src/utils/index.ts +2 -0
  304. package/src/utils/utils.ts +344 -0
  305. package/tsconfig.eslint.json +17 -0
  306. package/tsconfig.json +21 -0
  307. package/tsup.config.ts +24 -0
  308. package/.eslintrc.js +0 -38
  309. package/.eslintrc.json +0 -127
  310. package/next.config.js +0 -126
  311. package/src/config/client/errors.js +0 -26
  312. package/src/hooks/getGlobalSession/index.js +0 -49
  313. package/src/hooks/getSession/index.js +0 -18
  314. package/src/hooks/handleLogin/index.js +0 -10
  315. package/src/hooks/index.js +0 -77
  316. package/src/hooks/useAcumulateDate/index.js +0 -16
  317. package/src/hooks/useAsideCart/index.js +0 -155
  318. package/src/hooks/useCategoryInStore/index.js +0 -98
  319. package/src/hooks/useClients/queries.js +0 -127
  320. package/src/hooks/useConnection/index.js +0 -22
  321. package/src/hooks/useCreateProduct/index.js +0 -291
  322. package/src/hooks/useDevices/index.js +0 -35
  323. package/src/hooks/useDevices/queries.js +0 -19
  324. package/src/hooks/useEditOneExtProductFoodOptional/index.js +0 -28
  325. package/src/hooks/useEditSubProductOptional/index.js +0 -11
  326. package/src/hooks/useEmployee/index.js +0 -13
  327. package/src/hooks/useEmployee/queries.js +0 -17
  328. package/src/hooks/useFavoriteStores/index.js +0 -19
  329. package/src/hooks/useFavoriteStores/queries.js +0 -47
  330. package/src/hooks/useFormTools/index.js +0 -100
  331. package/src/hooks/useFormatDate/index.js +0 -33
  332. package/src/hooks/useGetStoreCookie/index.js +0 -22
  333. package/src/hooks/useImagesStore/index.js +0 -183
  334. package/src/hooks/useLogout/helpers/BroadcastChannel.js +0 -32
  335. package/src/hooks/useLogout/helpers/apiBaseUrl.js +0 -8
  336. package/src/hooks/useLogout/helpers/fetchData.js +0 -29
  337. package/src/hooks/useLogout/helpers/getCsrfToken.js +0 -30
  338. package/src/hooks/useLogout/helpers/index.js +0 -54
  339. package/src/hooks/useLogout/helpers/logger.js +0 -72
  340. package/src/hooks/useLogout/helpers/parseUrl.js +0 -36
  341. package/src/hooks/useLogout/index.js +0 -46
  342. package/src/hooks/useManageQueryParams/index.js +0 -37
  343. package/src/hooks/useMobile/index.js +0 -39
  344. package/src/hooks/useOrders/queries.js +0 -328
  345. package/src/hooks/useProductsFood/index.js +0 -234
  346. package/src/hooks/useProductsFood/useEditProduct.js +0 -8
  347. package/src/hooks/useProductsFood/usetagsProducts.js +0 -94
  348. package/src/hooks/useRestaurant/index.js +0 -19
  349. package/src/hooks/useSales/helpers/index.js +0 -8
  350. package/src/hooks/useSales/index.js +0 -1102
  351. package/src/hooks/useSales/useGetSale.js +0 -13
  352. package/src/hooks/useSales/useTotalSales.js +0 -24
  353. package/src/hooks/useStore/index.js +0 -70
  354. package/src/hooks/useUpdateExtProductFoodsSubOptional/index.js +0 -38
  355. package/src/index.jsx +0 -4
  356. package/src/utils/index.js +0 -141
  357. /package/src/config/client/{index.js → index.ts} +0 -0
  358. /package/src/hooks/getCategoriesWithProduct/helpers/{index.js → index.ts} +0 -0
  359. /package/src/hooks/useAnimationFrame/{index.js → index.ts} +0 -0
  360. /package/src/hooks/useAsideCart/helpers/{index.js → index.ts} +0 -0
  361. /package/src/hooks/useAsideCart/{queries.js → queries.ts} +0 -0
  362. /package/src/hooks/useCart/{index.js → index.ts} +0 -0
  363. /package/src/hooks/useDeleteSubProductOptional/{queries.js → queries.ts} +0 -0
  364. /package/src/hooks/useDessert/helpers/{index.js → index.ts} +0 -0
  365. /package/src/hooks/useDynamicAuth/{queries.js → queries.ts} +0 -0
  366. /package/src/hooks/useEditSubProductOptional/{queries.js → queries.ts} +0 -0
  367. /package/src/hooks/useFetchJson/{index.js → index.ts} +0 -0
  368. /package/src/hooks/useFormatNumberPhone/{index.js → index.ts} +0 -0
  369. /package/src/hooks/useGenerateNumberArray/{index.js → index.ts} +0 -0
  370. /package/src/hooks/useGetFoodRecomended/{queries.js → queries.ts} +0 -0
  371. /package/src/hooks/useGetMinPrice/{queries.js → queries.ts} +0 -0
  372. /package/src/hooks/useGetOneStoreRating/{queries.js → queries.ts} +0 -0
  373. /package/src/hooks/useGoogleLogin/{loadScript.js → loadScript.ts} +0 -0
  374. /package/src/hooks/useGoogleLogin/{removeScript.js → removeScript.ts} +0 -0
  375. /package/src/hooks/useInnerHtml/{index.js → index.ts} +0 -0
  376. /package/src/hooks/useKeypress/{index.js → index.ts} +0 -0
  377. /package/src/hooks/useLocationNavigate/{index.js → index.ts} +0 -0
  378. /package/src/{security/index.js → hooks/useManageNewOrder/helpers/mock.ts} +0 -0
  379. /package/src/hooks/useMutateHeight/{index.js → index.ts} +0 -0
  380. /package/src/hooks/useOrderClient/{index.js → index.ts} +0 -0
  381. /package/src/hooks/useProviders/{index.js → index.ts} +0 -0
  382. /package/src/hooks/useProviders/{queries.js → queries.ts} +0 -0
  383. /package/src/hooks/useProvidersStore/{queries.js → queries.ts} +0 -0
  384. /package/src/hooks/useReactToPrint/{index.js → index.txt} +0 -0
  385. /package/src/hooks/useSaveAvailableProduct/{queries.js → queries.ts} +0 -0
  386. /package/src/hooks/useSchedule/{queries.js → queries.ts} +0 -0
  387. /package/src/hooks/useScroll/{index.js → index.ts} +0 -0
  388. /package/src/hooks/useScrollRotate/{index.js → index.ts} +0 -0
  389. /package/src/hooks/useSetState/{index.js → index.ts} +0 -0
  390. /package/src/hooks/useStatusOrdersClient/helpers/{index.js → index.ts} +0 -0
  391. /package/src/hooks/useStoreCalendar/{index.js → index.ts} +0 -0
  392. /package/src/hooks/useStoreContacts/{queries.js → queries.ts} +0 -0
  393. /package/src/mock/dessert/{index.js → index.ts} +0 -0
  394. /package/src/mock/{index.js → index.ts} +0 -0
@@ -0,0 +1,88 @@
1
+ /**
2
+ *
3
+ * @param o
4
+ */
5
+ function formatError (o) {
6
+ if (hasErrorProperty(o)) {
7
+ o.error = formatError(o.error)
8
+ o.message = o.message ?? o.error.message
9
+ }
10
+ return o
11
+ }
12
+
13
+ /**
14
+ *
15
+ * @param x
16
+ */
17
+ function hasErrorProperty (x) {
18
+ return Boolean(x?.error)
19
+ }
20
+
21
+ const _logger = {
22
+ error (code, metadata) {
23
+ metadata = formatError(metadata)
24
+ console.error(
25
+ `[next-auth][error][${code}]`,
26
+ `\nhttps://next-auth.js.org/errors#${code.toLowerCase()}`,
27
+ metadata.message,
28
+ metadata
29
+ )
30
+ },
31
+ warn (code) {
32
+ console.warn(
33
+ `[next-auth][warn][${code}]`,
34
+ `\nhttps://next-auth.js.org/warnings#${code.toLowerCase()}`
35
+ )
36
+ },
37
+ debug (code, metadata) {
38
+ console.log(`[next-auth][debug][${code}]`, metadata)
39
+ }
40
+ }
41
+
42
+ /**
43
+ *
44
+ * @param newLogger
45
+ * @param debug
46
+ */
47
+ export function setLogger (newLogger = {}, debug) {
48
+ if (!debug) _logger.debug = () => { }
49
+
50
+ if (newLogger.error) _logger.error = newLogger.error
51
+ if (newLogger.warn) _logger.warn = newLogger.warn
52
+ if (newLogger.debug) _logger.debug = newLogger.debug
53
+ }
54
+
55
+ /**
56
+ *
57
+ * @param logger
58
+ * @param basePath
59
+ */
60
+ export function proxyLogger (logger = _logger, basePath) {
61
+ try {
62
+ if (typeof window === 'undefined') {
63
+ return logger
64
+ }
65
+
66
+ const clientLogger = {}
67
+ for (const level in logger) {
68
+ clientLogger[level] = (code, metadata) => {
69
+ _logger[level](code, metadata)
70
+
71
+ if (level === 'error') {
72
+ metadata = formatError(metadata)
73
+ }
74
+ metadata.client = true
75
+ const url = `${basePath}/_log`
76
+ const body = new URLSearchParams({ level, code, ...metadata })
77
+ if (navigator.sendBeacon) {
78
+ return navigator.sendBeacon(url, body)
79
+ }
80
+ return fetch(url, { method: 'POST', body, keepalive: true })
81
+ }
82
+ }
83
+ return clientLogger
84
+ } catch {
85
+ return _logger
86
+ }
87
+ }
88
+ export { _logger as default }
@@ -0,0 +1,39 @@
1
+ /** Interface for the internal URL structure */
2
+ const InternalUrl = {
3
+ origin: 'http://localhost:3000',
4
+ host: 'localhost:3000',
5
+ path: '/api/auth',
6
+ base: 'http://localhost:3000/api/auth',
7
+ toString: function () {
8
+ return this.base
9
+ }
10
+ }
11
+
12
+ /**
13
+ * Function to parse a URL-like object for server-side requests/redirects
14
+ * @param url
15
+ */
16
+ function parseUrl (url: string | undefined) {
17
+ const defaultUrl = new URL('http://localhost:3000/api/auth')
18
+
19
+ if (url && !url.startsWith('http')) {
20
+ url = `https://${url}`
21
+ }
22
+
23
+ const _url = new URL(url || defaultUrl)
24
+ const path = (_url.pathname === '/' ? defaultUrl.pathname : _url.pathname).replace(/\/$/, '')
25
+
26
+ const base = `${_url.origin}${path}`
27
+
28
+ return {
29
+ origin: _url.origin,
30
+ host: _url.host,
31
+ path,
32
+ base,
33
+ toString: function () {
34
+ return base
35
+ }
36
+ }
37
+ }
38
+
39
+ export { InternalUrl, parseUrl }
@@ -0,0 +1,105 @@
1
+ import { useApolloClient } from '@apollo/client'
2
+ import { useState } from 'react'
3
+
4
+ import { Cookies } from '../../cookies/index'
5
+ import { getCurrentDomain } from '../../utils'
6
+ import { signOutAuth } from './helpers'
7
+
8
+
9
+ interface UseLogoutOptions {
10
+ setAlertBox?: (options: { message: string }) => { message: string }
11
+ }
12
+ export const useLogout = ({
13
+ setAlertBox = ({
14
+ message
15
+ }) => { return { message } }
16
+ }: UseLogoutOptions = {}) => {
17
+ const [loading, setLoading] = useState<boolean>(false)
18
+ const [error, setError] = useState(false)
19
+ const client = useApolloClient()
20
+
21
+ const eliminarCookie = async (nombreCookie: string) => {
22
+ try {
23
+ let domain = getCurrentDomain() as string | undefined
24
+
25
+ // Si estás en entorno local, usa 'localhost' como dominio
26
+ if (domain === 'localhost') {
27
+ domain = undefined // Esto permitirá la cookie en 'localhost'
28
+ }
29
+
30
+ const expirationTime = new Date()
31
+ expirationTime.setTime(expirationTime.getTime() - 1000) // Establece una fecha de expiración en el pasado
32
+
33
+ const formattedDomain: string | undefined = typeof domain === 'string' ? domain : undefined
34
+
35
+ Cookies.remove(nombreCookie, { domain: formattedDomain, path: '/', secure: process.env.NODE_ENV === 'production' })
36
+
37
+ console.log('Cookie eliminada correctamente.')
38
+ } catch (error) {
39
+ console.error('Error al eliminar la cookie:', error)
40
+ throw new Error('Error al eliminar la cookie. ')
41
+ }
42
+ }
43
+ const deleteCookie = async () => {
44
+ await eliminarCookie(String(process.env.NEXT_PUBLIC_SESSION_NAME))
45
+ await eliminarCookie(String(process.env.NEXT_LOCAL_SALES_STORE))
46
+ await eliminarCookie('restaurant')
47
+ await eliminarCookie('usuario')
48
+ await eliminarCookie('session')
49
+ }
50
+ const onClickLogout = async (params?: { redirect?: boolean }) => {
51
+ const redirect = params?.redirect ?? true
52
+ try {
53
+ if (redirect) {
54
+ setLoading(true)
55
+ } else {
56
+ return await deleteCookie()
57
+ }
58
+ await deleteCookie()
59
+ // Logout from the server
60
+ const port = globalThis.location.port ? `:${globalThis.location.port}` : ''
61
+ const baseUrl = `${globalThis.location.protocol}//${globalThis.location.hostname}${port}`
62
+ const logoutResponse = await fetch(`${baseUrl}/api/auth/signout/`, {
63
+ method: 'POST',
64
+ headers: {
65
+ 'Content-Type': 'application/json'
66
+ },
67
+ credentials: 'include'
68
+ })
69
+
70
+ if (!logoutResponse.ok) {
71
+ setLoading(false)
72
+ return
73
+ }
74
+
75
+ await logoutResponse.json()
76
+ console.log('Intentando borrar cookies...')
77
+
78
+ // Eliminar la cookie process.env.NEXT_PUBLIC_SESSION_NAME
79
+ await eliminarCookie(String(process.env.NEXT_PUBLIC_SESSION_NAME))
80
+ Cookies.remove(String(process.env.NEXT_LOCAL_SALES_STORE))
81
+ Cookies.remove('restaurant')
82
+ Cookies.remove('usuario')
83
+ Cookies.remove('session')
84
+
85
+ // Clear Apollo Client cache
86
+ client?.clearStore()
87
+
88
+ setLoading(false)
89
+ console.log('Cookies eliminadas y sesión cerrada con éxito')
90
+ signOutAuth({ redirect: true, callbackUrl: '/' })
91
+ .catch((err) => {
92
+ setError(true)
93
+ console.error('Error in signOutAuth:', err)
94
+ setAlertBox({ message: 'Ocurrió un error al cerrar sesión' })
95
+ })
96
+ } catch (err) {
97
+ setLoading(false)
98
+ setError(true)
99
+ console.error('Error al cerrar sesión:', err)
100
+ setAlertBox({ message: 'Ocurrió un error al cerrar sesión' })
101
+ }
102
+ }
103
+
104
+ return [onClickLogout, { loading, error }]
105
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Busca un objeto dentro de un conjunto de columnas por su código de referencia.
3
+ * @param {Object} data - El objeto que contiene las columnas.
4
+ * @param {string} pCodeRef - El código de referencia a buscar.
5
+ * @returns {Object|null} - El objeto encontrado o null si no se encuentra.
6
+ */
7
+ export function findOrderByCodeRef (data, pCodeRef) {
8
+ if (!data || typeof data !== 'object') {
9
+ throw new Error('El parámetro "data" debe ser un objeto no nulo.')
10
+ }
11
+
12
+ if (typeof pCodeRef !== 'string') {
13
+ throw new Error('El parámetro "pCodeRef" debe ser una cadena de texto.')
14
+ }
15
+
16
+ // Iterar sobre cada columna en el objeto data
17
+ for (const columnKey in data) {
18
+ if (Object.hasOwnProperty.call(data, columnKey)) {
19
+ const column = data[columnKey]
20
+ // Verificar si la columna es un array
21
+ if (Array.isArray(column)) {
22
+ // Buscar el objeto por pCodeRef dentro de la columna actual
23
+ const foundOrder = column.find(
24
+ (order) => {return order && order.pCodeRef === pCodeRef}
25
+ )
26
+ // Si se encuentra el objeto, devolverlo
27
+ if (foundOrder) {
28
+ return foundOrder
29
+ }
30
+ }
31
+ }
32
+ }
33
+ // Si no se encuentra el objeto en ninguna columna, devolver null
34
+ return null
35
+ }
36
+
37
+ export const isDateInRange = (dateString) => {
38
+ const currentDate = new Date()
39
+ const todayStart = new Date(currentDate.setHours(0, 0, 0, 0))
40
+ const tomorrowStart = new Date(todayStart)
41
+ tomorrowStart.setDate(tomorrowStart.getDate() + 1)
42
+
43
+ const date = new Date(dateString)
44
+ return date >= todayStart && date < tomorrowStart
45
+ }
@@ -0,0 +1,104 @@
1
+ import { useEffect, useState } from 'react'
2
+
3
+ import {
4
+ useGetSale,
5
+ // updateExistingOrders,
6
+ convertDateFormat,
7
+ useOrdersFromStore
8
+ } from '..'
9
+
10
+ import { findOrderByCodeRef, isDateInRange } from './helpers'
11
+
12
+ export const useManageNewOrder = ({
13
+ client,
14
+ idStore,
15
+ setAlertBox = ({ message, duration }) => {
16
+ return { message, duration }
17
+ },
18
+ playNotificationSound = () => {},
19
+ setIsOpenOrder = (boolean) => { return boolean },
20
+ setCountOrders = (number) => { return number },
21
+ sendNotification = ({ title, description, backgroundColor }) => {
22
+ return {
23
+ title,
24
+ description,
25
+ backgroundColor
26
+ }
27
+ }
28
+ }) => {
29
+ const KEY_STATUS_ORDER = 'ACEPTA'
30
+ const [orders, setOrders] = useState([])
31
+
32
+ const [data] = useOrdersFromStore({
33
+ idStore,
34
+ search: '',
35
+ fromDate: convertDateFormat({ start: true }),
36
+ toDate: convertDateFormat({ start: false })
37
+ })
38
+
39
+ useEffect(() => {
40
+ if (data) {
41
+ const dataOrder = data[KEY_STATUS_ORDER]
42
+ if (Array.isArray(dataOrder) && dataOrder) {
43
+ const filteredOrders = dataOrder.filter(order =>
44
+ {return isDateInRange(order?.pDatCre) && order?.pSState === 1}
45
+ ) ?? []
46
+ setOrders(filteredOrders)
47
+ setCountOrders(filteredOrders.length)
48
+ }
49
+ }
50
+ }, [data])
51
+
52
+ const { getOneSalesStore } = useGetSale()
53
+
54
+ const handleNewOrder = (order) => {
55
+ const dataOrder = data[KEY_STATUS_ORDER]
56
+ setOrders(dataOrder)
57
+ const { pCodeRef } = order || {}
58
+ if (pCodeRef) {
59
+ const isCodeRefExists = findOrderByCodeRef(data, pCodeRef)
60
+ if (isCodeRefExists) {
61
+ return
62
+ }
63
+ setIsOpenOrder(true)
64
+ getOneSalesStore({
65
+ variables: {
66
+ pCodeRef: pCodeRef ?? ''
67
+ }
68
+ }).then((response) => {
69
+ console.log(response)
70
+ // const currentSale = response?.data?.getOneSalesStore || {}
71
+ client.cache.modify({
72
+ fields: {
73
+ // getAllOrdersFromStore (existingOrders = []) {
74
+ // try {
75
+ // const cache = updateExistingOrders(
76
+ // existingOrders,
77
+ // pCodeRef,
78
+ // 1,
79
+ // currentSale
80
+ // )
81
+ // const currentOrder = cache[KEY_STATUS_ORDER]
82
+ // const filteredOrders = currentOrder.filter(order =>
83
+ // isDateInRange(order.pDatCre)
84
+ // )
85
+ // setOrders(filteredOrders)
86
+ // playNotificationSound()
87
+ // return cache
88
+ // } catch (e) {
89
+ // return existingOrders
90
+ // }
91
+ // }
92
+ }
93
+ })
94
+ })
95
+ sendNotification({
96
+ title: 'Pedido',
97
+ description: 'Nuevo pedido',
98
+ backgroundColor: 'success'
99
+ })
100
+ }
101
+ }
102
+
103
+ return [orders, { handleNewOrder }]
104
+ }
@@ -0,0 +1,120 @@
1
+ 'use client'
2
+
3
+ import { useRouter, useSearchParams, useParams } from 'next/navigation'
4
+
5
+ /**
6
+ * Generic query params map
7
+ */
8
+ export type QueryParams = Record<string, string>
9
+
10
+ /**
11
+ * Custom location interface (useful for testing or external routers)
12
+ */
13
+ export interface CustomLocation {
14
+ query?: QueryParams
15
+ push?: (url: string) => void
16
+ }
17
+
18
+ /**
19
+ * Hook options
20
+ */
21
+ export interface UseManageQueryParamsOptions {
22
+ location?: CustomLocation
23
+ }
24
+
25
+ /**
26
+ * Params getter options
27
+ */
28
+ export interface GetParamsOptions {
29
+ param: string
30
+ callback?: (value: string) => void
31
+ }
32
+
33
+ /**
34
+ * Hook return type
35
+ */
36
+ export interface UseManageQueryParamsResult {
37
+ getQuery: (name: string) => string
38
+ handleQuery: (name: string, value?: string) => void
39
+ handleCleanQuery: (name: string) => void
40
+ getParams: (options: GetParamsOptions) => string
41
+ }
42
+
43
+ /**
44
+ * Hook to manage query parameters in Next.js 13+ (App Router)
45
+ * Supports dependency injection for router/query (testing-friendly).
46
+ *
47
+ * @param {UseManageQueryParamsOptions} options
48
+ * @returns {UseManageQueryParamsResult}
49
+ */
50
+ export const useManageQueryParams = (
51
+ { location }: UseManageQueryParamsOptions = {}
52
+ ): UseManageQueryParamsResult => {
53
+ const router = useRouter()
54
+ const searchParams = useSearchParams()
55
+ const params = useParams()
56
+
57
+ const activeQuery: QueryParams =
58
+ location?.query ??
59
+ Object.fromEntries(searchParams.entries())
60
+
61
+ const pushFn = location?.push ?? ((url: string) => {return router.push(url)})
62
+
63
+ /**
64
+ * Set or update a query param
65
+ * @param name
66
+ * @param value
67
+ */
68
+ const handleQuery = (name: string, value = ''): void => {
69
+ if (!name) return
70
+
71
+ const query = new URLSearchParams(activeQuery)
72
+ query.set(name, value)
73
+
74
+ pushFn(`?${query.toString()}`)
75
+ }
76
+
77
+ /**
78
+ * Remove a query param
79
+ * @param name
80
+ */
81
+ const handleCleanQuery = (name: string): void => {
82
+ if (!name) return
83
+
84
+ const query = new URLSearchParams(activeQuery)
85
+ query.delete(name)
86
+
87
+ pushFn(`?${query.toString()}`)
88
+ }
89
+
90
+ /**
91
+ * Get a query param value
92
+ * @param name
93
+ */
94
+ const getQuery = (name: string): string => {
95
+ if (!name) return ''
96
+ return activeQuery?.[name] ?? ''
97
+ }
98
+
99
+ /**
100
+ * Get a dynamic route param from Next.js
101
+ * @param root0
102
+ * @param root0.param
103
+ * @param root0.callback
104
+ */
105
+ const getParams = ({ param, callback }: GetParamsOptions): string => {
106
+ if (!param) return ''
107
+
108
+ const value = String(params?.[param] ?? '')
109
+ callback?.(value)
110
+
111
+ return value
112
+ }
113
+
114
+ return {
115
+ getQuery,
116
+ handleQuery,
117
+ handleCleanQuery,
118
+ getParams
119
+ }
120
+ }
@@ -0,0 +1,65 @@
1
+ import { useEffect, useRef, useState } from 'react'
2
+
3
+ export const MEDIA_QUERY = {
4
+ MOBILE: '(max-width: 768px)',
5
+ TABLET: '(max-width: 960px)',
6
+ DESKTOP: '(min-width: 961px)'
7
+ }
8
+
9
+ export const useMobile = ({ callback } = {}) => {
10
+ const [isMobile, setIsMobile] = useState(false)
11
+ const [isTablet, setIsTablet] = useState(false)
12
+ const [isDesktop, setIsDesktop] = useState(false)
13
+
14
+ const prevValues = useRef({
15
+ isMobile: false,
16
+ isTablet: false,
17
+ isDesktop: false
18
+ })
19
+
20
+ useEffect(() => {
21
+ if (typeof window === 'undefined') return
22
+
23
+ const mobileQuery = window.matchMedia(MEDIA_QUERY.MOBILE)
24
+ const tabletQuery = window.matchMedia(MEDIA_QUERY.TABLET)
25
+ const desktopQuery = window.matchMedia(MEDIA_QUERY.DESKTOP)
26
+
27
+ const updateMatches = () => {
28
+ const newIsMobile = mobileQuery.matches
29
+ const newIsTablet = tabletQuery.matches
30
+ const newIsDesktop = desktopQuery.matches
31
+
32
+ const hasChanged =
33
+ newIsMobile !== prevValues.current.isMobile ||
34
+ newIsTablet !== prevValues.current.isTablet ||
35
+ newIsDesktop !== prevValues.current.isDesktop
36
+
37
+ if (hasChanged) {
38
+ prevValues.current = {
39
+ isMobile: newIsMobile,
40
+ isTablet: newIsTablet,
41
+ isDesktop: newIsDesktop
42
+ }
43
+ callback?.(prevValues.current)
44
+ }
45
+
46
+ setIsMobile(newIsMobile)
47
+ setIsTablet(newIsTablet)
48
+ setIsDesktop(newIsDesktop)
49
+ }
50
+
51
+ updateMatches()
52
+
53
+ mobileQuery.addEventListener('change', updateMatches)
54
+ tabletQuery.addEventListener('change', updateMatches)
55
+ desktopQuery.addEventListener('change', updateMatches)
56
+
57
+ return () => {
58
+ mobileQuery.removeEventListener('change', updateMatches)
59
+ tabletQuery.removeEventListener('change', updateMatches)
60
+ desktopQuery.removeEventListener('change', updateMatches)
61
+ }
62
+ }, [callback])
63
+
64
+ return { isMobile, isTablet, isDesktop }
65
+ }
@@ -0,0 +1 @@
1
+ export * from './validateModules'
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Validates and filters modules based on the "read" permission.
3
+ * If a module's view does not have "read" permission in the permissions object, the module is removed.
4
+ */
5
+ type PermissionMap = Record<string, string[]>
6
+
7
+ interface SubModule {
8
+ view: string
9
+ [key: string]: any
10
+ }
11
+
12
+ interface Module {
13
+ view: string
14
+ subModules?: SubModule[]
15
+ [key: string]: any
16
+ }
17
+
18
+ export const validateModules = (
19
+ modules: Module[] = [],
20
+ permissions: PermissionMap = {}
21
+ ): Module[] => {
22
+ if (!Array.isArray(modules) || modules.length <= 0) return []
23
+ return modules
24
+ .map((module) => {
25
+ // Check if the main module's view has "read" permission
26
+ const hasReadPermission = permissions[module.view]?.includes('read')
27
+
28
+ // Validate and filter subModules if they exist
29
+ const validSubModules =
30
+ module.subModules?.filter((subModule: SubModule) =>
31
+ permissions[subModule.view]?.includes('read')
32
+ ) || []
33
+
34
+ // If the module or its subModules don't have read permission, exclude it
35
+ if (!hasReadPermission && validSubModules.length === 0) {
36
+ return null
37
+ }
38
+
39
+ // Return the module with its valid subModules
40
+ return { ...module, subModules: validSubModules }
41
+ })
42
+ .filter(Boolean) as Module[] // Remove null values
43
+ }