npm-pkg-hook 1.12.4 → 1.12.8

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 (354) hide show
  1. package/dist/index.js +57529 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/index.mjs +57315 -0
  4. package/dist/index.mjs.map +1 -0
  5. package/eslint.config.mts +153 -0
  6. package/package.json +30 -45
  7. package/src/config/client/errors.ts +39 -0
  8. package/src/hooks/addTenMinutes/{index.js → index.ts} +4 -4
  9. package/src/hooks/calculateLogLatHaversine/{index.js → index.ts} +15 -4
  10. package/src/hooks/completeSchedules/{index.js → index.ts} +4 -4
  11. package/src/hooks/convertToMilitaryTime/index.ts +18 -0
  12. package/src/hooks/generateStoreURL/index.ts +41 -0
  13. package/src/hooks/generateTemplate/{index.js → index.ts} +15 -11
  14. package/src/hooks/getCardType/{index.js → index.ts} +1 -1
  15. package/src/hooks/getCategoriesWithProduct/{index.js → index.ts} +7 -7
  16. package/src/hooks/getGlobalSession/index.ts +69 -0
  17. package/src/hooks/getSession/index.ts +72 -0
  18. package/src/hooks/getTodayTimestamps/{index.js → index.ts} +18 -12
  19. package/src/hooks/getTotalHours/index.ts +76 -0
  20. package/src/hooks/handleLogin/{index.js → index.ts} +4 -0
  21. package/src/hooks/index.ts +8 -2
  22. package/src/hooks/statusOpenStores/helpers/{index.js → index.ts} +24 -1
  23. package/src/hooks/statusOpenStores/index.ts +221 -0
  24. package/src/hooks/updateExtProductFoodsOptional/{index.js → index.ts} +12 -3
  25. package/src/hooks/useAcumulateDate/index.ts +18 -0
  26. package/src/hooks/useAllStoresPendingToRegister/{index.js → index.ts} +3 -0
  27. package/src/hooks/useAmountInput/index.ts +42 -32
  28. package/src/hooks/useAnimationText/{index.jsx → index.ts} +2 -2
  29. package/src/hooks/useAsideCart/{index.js → index.ts} +22 -19
  30. package/src/hooks/useBanner/{index.js → index.ts} +2 -1
  31. package/src/hooks/useCart/useCart/helpers/{index.js → index.ts} +10 -6
  32. package/src/hooks/useCart/useCart/{index.js → index.ts} +29 -17
  33. package/src/hooks/useCart/useGetCart/{index.js → index.ts} +2 -1
  34. package/src/hooks/useCatWithProduct/{index.js → index.ts} +11 -5
  35. package/src/hooks/useCatWithProduct/types/index.ts +104 -0
  36. package/src/hooks/useCatWithProductClient/{index.js → index.ts} +3 -2
  37. package/src/hooks/useCategoriesProduct/{index.js → index.ts} +2 -1
  38. package/src/hooks/useCategoryInStore/index.ts +167 -0
  39. package/src/hooks/useCategoryStore/{index.js → index.ts} +2 -1
  40. package/src/hooks/useCategoryStore/{queries.js → queries.ts} +2 -2
  41. package/src/hooks/useChartData/{index.js → index.ts} +9 -8
  42. package/src/hooks/useChartData/useChartData/{index.js → index.ts} +31 -30
  43. package/src/hooks/useChartData/useChartDataAllOrders/{index.js → index.ts} +2 -2
  44. package/src/hooks/useCheckbox/{index.js → index.ts} +1 -1
  45. package/src/hooks/useCities/{index.js → index.ts} +2 -1
  46. package/src/hooks/useClients/{index.js → index.ts} +2 -1
  47. package/src/hooks/useClients/{queries.js → queries.ts} +7 -4
  48. package/src/hooks/useColorByLetters/helpers/{alea.js → alea.ts} +19 -0
  49. package/src/hooks/useColorByLetters/helpers/{index.js → index.ts} +5 -1
  50. package/src/hooks/useColorByLetters/helpers/{mersenne_twister.js → mersenne_twister.ts} +1 -1
  51. package/src/hooks/useColorByLetters/{index.js → index.ts} +3 -6
  52. package/src/hooks/useConnection/{index.js → index.ts} +3 -3
  53. package/src/hooks/useCountries/{index.js → index.ts} +2 -1
  54. package/src/hooks/useCreateOrderStatusType/index.ts +8 -6
  55. package/src/hooks/useCreateProduct/helpers/{index.js → index.ts} +1 -1
  56. package/src/hooks/useCreateProduct/helpers/manageCacheDataCatProduct/{index.js → index.ts} +1 -1
  57. package/src/hooks/useCreateProduct/helpers/useEditImageProduct/{index.js → index.ts} +14 -8
  58. package/src/hooks/useCreateProduct/{index.js → index.ts} +22 -19
  59. package/src/hooks/useCreateStorePendingToRegister/{index.js → index.ts} +5 -1
  60. package/src/hooks/useDeleteExtraProductFoods/{index.js → index.ts} +2 -1
  61. package/src/hooks/useDeleteSubProductOptional/{index.js → index.ts} +5 -3
  62. package/src/hooks/useDeliveryTime/{index.js → index.ts} +3 -1
  63. package/src/hooks/useDepartments/{index.js → index.ts} +2 -1
  64. package/src/hooks/useDessert/{index.js → index.ts} +56 -52
  65. package/src/hooks/useDessertWithPrice/helpers/{index.js → index.ts} +4 -4
  66. package/src/hooks/useDessertWithPrice/{index.js → index.ts} +34 -26
  67. package/src/hooks/useDevWS/index.ts +43 -43
  68. package/src/hooks/useDevices/{useGetDevices.js → useGetDevices.ts} +3 -3
  69. package/src/hooks/useDevices/{useRegisterDevices.js → useRegisterDevices.ts} +5 -5
  70. package/src/hooks/useDownloadReports/helpers/downloadFileFromResponse.ts +17 -17
  71. package/src/hooks/useDownloadReports/useDownloadReportByDay/index.ts +4 -2
  72. package/src/hooks/useDownloadReports/useGetReportByDateRange/index.ts +3 -2
  73. package/src/hooks/useDrag/{index.js → index.ts} +16 -0
  74. package/src/hooks/useDropzone/{index.js → index.ts} +2 -2
  75. package/src/hooks/useDynamicAuth/{index.js → index.ts} +2 -1
  76. package/src/hooks/useEditCategory/{index.js → index.ts} +5 -5
  77. package/src/hooks/useEditOneExtProductFoodOptional/index.ts +28 -0
  78. package/src/hooks/useEditOneExtProductFoodOptional/{queries.js → queries.ts} +2 -2
  79. package/src/hooks/useEditSubProductOptional/index.ts +12 -0
  80. package/src/hooks/useEmployee/{index.js → index.ts} +2 -1
  81. package/src/hooks/useEmployee/{queries.js → queries.ts} +1 -1
  82. package/src/hooks/useEmployee/{useCreateEmployee.js → useCreateEmployee.ts} +6 -2
  83. package/src/hooks/useFavoriteStores/{index.js → index.ts} +5 -3
  84. package/src/hooks/useFetchMoreInteractions/index.jsx +26 -26
  85. package/src/hooks/useFilterConfigs/index.ts +173 -0
  86. package/src/hooks/useFingerprintjs/{index.js → index.ts} +29 -4
  87. package/src/hooks/useFormTools/{index.js → index.ts} +38 -11
  88. package/src/hooks/useFormatDate/{index.js → index.ts} +10 -5
  89. package/src/hooks/useFullScreenMode/{index.js → index.ts} +1 -5
  90. package/src/hooks/useGetAllLocationUser/{index.js → index.ts} +2 -1
  91. package/src/hooks/useGetAllLocationUser/{queries.js → queries.ts} +2 -2
  92. package/src/hooks/{useSales/useGetAllSales/index.js → useGetAllSales/index.ts} +3 -2
  93. package/src/hooks/useGetExtProductFoodsSubOptionalAll/{index.js → index.ts} +2 -1
  94. package/src/hooks/useGetFoodRecomended/{index.js → index.ts} +2 -1
  95. package/src/hooks/useGetMinPrice/{index.js → index.ts} +2 -1
  96. package/src/hooks/useGetOneStoreRating/{index.js → index.ts} +2 -1
  97. package/src/hooks/useGetStoreCookie/{index.js → index.ts} +1 -1
  98. package/src/hooks/useGoogleLogin/{index.js → index.ts} +14 -5
  99. package/src/hooks/useHover/{index.js → index.ts} +3 -0
  100. package/src/hooks/useImageOptimization/{index.js → index.ts} +4 -0
  101. package/src/hooks/useImageUploaderProduct/helper/canvasUtils.ts +25 -9
  102. package/src/hooks/useImageUploaderProduct/helper/getOrientation.ts +5 -4
  103. package/src/hooks/useImageUploaderProduct/index.ts +227 -224
  104. package/src/hooks/useImageWeight/{index.js → index.ts} +4 -0
  105. package/src/hooks/useImagesStore/{index.js → index.ts} +7 -5
  106. package/src/hooks/useImagesStore/{queries.js → queries.ts} +1 -1
  107. package/src/hooks/useIncomingOrders/{index.js → index.ts} +2 -1
  108. package/src/hooks/useIncomingOrders/{queries.js → queries.ts} +1 -1
  109. package/src/hooks/useIntersection/{index.js → index.ts} +1 -1
  110. package/src/hooks/useInventory/{queries.js → queries.ts} +2 -2
  111. package/src/hooks/useInventory/{useGetProductsInStock.js → useGetProductsInStock.ts} +2 -1
  112. package/src/hooks/useLazyScript/{index.js → index.ts} +3 -0
  113. package/src/hooks/useLocalSorage/{index.js → index.ts} +3 -3
  114. package/src/hooks/useLocationManager/{index.js → index.ts} +3 -3
  115. package/src/hooks/useLoginEmployeeInStore/{index.js → index.ts} +1 -1
  116. package/src/hooks/useLogout/helpers/BroadcastChannel.ts +74 -0
  117. package/src/hooks/useLogout/helpers/{apiBaseUrl.js → apiBaseUrl.ts} +4 -0
  118. package/src/hooks/useLogout/helpers/{fetchData.js → fetchData.ts} +10 -1
  119. package/src/hooks/useLogout/helpers/{getCsrfToken.js → getCsrfToken.ts} +8 -1
  120. package/src/hooks/useLogout/helpers/{index.js → index.ts} +14 -6
  121. package/src/hooks/useLogout/helpers/{logger.js → logger.ts} +26 -8
  122. package/src/hooks/useLogout/helpers/{parseUrl.js → parseUrl.ts} +5 -2
  123. package/src/hooks/useLogout/{index.js → index.ts} +29 -20
  124. package/src/hooks/useManageNewOrder/helpers/{index.js → index.ts} +1 -1
  125. package/src/hooks/useManageNewOrder/{index.js → index.ts} +6 -4
  126. package/src/hooks/useManageQueryParams/index.ts +120 -0
  127. package/src/hooks/useModules/helpers/{validateModules.js → validateModules.ts} +1 -1
  128. package/src/hooks/useModules/index.ts +124 -0
  129. package/src/hooks/useMouse/index.ts +23 -18
  130. package/src/hooks/useOrderStatusTypes/useOrderStatusTypes/index.ts +1 -1
  131. package/src/hooks/useOrderStatusTypes/useUpdateOrderStatusPriorities/index.ts +7 -5
  132. package/src/hooks/useOrders/{queries.js → queries.ts} +30 -20
  133. package/src/hooks/useOrders/useChangeOrderState/index.ts +79 -76
  134. package/src/hooks/useOrders/useOrdersFromStore/index.ts +4 -3
  135. package/src/hooks/usePaymentMethod/index.ts +3 -0
  136. package/src/hooks/usePaymentMethod/paymentMethod.gql.ts +62 -0
  137. package/src/hooks/usePaymentMethod/paymentMethod.types.ts +28 -0
  138. package/src/hooks/usePaymentMethod/useCreatePaymentMethod/index.ts +25 -0
  139. package/src/hooks/usePaymentMethod/useGetAllPaymentMethods/index.ts +19 -0
  140. package/src/hooks/usePaymentMethod/useGetPaymentMethod/index.ts +26 -0
  141. package/src/hooks/usePrintSaleTicket/index.ts +4 -0
  142. package/src/hooks/useProductsFood/{index.js → index.ts} +115 -27
  143. package/src/hooks/useProductsFood/{queriesStore.js → queriesStore.ts} +1 -1
  144. package/src/hooks/useProductsFood/{useEditProduct.js → useEditProduct.ts} +2 -1
  145. package/src/hooks/useProductsFood/{usetagsProducts.js → usetagsProducts.ts} +6 -3
  146. package/src/hooks/useProviders/useProvidersCreateStore/{index.js → index.ts} +2 -1
  147. package/src/hooks/useProviders/useProvidersDataStore/{index.js → index.ts} +2 -1
  148. package/src/hooks/useProvidersStore/{index.js → index.ts} +2 -1
  149. package/src/hooks/usePushNotificationOrder/{index.js → index.ts} +1 -1
  150. package/src/hooks/usePushNotifications/helpers/{index.js → index.ts} +9 -0
  151. package/src/hooks/usePushNotifications/{index.js → index.ts} +2 -1
  152. package/src/hooks/useQueryLocationsMap/{index.js → index.ts} +2 -1
  153. package/src/hooks/useRatingArrayData/{index.js → index.ts} +4 -4
  154. package/src/hooks/useRatingArrayData/{queries.js → queries.ts} +1 -1
  155. package/src/hooks/useRemoveExtraProductFoodsOptional/{index.js → index.ts} +2 -1
  156. package/src/hooks/useReport/{index.js → index.ts} +2 -1
  157. package/src/hooks/useReport/{queries.js → queries.ts} +2 -53
  158. package/src/hooks/useRestaurant/helpers/{index.js → index.ts} +4 -0
  159. package/src/hooks/useRestaurant/helpers/{manageStatusOpen.js → manageStatusOpen.ts} +1 -1
  160. package/src/hooks/useRestaurant/{index.js → index.ts} +5 -3
  161. package/src/hooks/useRoads/{index.js → index.ts} +2 -1
  162. package/src/hooks/useRoles/{queries.js → queries.ts} +1 -1
  163. package/src/hooks/useRoles/{useCreateRole.js → useCreateRole.ts} +4 -1
  164. package/src/hooks/useRoles/{useGetRoles.js → useGetRoles.ts} +2 -1
  165. package/src/hooks/useSales/helpers/add-product.utils.ts +120 -0
  166. package/src/hooks/useSales/helpers/apply-discount-to-cart.utils.ts +292 -0
  167. package/src/hooks/useSales/helpers/comment-product.utils.ts +41 -0
  168. package/src/hooks/useSales/helpers/constants/index.ts +38 -0
  169. package/src/hooks/useSales/helpers/extras.utils.ts +42 -0
  170. package/src/hooks/useSales/helpers/filterProductsByCarProId.utils.ts +17 -0
  171. package/src/hooks/useSales/helpers/increment-product-quantity.utils.ts +76 -0
  172. package/src/hooks/useSales/helpers/index.ts +3 -0
  173. package/src/hooks/useSales/helpers/initializer.utils.ts +22 -0
  174. package/src/hooks/useSales/helpers/isStockInsufficient.ts +3 -0
  175. package/src/hooks/useSales/helpers/remove-product.utils.test.ts +49 -0
  176. package/src/hooks/useSales/helpers/remove-product.utils.ts +34 -0
  177. package/src/hooks/useSales/helpers/resolveProduct.ts +29 -0
  178. package/src/hooks/useSales/helpers/useAddToCart.ts +64 -0
  179. package/src/hooks/useSales/{index.js → index.ts} +559 -522
  180. package/src/hooks/useSales/{queries.js → queries.ts} +187 -79
  181. package/src/hooks/useSales/types/index.ts +206 -0
  182. package/src/hooks/useSales/types/use-sales.types.ts +8 -0
  183. package/src/hooks/useSales/{useGetSale.js → useGetSale.ts} +10 -2
  184. package/src/hooks/useSales/{useTotalSales.js → useTotalSales.ts} +2 -1
  185. package/src/hooks/useSaveAvailableProduct/helpers/{index.js → index.ts} +4 -4
  186. package/src/hooks/useSaveAvailableProduct/{index.js → index.ts} +2 -1
  187. package/src/hooks/useSaveLocation/{index.js → index.ts} +2 -1
  188. package/src/hooks/useSaveLocation/{queries.js → queries.ts} +1 -1
  189. package/src/hooks/useSchedule/{index.jsx → index.ts} +14 -1
  190. package/src/hooks/useSchedule/{index.js → schedule.ts} +2 -1
  191. package/src/hooks/useScheduleData/{index.js → index.ts} +21 -9
  192. package/src/hooks/useSetImageProducts/{index.js → index.ts} +4 -2
  193. package/src/hooks/useSetupSchedule/{index.js → index.ts} +40 -28
  194. package/src/hooks/useStatusOpenStore/helpers/{index.js → index.ts} +24 -1
  195. package/src/hooks/useStatusOpenStore/{index.js → index.ts} +30 -14
  196. package/src/hooks/useStatusOrdersClient/{index.js → index.ts} +3 -2
  197. package/src/hooks/useStatusOrdersClient/{queries.js → queries.ts} +2 -2
  198. package/src/hooks/useStock/index.ts +1 -0
  199. package/src/hooks/useStock/useStockUpdatedAllSubscription.ts +40 -0
  200. package/src/hooks/useStockMovements/helpers/{index.js → index.ts} +1 -1
  201. package/src/hooks/useStockMovements/{index.js → index.ts} +4 -3
  202. package/src/hooks/useStore/{index.js → index.ts} +30 -27
  203. package/src/hooks/useStoreContacts/{index.js → index.ts} +11 -5
  204. package/src/hooks/useStoreTable/{useStoreTableCreate.js → useStoreTableCreate.ts} +3 -2
  205. package/src/hooks/useStoreTable/{useStoreTables.js → useStoreTables.ts} +2 -1
  206. package/src/hooks/useSubscriptionValidation/index.ts +112 -0
  207. package/src/hooks/useTagProducts/useDeleteOneTag.ts +66 -66
  208. package/src/hooks/useTagProducts/useGetAllTags.ts +2 -2
  209. package/src/hooks/useTagProducts/useRegisterMultipleTags.ts +27 -26
  210. package/src/hooks/useTheme/index.ts +65 -0
  211. package/src/hooks/useTimeAgo/{useTimeAgo.js → useTimeAgo.ts} +7 -7
  212. package/src/hooks/useTokenCards/{index.js → index.ts} +7 -3
  213. package/src/hooks/useUpdateCart/{index.js → index.ts} +3 -2
  214. package/src/hooks/useUpdateCartCookie/{index.js → index.ts} +23 -6
  215. package/src/hooks/useUpdateDashboardComponent/index.ts +11 -11
  216. package/src/hooks/useUpdateExtProductFoodsSubOptional/{index.js → index.ts} +2 -1
  217. package/src/hooks/useUpdateModuleOrder/{index.js → index.ts} +2 -2
  218. package/src/hooks/useUpdateMultipleExtProduct/{index.js → index.ts} +2 -1
  219. package/src/hooks/useUpdateMultipleProducts/{index.js → index.ts} +57 -20
  220. package/src/hooks/useUploadProducts/helpers/{parseNumber.js → parseNumber.ts} +3 -3
  221. package/src/hooks/useUploadProducts/{index.js → index.ts} +89 -69
  222. package/src/hooks/useUpsertGoal/{index.js → index.ts} +1 -1
  223. package/src/hooks/useUser/{index.js → index.ts} +5 -4
  224. package/src/hooks/useWeeklyStockMovement/helpers/{index.js → index.ts} +3 -3
  225. package/src/hooks/useWeeklyStockMovement/{index.js → index.ts} +4 -3
  226. package/src/hooks/useWindowSize/{index.js → index.ts} +9 -2
  227. package/src/index.ts +13 -0
  228. package/src/security/index.ts +1 -0
  229. package/src/services/index.ts +1 -0
  230. package/src/utils/UtilDateRange.ts +56 -0
  231. package/src/utils/generateCode.ts +222 -0
  232. package/src/utils/index.ts +2 -0
  233. package/src/utils/{index.js → utils.ts} +69 -31
  234. package/tsconfig.eslint.json +16 -0
  235. package/tsconfig.json +18 -2
  236. package/tsup.config.ts +24 -0
  237. package/.eslintrc.js +0 -38
  238. package/.eslintrc.json +0 -127
  239. package/src/config/client/errors.js +0 -26
  240. package/src/hooks/convertToMilitaryTime/index.js +0 -14
  241. package/src/hooks/generateStoreURL/index.js +0 -38
  242. package/src/hooks/getGlobalSession/index.js +0 -49
  243. package/src/hooks/getSession/index.js +0 -18
  244. package/src/hooks/getTotalHours/index.js +0 -48
  245. package/src/hooks/statusOpenStores/index.js +0 -156
  246. package/src/hooks/useAcumulateDate/index.js +0 -16
  247. package/src/hooks/useCategoryInStore/index.js +0 -100
  248. package/src/hooks/useEditOneExtProductFoodOptional/index.js +0 -28
  249. package/src/hooks/useEditSubProductOptional/index.js +0 -11
  250. package/src/hooks/useLogout/helpers/BroadcastChannel.js +0 -31
  251. package/src/hooks/useManageQueryParams/index.js +0 -40
  252. package/src/hooks/useModules/index.js +0 -58
  253. package/src/hooks/useSales/helpers/index.js +0 -55
  254. package/src/hooks/useSubscriptionValidation/index.js +0 -41
  255. package/src/index.jsx +0 -9
  256. package/src/security/index.js +0 -1
  257. package/src/utils/UtilDateRange.js +0 -31
  258. /package/src/config/client/{index.js → index.ts} +0 -0
  259. /package/src/config/content/{index.js → index.ts} +0 -0
  260. /package/src/cookies/{index.js → index.ts} +0 -0
  261. /package/src/hooks/getCategoriesWithProduct/helpers/{index.js → index.ts} +0 -0
  262. /package/src/hooks/isTokenExpired/{index.js → index.ts} +0 -0
  263. /package/src/hooks/newMessageSubscription/{index.js → index.ts} +0 -0
  264. /package/src/hooks/newStoreOrderSubscription/{index.js → index.ts} +0 -0
  265. /package/src/hooks/useAnimationFrame/{index.js → index.ts} +0 -0
  266. /package/src/hooks/useAsideCart/helpers/{index.js → index.ts} +0 -0
  267. /package/src/hooks/useAsideCart/{queries.js → queries.ts} +0 -0
  268. /package/src/hooks/useCart/{index.js → index.ts} +0 -0
  269. /package/src/hooks/useCart/{queries.js → queries.ts} +0 -0
  270. /package/src/hooks/useCatWithProduct/{queries.js → queries.ts} +0 -0
  271. /package/src/hooks/useCatWithProductClient/{queries.js → queries.ts} +0 -0
  272. /package/src/hooks/useCategoriesProduct/{queries.js → queries.ts} +0 -0
  273. /package/src/hooks/useCategoryInStore/{queries.js → queries.ts} +0 -0
  274. /package/src/hooks/useChatRoomSubscription/{index.js → index.ts} +0 -0
  275. /package/src/hooks/useCities/{queries.js → queries.ts} +0 -0
  276. /package/src/hooks/useColorByLetters/helpers/{colors.js → colors.ts} +0 -0
  277. /package/src/hooks/useCountries/{queries.js → queries.ts} +0 -0
  278. /package/src/hooks/useCreateDeliveryTime/{index.js → index.ts} +0 -0
  279. /package/src/hooks/useCreateStorePendingToRegister/{queries.js → queries.ts} +0 -0
  280. /package/src/hooks/useDashboardComponents/{index.js → index.ts} +0 -0
  281. /package/src/hooks/useDeleteSubProductOptional/{queries.js → queries.ts} +0 -0
  282. /package/src/hooks/useDepartments/{queries.js → queries.ts} +0 -0
  283. /package/src/hooks/useDessert/helpers/{index.js → index.ts} +0 -0
  284. /package/src/hooks/useDessertWithPrice/{queries.js → queries.ts} +0 -0
  285. /package/src/hooks/useDevices/{index.js → index.ts} +0 -0
  286. /package/src/hooks/useDevices/{queries.js → queries.ts} +0 -0
  287. /package/src/hooks/useDynamicAuth/{queries.js → queries.ts} +0 -0
  288. /package/src/hooks/useEditSubProductOptional/{queries.js → queries.ts} +0 -0
  289. /package/src/hooks/useEvent/{index.js → index.ts} +0 -0
  290. /package/src/hooks/useFavoriteStores/{queries.js → queries.ts} +0 -0
  291. /package/src/hooks/useFetchJson/{index.js → index.ts} +0 -0
  292. /package/src/hooks/useFormatNumberPhone/{index.js → index.ts} +0 -0
  293. /package/src/hooks/useGenerateNumberArray/{index.js → index.ts} +0 -0
  294. /package/src/hooks/useGetCookies/{index.js → index.ts} +0 -0
  295. /package/src/hooks/useGetFoodRecomended/{queries.js → queries.ts} +0 -0
  296. /package/src/hooks/useGetMessagesToRoom/{index.js → index.ts} +0 -0
  297. /package/src/hooks/useGetMinPrice/{queries.js → queries.ts} +0 -0
  298. /package/src/hooks/useGetOneStoreRating/{queries.js → queries.ts} +0 -0
  299. /package/src/hooks/useGetSalesAmountToday/{index.js → index.ts} +0 -0
  300. /package/src/hooks/useGoogleLogin/{loadScript.js → loadScript.ts} +0 -0
  301. /package/src/hooks/useGoogleLogin/{removeScript.js → removeScript.ts} +0 -0
  302. /package/src/hooks/useImagesStore/utils/{index.js → index.ts} +0 -0
  303. /package/src/hooks/useInnerHtml/{index.js → index.ts} +0 -0
  304. /package/src/hooks/useInventory/{index.js → index.ts} +0 -0
  305. /package/src/hooks/useInventory/{useUpdateManageStock.js → useUpdateManageStock.ts} +0 -0
  306. /package/src/hooks/useKeypress/{index.js → index.ts} +0 -0
  307. /package/src/hooks/useLocalBackendIp/{index.js → index.ts} +0 -0
  308. /package/src/hooks/useLocationNavigate/{index.js → index.ts} +0 -0
  309. /package/src/hooks/useManageNewOrder/helpers/{mock.js → mock.ts} +0 -0
  310. /package/src/hooks/useMobile/{index.js → index.ts} +0 -0
  311. /package/src/hooks/useModules/helpers/{index.js → index.ts} +0 -0
  312. /package/src/hooks/useMutateHeight/{index.js → index.ts} +0 -0
  313. /package/src/hooks/useOrderClient/{index.js → index.ts} +0 -0
  314. /package/src/hooks/useOrders/{index.js → index.ts} +0 -0
  315. /package/src/hooks/usePWAInstall/{index.js → index.ts} +0 -0
  316. /package/src/{services/index.js → hooks/useProductsFood/types/index.ts} +0 -0
  317. /package/src/hooks/useProviders/{index.js → index.ts} +0 -0
  318. /package/src/hooks/useProviders/{queries.js → queries.ts} +0 -0
  319. /package/src/hooks/useProvidersStore/{queries.js → queries.ts} +0 -0
  320. /package/src/hooks/useQueryLocationsMap/{queries.js → queries.ts} +0 -0
  321. /package/src/hooks/useReactToPrint/{index.js → index.txt} +0 -0
  322. /package/src/hooks/useRemoveExtraProductFoodsOptional/{queries.js → queries.ts} +0 -0
  323. /package/src/hooks/useRestaurant/{queries.js → queries.ts} +0 -0
  324. /package/src/hooks/useRoads/{queries.js → queries.ts} +0 -0
  325. /package/src/hooks/useRoles/{index.js → index.ts} +0 -0
  326. /package/src/hooks/useRoles/{useRemoveRoles.js → useRemoveRoles.ts} +0 -0
  327. /package/src/hooks/useRoles/{useUpdateRolesPriority.js → useUpdateRolesPriority.ts} +0 -0
  328. /package/src/hooks/useSaveAvailableProduct/{queries.js → queries.ts} +0 -0
  329. /package/src/hooks/useSchedule/{queries.js → queries.ts} +0 -0
  330. /package/src/hooks/useScroll/{index.js → index.ts} +0 -0
  331. /package/src/hooks/useScrollRotate/{index.js → index.ts} +0 -0
  332. /package/src/hooks/useSetImageProducts/{queries.js → queries.ts} +0 -0
  333. /package/src/hooks/useSetSession/{index.js → index.ts} +0 -0
  334. /package/src/hooks/useSetState/{index.js → index.ts} +0 -0
  335. /package/src/hooks/useSetupSchedule/helpers/{index.js → index.ts} +0 -0
  336. /package/src/hooks/useStatusOrdersClient/helpers/{index.js → index.ts} +0 -0
  337. /package/src/hooks/useStore/{queries.js → queries.ts} +0 -0
  338. /package/src/hooks/useStoreCalendar/{index.js → index.ts} +0 -0
  339. /package/src/hooks/useStoreContacts/{queries.js → queries.ts} +0 -0
  340. /package/src/hooks/useStoreTable/{index.js → index.ts} +0 -0
  341. /package/src/hooks/useStoreTable/{queries.js → queries.ts} +0 -0
  342. /package/src/hooks/useTopProductsMovements/{index.js → index.ts} +0 -0
  343. /package/src/hooks/useTotalAllSales/{index.js → index.ts} +0 -0
  344. /package/src/hooks/useTotalProductsInStock/{index.js → index.ts} +0 -0
  345. /package/src/hooks/useTotalProductsSold/{index.js → index.ts} +0 -0
  346. /package/src/hooks/useTotalProductsSolded/{index.js → index.ts} +0 -0
  347. /package/src/hooks/useUpdateExistingOrders/{index.js → index.ts} +0 -0
  348. /package/src/hooks/useUpdateMultipleExtProduct/{queries.js → queries.ts} +0 -0
  349. /package/src/hooks/useUpdateMultipleProducts/{queries.js → queries.ts} +0 -0
  350. /package/src/hooks/useUploadProducts/helpers/{index.js → index.ts} +0 -0
  351. /package/src/hooks/useUploadProducts/helpers/{validateProductDataExcel.js → validateProductDataExcel.ts} +0 -0
  352. /package/src/hooks/useUser/{queries.js → queries.ts} +0 -0
  353. /package/src/mock/dessert/{index.js → index.ts} +0 -0
  354. /package/src/mock/{index.js → index.ts} +0 -0
@@ -0,0 +1,26 @@
1
+ 'use client'
2
+
3
+ import { useQuery } from '@apollo/client'
4
+
5
+ import { GET_PAYMENT_METHOD } from '../paymentMethod.gql'
6
+ import { PaymentMethod } from '../paymentMethod.types'
7
+
8
+ interface Props {
9
+ payId: string
10
+ }
11
+
12
+ export const useGetPaymentMethod = ({ payId }: Props) => {
13
+ const { data, loading, error } = useQuery<{ getPaymentMethod: PaymentMethod }>(
14
+ GET_PAYMENT_METHOD,
15
+ {
16
+ variables: { payId },
17
+ skip: !payId
18
+ }
19
+ )
20
+
21
+ return {
22
+ paymentMethod: data?.getPaymentMethod,
23
+ loading,
24
+ error
25
+ }
26
+ }
@@ -38,6 +38,10 @@ const PRINT_SALE_TICKET = gql`
38
38
  HOOK
39
39
  ------------------------------ */
40
40
 
41
+ /**
42
+ *
43
+ * @param options
44
+ */
41
45
  export function usePrintSaleTicket(
42
46
  options?: MutationHookOptions<PrintSaleTicketResponse, PrintSaleTicketVars>
43
47
  ) {
@@ -1,9 +1,13 @@
1
1
  import {
2
+ useApolloClient,
2
3
  useLazyQuery,
3
4
  useMutation,
4
5
  useQuery
5
6
  } from '@apollo/client'
6
- import { useState } from 'react'
7
+ import { useCallback, useMemo, useState } from 'react'
8
+
9
+ import { useStockUpdatedAllSubscription } from '../useStock'
10
+
7
11
  import {
8
12
  GET_ALL_EXTRA_PRODUCT,
9
13
  GET_ALL_PRODUCT_STORE,
@@ -13,7 +17,24 @@ import {
13
17
  } from './queriesStore'
14
18
  export * from './useEditProduct'
15
19
 
20
+ interface UseProductsFoodOptions {
21
+ idStore?: string | null
22
+ categories?: string[]
23
+ desc?: string[]
24
+ fetchPolicy?: 'cache-first' | 'cache-and-network' | 'network-only' | 'no-cache'
25
+ fromDate?: string | null
26
+ gender?: string[]
27
+ max?: number
28
+ min?: number | null
29
+ pState?: number
30
+ search?: string | null
31
+ toDate?: string | null
32
+ dataSale?: Array<{ pId: string }>
33
+ isShopppingCard?: boolean
34
+ callback: (args: any) => void
35
+ }
16
36
  export const useProductsFood = ({
37
+ idStore = null,
17
38
  categories = [],
18
39
  desc = [],
19
40
  fetchPolicy = 'cache-and-network',
@@ -25,29 +46,91 @@ export const useProductsFood = ({
25
46
  search = null,
26
47
  toDate = null,
27
48
  dataSale = [],
28
- isShopppingCard = false
29
- }) => {
49
+ isShopppingCard = false,
50
+ callback
51
+ }: UseProductsFoodOptions) => {
30
52
  const [showMore, setShowMore] = useState(500)
53
+ const client = useApolloClient()
54
+ const variables = useMemo(() => {return {
55
+ categories,
56
+ desc,
57
+ gender,
58
+ max,
59
+ min,
60
+ pState,
61
+ search
62
+ }}, [categories, desc, gender, max, min, pState, search, callback])
31
63
 
32
64
  const { data, loading, fetchMore, refetch, error, called } = useQuery(GET_ALL_PRODUCT_STORE, {
65
+ onCompleted: (data) => {
66
+ callback(data)
67
+ },
33
68
  fetchPolicy,
34
69
  notifyOnNetworkStatusChange: true,
35
70
  nextFetchPolicy: 'cache-first',
36
71
  refetchWritePolicy: 'merge',
37
- variables: {
38
- categories,
39
- desc,
40
- // fromDate,
41
- gender,
42
- max,
43
- min,
44
- pState,
45
- search
46
- // toDate
47
- }
72
+ variables
48
73
  })
49
74
 
50
75
  const productsFood = data?.productFoodsAll?.data ?? []
76
+ /**
77
+ * Callback when subscription emits a stock update.
78
+ * Updates Apollo cache for GET_ALL_PRODUCT_STORE with same variables so UI updates reactively.
79
+ */
80
+ const onStockUpdated = useCallback(
81
+ (payload: any) => {
82
+ try {
83
+ if (!payload || !payload.pId) return
84
+
85
+ // Try to read current query result from cache (may throw if not present)
86
+ const cached = client.readQuery({
87
+ query: GET_ALL_PRODUCT_STORE,
88
+ variables
89
+ })
90
+
91
+ if (!cached?.productFoodsAll?.data) return
92
+
93
+ const updatedData = cached.productFoodsAll.data.map((prod: any) => {
94
+ if (!prod || prod.pId !== payload.pId) return prod
95
+
96
+ // update stock in-place preserving other fields; prefer 'stock' field name but keep others
97
+ return {
98
+ ...prod,
99
+ // if your product model uses another field name replace 'stock' accordingly
100
+ stock: payload.newStock,
101
+ previousStock: payload.previousStock ?? prod.previousStock ?? null,
102
+ // keep a meta object with event info for UI if needed
103
+ lastStockEvent: {
104
+ event: payload.event,
105
+ meta: payload.meta
106
+ }
107
+ }
108
+ })
109
+
110
+ // Write back to cache so queries using GET_ALL_PRODUCT_STORE update automatically
111
+ client.writeQuery({
112
+ query: GET_ALL_PRODUCT_STORE,
113
+ variables,
114
+ data: {
115
+ ...cached,
116
+ productFoodsAll: {
117
+ ...cached.productFoodsAll,
118
+ data: updatedData
119
+ }
120
+ }
121
+ })
122
+ } catch (err) {
123
+ // be silent but log for debugging
124
+ // (don't throw — subscription should not break the app)
125
+
126
+ console.error('useProductsFood: failed updating cache from subscription', err)
127
+ }
128
+ },
129
+ // include all variables that affect the cache key
130
+ [client, JSON.stringify(variables)]
131
+ )
132
+ // Attach subscription only if idStore is provided (the subscription hook internally skips when idStore is falsy)
133
+ useStockUpdatedAllSubscription(idStore ?? '', onStockUpdated)
51
134
 
52
135
  if (!isShopppingCard) {
53
136
  return [
@@ -63,13 +146,14 @@ export const useProductsFood = ({
63
146
  ]
64
147
  }
65
148
 
66
- const updatedProductsFood = productsFood.map(product => ({
149
+ const updatedProductsFood = productsFood.map((product: any) => {return {
67
150
  ...product,
68
- existsInSale: Array.isArray(dataSale) && dataSale.some(item => item.pId === product.pId)
69
- }))
151
+ existsInSale: Array.isArray(dataSale) && dataSale.some(item => {return item.pId === product.pId})
152
+ }})
70
153
 
71
154
  return [
72
- updatedProductsFood, {
155
+ updatedProductsFood,
156
+ {
73
157
  pagination: data?.productFoodsAll?.pagination || {},
74
158
  loading: called ? false : loading,
75
159
  error,
@@ -99,10 +183,10 @@ export const useDeleteProductsFood = ({
99
183
  pState
100
184
  }
101
185
  },
102
- update (cache) {
186
+ update(cache) {
103
187
  cache.modify({
104
188
  fields: {
105
- productFoodsAll (dataOld = []) {
189
+ productFoodsAll(dataOld = []) {
106
190
  if (Array.isArray(dataOld) && dataOld?.length) {
107
191
  const product = dataOld?.find((product) => {
108
192
  return product.pId === pId
@@ -114,15 +198,15 @@ export const useDeleteProductsFood = ({
114
198
  return newProductList
115
199
  }
116
200
  return dataOld
117
- } else {
118
- return []
119
- }
201
+ }
202
+ return []
203
+
120
204
  }
121
205
  }
122
206
  })
123
207
  cache.modify({
124
208
  fields: {
125
- getCatProductsWithProduct (dataOld = []) {
209
+ getCatProductsWithProduct(dataOld = []) {
126
210
  if (Array.isArray(dataOld?.catProductsWithProduct) && dataOld?.catProductsWithProduct?.length) {
127
211
  const newListCatProducts = dataOld?.catProductsWithProduct?.map((categories) => {
128
212
  return {
@@ -218,7 +302,10 @@ export const useExtProductFoodsOptionalAll = () => {
218
302
  }]
219
303
  }
220
304
 
221
- export const useGetOneProductsFood = ({ fetchOnlyProduct = false } = {}) => {
305
+ interface UseGetOneProductsFoodOptions {
306
+ fetchOnlyProduct?: boolean
307
+ }
308
+ export const useGetOneProductsFood = ({ fetchOnlyProduct = false }: UseGetOneProductsFoodOptions = {}) => {
222
309
  const [productFoodsOne,
223
310
  {
224
311
  data,
@@ -228,16 +315,17 @@ export const useGetOneProductsFood = ({ fetchOnlyProduct = false } = {}) => {
228
315
 
229
316
  const [handleGetExtProductFood, { data: dataOptional }] = useExtProductFoodsOptionalAll()
230
317
  const [handleExtProductFoodsAll, { data: dataExtra }] = useExtProductFoodsAll()
231
- const handleGetOneProduct = async (food) => {
318
+ const handleGetOneProduct = async (food: any) => {
232
319
  const { pId } = food
233
320
  try {
234
- productFoodsOne({
321
+ const product = await productFoodsOne({
235
322
  variables: {
236
323
  pId
237
324
  }
238
325
  })
239
326
  if (!fetchOnlyProduct) handleGetExtProductFood(pId)
240
327
  if (!fetchOnlyProduct) handleExtProductFoodsAll(pId)
328
+ return product
241
329
  } catch (e) {
242
330
  console.log(e)
243
331
  }
@@ -204,7 +204,7 @@ export const GET_MIN_PEDIDO = gql`
204
204
  }
205
205
  `
206
206
 
207
- // eslint-disable-next-line camelcase
207
+
208
208
  export const GET_All_RATING_STORE = gql`
209
209
  query getAllRating($idStore: ID) {
210
210
  getAllRating(idStore: $idStore) {
@@ -1,4 +1,5 @@
1
- import { useMutation } from '@apollo/client'
1
+ import { useMutation } from '@apollo/client'
2
+
2
3
  import { EDIT_PRODUCT } from './queriesStore'
3
4
 
4
5
  export const useEditProduct = ({
@@ -1,7 +1,10 @@
1
- import { useState } from 'react'
2
1
  import { useMutation } from '@apollo/client'
3
- import { REGISTER_TAGS_PRODUCT } from './queriesStore'
4
- import { useDeleteOneTag, useGetAllTags } from '../useTagProducts'
2
+ import { useState } from 'react'
3
+
4
+ import { useDeleteOneTag, useGetAllTags } from '../useTagProducts'
5
+
6
+ import { REGISTER_TAGS_PRODUCT } from './queriesStore'
7
+
5
8
 
6
9
  export const useTagsProducts = ({
7
10
  sendNotification = () => { }
@@ -1,4 +1,5 @@
1
- import { useMutation } from '@apollo/client'
1
+ import { useMutation } from '@apollo/client'
2
+
2
3
  import { CREATE_PROVIDERS } from '../queries'
3
4
 
4
5
  export const useProvidersCreateStore = ({ setAlertBox = () => { } } = {}) => {
@@ -1,4 +1,5 @@
1
- import { useQuery } from '@apollo/client'
1
+ import { useQuery } from '@apollo/client'
2
+
2
3
  import { GET_ALL_PROVIDERS } from '../queries'
3
4
 
4
5
  export const useProvidersStore = () => {
@@ -1,4 +1,5 @@
1
- import { useQuery } from '@apollo/client'
1
+ import { useQuery } from '@apollo/client'
2
+
2
3
  import { GET_ALL_PROVIDERS } from './queries'
3
4
 
4
5
  export const useProvidersStore = () => {
@@ -13,7 +13,7 @@ const PUSH_NOTIFICATION_ORDER = gql`
13
13
  pPDate
14
14
  pSState
15
15
  pPStateP
16
- payMethodPState
16
+ payId
17
17
  pPRecoger
18
18
  totalProductsPrice
19
19
  unidProducts
@@ -75,6 +75,11 @@ function getUserSubscription () {
75
75
 
76
76
  const host = process.env.NODE_ENV === 'production' ? 'http://localhost:4000' : 'http://localhost:4000'
77
77
 
78
+ /**
79
+ *
80
+ * @param path
81
+ * @param body
82
+ */
78
83
  function post (path, body) {
79
84
  return fetch(`${host}${path}`, {
80
85
  body: JSON.stringify(body),
@@ -89,6 +94,10 @@ function post (path, body) {
89
94
  })
90
95
  }
91
96
 
97
+ /**
98
+ *
99
+ * @param path
100
+ */
92
101
  function get (path) {
93
102
  return fetch(`${host}${path}`, {
94
103
  method: 'GET',
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable no-console */
2
- import { useState, useEffect } from 'react'
2
+ import { useState, useEffect } from 'react'
3
+
3
4
  import {
4
5
  isPushNotificationSupported,
5
6
  post,
@@ -1,4 +1,5 @@
1
- import { useLazyQuery } from '@apollo/client'
1
+ import { useLazyQuery } from '@apollo/client'
2
+
2
3
  import { GET_ONE_COUNTRY, GET_ONE_DEPARTMENT, GET_ONE_CITY } from './queries'
3
4
 
4
5
  const useGetOneCountry = () => {
@@ -1,6 +1,6 @@
1
- import { useState, useEffect } from 'react'
2
1
  import { useQuery } from '@apollo/client'
3
- // eslint-disable-next-line camelcase
2
+ import { useState, useEffect } from 'react'
3
+
4
4
  import { GET_All_RATING_STORE } from './queries'
5
5
 
6
6
  export const useRatingArrayData = () => {
@@ -8,12 +8,12 @@ export const useRatingArrayData = () => {
8
8
 
9
9
  const calculateTotalRatings = (ratings = []) => {
10
10
  return ratings.reduce(
11
- (total, rating) => ({
11
+ (total, rating) => {return {
12
12
  rAppearance: total?.rAppearance + rating?.rAppearance,
13
13
  rTasty: total?.rTasty + rating?.rTasty,
14
14
  rGoodCondition: total?.rGoodCondition + rating?.rGoodCondition,
15
15
  rGoodTemperature: total?.rGoodTemperature + rating?.rGoodTemperature
16
- }),
16
+ }},
17
17
  {
18
18
  rAppearance: 0,
19
19
  rTasty: 0,
@@ -1,6 +1,6 @@
1
1
  import { gql } from '@apollo/client'
2
2
 
3
- // eslint-disable-next-line camelcase
3
+
4
4
  export const GET_All_RATING_STORE = gql`
5
5
  query getAllRating($idStore: ID){
6
6
  getAllRating(idStore: $idStore){
@@ -1,4 +1,5 @@
1
- import { useMutation } from '@apollo/client'
1
+ import { useMutation } from '@apollo/client'
2
+
2
3
  import { DELETE_CAT_EXTRA_PRODUCTS } from './queries'
3
4
 
4
5
  export const useRemoveExtraProductFoodsOptional = () => {
@@ -1,4 +1,5 @@
1
- import { useQuery, useLazyQuery } from '@apollo/client'
1
+ import { useQuery, useLazyQuery } from '@apollo/client'
2
+
2
3
  import { GET_ALL_SALES, GET_ALL_TOTAL_SALES } from './queries'
3
4
 
4
5
  export const useReport = ({
@@ -26,7 +26,7 @@ query getAllSalesStoreStatistic($idStore: ID,$search: String, $min: Int, $max: I
26
26
  pdpId
27
27
  idStore
28
28
  pCodeRef
29
- payMethodPState
29
+ payId
30
30
  pPRecoger
31
31
  totalProductsPrice
32
32
  pSState
@@ -40,58 +40,7 @@ query getAllSalesStoreStatistic($idStore: ID,$search: String, $min: Int, $max: I
40
40
  ShoppingCard
41
41
  pCodeRef
42
42
  pPStateP
43
- payMethodPState
44
- pPRecoger
45
- pDatCre
46
- pDatMod
47
- getAllShoppingCard {
48
- ShoppingCard
49
- comments
50
- cantProducts
51
- pId
52
- productFood{
53
- pId
54
- carProId
55
- colorId
56
- idStore
57
- pName
58
- ProPrice
59
- ProDescuento
60
- ProDescription
61
- ValueDelivery
62
- ProImage
63
- ProStar
64
- pState
65
- pDatCre
66
- pDatMod
67
- }
68
- }
69
- }
70
- }
71
- }
72
- `
73
-
74
- export const GET_ONE_SALES = gql`
75
- query getOneSalesStore($pCodeRef: String) {
76
- getOneSalesStore(pCodeRef: $pCodeRef) {
77
- pdpId
78
- idStore
79
- pCodeRef
80
- payMethodPState
81
- pPRecoger
82
- totalProductsPrice
83
- pSState
84
- pDatCre
85
- locationUser
86
- pDatMod
87
- getAllPedidoStore{
88
- pdpId
89
- pId
90
- idStore
91
- ShoppingCard
92
- pCodeRef
93
- pPStateP
94
- payMethodPState
43
+ payId
95
44
  pPRecoger
96
45
  pDatCre
97
46
  pDatMod
@@ -1,3 +1,7 @@
1
+ /**
2
+ *
3
+ * @param array
4
+ */
1
5
  export function filterAndSortByDate (array = []) {
2
6
  const isError = !Array.isArray(array) || !array.length
3
7
  try {
@@ -22,5 +22,5 @@ export const getStatusForStores = (stores = []) => {
22
22
  min: min ?? '',
23
23
  open: status?.open ? 1 : 0
24
24
  }
25
- }).sort((a, b) => b.open - a.open)
25
+ }).sort((a, b) => {return b.open - a.open})
26
26
  }
@@ -1,9 +1,11 @@
1
- import { useEffect, useState } from 'react'
2
1
  import { useLazyQuery } from '@apollo/client'
3
- import { GET_ALL_RESTAURANT } from './queries'
2
+ import { useEffect, useState } from 'react'
3
+
4
+ import { useManageQueryParams } from '../useManageQueryParams'
5
+
4
6
  import { filterAndSortByDate } from './helpers'
5
- import { useManageQueryParams } from '../useManageQueryParams'
6
7
  import { getStatusForStores } from './helpers/manageStatusOpen'
8
+ import { GET_ALL_RESTAURANT } from './queries'
7
9
 
8
10
  export const useRestaurant = ({
9
11
  location = {
@@ -1,4 +1,5 @@
1
- import { useQuery } from '@apollo/client'
1
+ import { useQuery } from '@apollo/client'
2
+
2
3
  import { GET_ALL_ROAD } from './queries'
3
4
 
4
5
  /**
@@ -67,4 +67,4 @@ mutation createRoleMutation($input: IRole!) {
67
67
  }
68
68
  }
69
69
  }
70
- `
70
+ `
@@ -1,7 +1,10 @@
1
- import { useMutation } from '@apollo/client'
1
+ import { useMutation } from '@apollo/client'
2
+
2
3
  import { CREATE_ROLE_MUTATION } from './queries'
3
4
  /**
4
5
  * Custom hook para crear un nuevo rol
6
+ * @param root0
7
+ * @param root0.sendNotification
5
8
  * @returns {Object} - Estado de la mutación, incluyendo loading, error, data y la función createRoleMutation
6
9
  */
7
10
  export const useCreateRole = ({
@@ -1,4 +1,5 @@
1
- import { useQuery } from '@apollo/client'
1
+ import { useQuery } from '@apollo/client'
2
+
2
3
  import { GET_ALL_ROLES } from './queries'
3
4
 
4
5
  export const useGetRoles = ({
@@ -0,0 +1,120 @@
1
+ import { NotificationPayload } from '../types'
2
+
3
+ import { isStockInsufficient } from './isStockInsufficient'
4
+
5
+ interface AddToCartProps {
6
+ state: any
7
+ action: any
8
+ product: any
9
+ sendNotification?: (args: NotificationPayload) => any
10
+ sendAlertStock: (stock: number) => void
11
+ }
12
+
13
+ /**
14
+ * Adds a product to the cart with maximum performance.
15
+ * Avoids full array scans and minimizes object cloning.
16
+ * @param {any} state - Current reducer state.
17
+ * @param {any} action - Action containing product data.
18
+ * @returns {any} Updated state.
19
+ */
20
+ export const addToCartFunc = ({
21
+ state = {},
22
+ action = {},
23
+ product,
24
+ sendNotification = () => { },
25
+ sendAlertStock = () => { }
26
+ }: AddToCartProps) => {
27
+ const payload = action?.payload ?? {}
28
+ const {
29
+ pId,
30
+ pName,
31
+ getOneTags,
32
+ stock,
33
+ ProDescription,
34
+ ProImage,
35
+ ProPrice,
36
+ ProDescuento
37
+ } = payload
38
+
39
+ // Validate basic stock
40
+ if (stock === 0) {
41
+ sendNotification({
42
+ title: 'Sin stock',
43
+ backgroundColor: 'warning',
44
+ description: 'Producto sin stock disponible en tu inventario'
45
+ })
46
+ return state
47
+ }
48
+
49
+ // PRE-FETCH product references (only ONCE)
50
+ const productExistIndex = state.PRODUCT.findIndex((item: any) => {return item.pId === pId})
51
+ const productExist = productExistIndex !== -1 ? state.PRODUCT[productExistIndex] : null
52
+ if (!product) return state
53
+
54
+ // Check stock handling rules
55
+ const currentQty = productExist?.ProQuantity ?? 0
56
+ if (product.manageStock && isStockInsufficient(currentQty, product.stock)) {
57
+ sendAlertStock(stock)
58
+ return state
59
+ }
60
+
61
+ const isFree = productExist?.free ?? false
62
+ const newQuantity = productExist ? currentQty + 1 : 1
63
+
64
+ // Calculate new unit price only once
65
+ const unitPrice = product.ProPrice ?? 0
66
+
67
+ // Calculate final price respecting 'free' mode
68
+ const newPrice = isFree ? 0 : newQuantity * unitPrice
69
+
70
+ // COMMON STATE UPDATES
71
+ const baseState = {
72
+ ...state,
73
+ counter: state.counter + 1,
74
+ totalAmount: state.totalAmount + ProPrice,
75
+ startAnimateUp: 'start-animate-up'
76
+ }
77
+
78
+ // CASE 1: Product does NOT exist → add it
79
+ if (!productExist) {
80
+ const newProduct = {
81
+ pId,
82
+ pName,
83
+ editing: false,
84
+ getOneTags,
85
+ unitPrice,
86
+ manageStock: product.manageStock ?? false,
87
+ ProDescription,
88
+ ProImage,
89
+ ProPrice,
90
+ stock,
91
+ ProDescuento,
92
+ ProQuantity: 1,
93
+ free: false
94
+ }
95
+
96
+ return {
97
+ ...baseState,
98
+ PRODUCT: [...state.PRODUCT, newProduct]
99
+ }
100
+ }
101
+
102
+ // CASE 2: Product already exists → update only ONE item
103
+ const newList = [...state.PRODUCT]
104
+
105
+ newList[productExistIndex] = {
106
+ ...productExist,
107
+ getOneTags: product.genderTags,
108
+ unitPrice,
109
+ editing: false,
110
+ oldQuantity: newQuantity,
111
+ ProPrice: newPrice,
112
+ ProQuantity: newQuantity,
113
+ free: isFree
114
+ }
115
+
116
+ return {
117
+ ...baseState,
118
+ PRODUCT: newList
119
+ }
120
+ }