npm-pkg-hook 1.3.9 → 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,221 @@
1
+ import {
2
+ getCurrentDayAndTime,
3
+ getOpeningKeyFromDay,
4
+ getTimeString,
5
+ sortOpeningsByDay,
6
+ weekDays,
7
+ timeToInt,
8
+ days
9
+ } from './helpers'
10
+
11
+ /**
12
+ * Store schedule structure
13
+ */
14
+ export interface StoreSchedule {
15
+ schDay: number
16
+ schHoSta?: string
17
+ schHoEnd?: string
18
+ }
19
+
20
+ /**
21
+ * Openings object structure
22
+ */
23
+ export type OpeningsMap = Record<string, string>
24
+
25
+ /**
26
+ * Store opening status result
27
+ */
28
+ export interface OpeningStatus {
29
+ message: string
30
+ open: boolean
31
+ }
32
+
33
+ /**
34
+ * Hook-like utility to calculate store open status
35
+ *
36
+ * @param {Object} params
37
+ * @param {StoreSchedule[]} params.dataSchedules
38
+ * @returns {OpeningStatus}
39
+ */
40
+ export const statusOpenStores = (
41
+ { dataSchedules = [] }: { dataSchedules?: StoreSchedule[] } = {}
42
+ ): OpeningStatus => {
43
+ const handleHourPmAM = (hour?: string): string => {
44
+ if (!hour) return ''
45
+ return new Date(`1/1/1999 ${hour}`).toLocaleString('en-US', {
46
+ hour: 'numeric',
47
+ minute: 'numeric',
48
+ hour12: true
49
+ })
50
+ }
51
+
52
+ const handleState = (message: string, open: boolean): OpeningStatus => {return {
53
+ message,
54
+ open
55
+ }}
56
+
57
+ const getNextDaySchedule = (
58
+ schedules: StoreSchedule[],
59
+ currentDayOfWeek: number
60
+ ) => {
61
+ const today = new Date()
62
+ const tomorrow = new Date(today)
63
+ tomorrow.setDate(today.getDate() + 1)
64
+
65
+ const dayOfWeekTomorrow = tomorrow.getDay()
66
+
67
+ const findNextDay = schedules?.length
68
+ ? schedules.some(
69
+ (schedule) => {return schedule?.schDay === dayOfWeekTomorrow}
70
+ )
71
+ : false
72
+
73
+ const findDataNextDay =
74
+ schedules?.find(
75
+ (schedule) => {return schedule?.schDay === dayOfWeekTomorrow}
76
+ ) ?? { schDay: dayOfWeekTomorrow }
77
+
78
+ return { findNextDay, findDataNextDay, dayOfWeekTomorrow }
79
+ }
80
+
81
+ const getOpeningStatus = (
82
+ openings: OpeningsMap,
83
+ currentTime: number,
84
+ currentDayOfWeek: number
85
+ ): OpeningStatus => {
86
+ const weekDayLookup = [
87
+ 'Sunday',
88
+ 'Monday',
89
+ 'Tuesday',
90
+ 'Wednesday',
91
+ 'Thursday',
92
+ 'Friday',
93
+ 'Saturday'
94
+ ]
95
+
96
+ const ceroHours = '00:00 - 00:00'
97
+ let dayOfWeek = currentDayOfWeek
98
+
99
+ for (let i = 0; i < 7; i++) {
100
+ const dayName = weekDayLookup[dayOfWeek % 7]
101
+ const opening =
102
+ openings && openings[`opening${dayName.substring(0, 3)}`]
103
+
104
+ const timeSpans = opening
105
+ ?.split(';')
106
+ .map((item) => {return item.trim()})
107
+
108
+ for (const span of timeSpans ?? []) {
109
+ const hours = span.split('-').map((item) => {return item.trim()})
110
+ const openTime = timeToInt(hours[0])
111
+ const closeTime = timeToInt(hours[1])
112
+
113
+ if (currentTime >= openTime && currentTime <= closeTime) {
114
+ return handleState(
115
+ `Abierto Ahora - Cierra a las: ${handleHourPmAM(hours[1])}`,
116
+ true
117
+ )
118
+ }
119
+
120
+ if (
121
+ currentTime < openTime &&
122
+ dayOfWeek === currentDayOfWeek
123
+ ) {
124
+ return handleState(
125
+ `Aun temprano - Abre hoy a las: ${handleHourPmAM(hours[0])}`,
126
+ false
127
+ )
128
+ }
129
+
130
+ if (
131
+ currentTime >= closeTime - 30 * 60000 &&
132
+ currentTime < closeTime &&
133
+ dayOfWeek === currentDayOfWeek
134
+ ) {
135
+ return handleState(
136
+ `Pronto por cerrar - Cierra hoy a las: ${handleHourPmAM(hours[1])}`,
137
+ true
138
+ )
139
+ }
140
+
141
+ const {
142
+ findNextDay,
143
+ findDataNextDay,
144
+ dayOfWeekTomorrow
145
+ } = getNextDaySchedule(dataSchedules, currentDayOfWeek)
146
+
147
+ if (findNextDay && findDataNextDay?.schHoSta) {
148
+ const nameOfDayTomorrow = weekDays[dayOfWeekTomorrow]
149
+ return handleState(
150
+ `Cerrado abre - Mañana ${nameOfDayTomorrow} a las ${
151
+ findDataNextDay.schHoSta
152
+ }`,
153
+ false
154
+ )
155
+ }
156
+
157
+ const nextDayName =
158
+ weekDayLookup[(dayOfWeek + 1) % 7]
159
+
160
+ const nextOpening =
161
+ openings &&
162
+ openings[`opening${nextDayName.substring(0, 3)}`]
163
+
164
+ const nextHours = nextOpening
165
+ ?.split(';')
166
+ ?.map((item) => {return item.trim()})
167
+
168
+ if (nextHours?.[0] !== ceroHours) {
169
+ return handleState(
170
+ `Cerrado - Abre el ${days[nextDayName as keyof typeof days]} a las ${nextHours?.[0]}`,
171
+ false
172
+ )
173
+ }
174
+ }
175
+
176
+ dayOfWeek++
177
+ }
178
+
179
+ return handleState('Cerrado', false)
180
+ }
181
+
182
+ const getIsOpening = (openings: OpeningsMap): OpeningStatus => {
183
+ const { currentTime, currentDayOfWeek } =
184
+ getCurrentDayAndTime()
185
+
186
+ return getOpeningStatus(
187
+ openings,
188
+ currentTime ?? 0,
189
+ currentDayOfWeek ?? 0
190
+ )
191
+ }
192
+
193
+ const createOpeningsObject = (
194
+ schedules: StoreSchedule[]
195
+ ): OpeningsMap => {
196
+ const openings: OpeningsMap = {}
197
+ const existStoreSchedule = schedules || []
198
+
199
+ existStoreSchedule.forEach((schedule) => {
200
+ const openingKey = getOpeningKeyFromDay(schedule.schDay)
201
+ const schHoSta = getTimeString(schedule?.schHoSta)
202
+ const schHoEnd = getTimeString(schedule?.schHoEnd)
203
+
204
+ openings[openingKey] = `${schHoSta} - ${schHoEnd}`
205
+ })
206
+
207
+ for (let i = 0; i < 7; i++) {
208
+ const openingKey = getOpeningKeyFromDay(i)
209
+ if (!(openingKey in openings)) {
210
+ openings[openingKey] = '00:00 - 00:00'
211
+ }
212
+ }
213
+
214
+ return openings
215
+ }
216
+
217
+ const openings = createOpeningsObject(dataSchedules)
218
+ const sortedOpenings = sortOpeningsByDay(openings)
219
+
220
+ return getIsOpening(sortedOpenings)
221
+ }
@@ -1,9 +1,10 @@
1
- import { useMutation } from '@apollo/client'
1
+ import { useMutation } from '@apollo/client'
2
+
2
3
  import { updateCacheMod } from '../../utils'
3
4
  import { GET_EXTRAS_PRODUCT_FOOD_OPTIONAL, UPDATE_EXTRAS_PRODUCT_FOOD_OPTIONAL } from '../useProductsFood/queriesStore'
4
5
 
5
6
  export const useUpdateExtProductFoodsOptional = () => {
6
- const [updateExtProductFoodsOptional] = useMutation(UPDATE_EXTRAS_PRODUCT_FOOD_OPTIONAL)
7
+ const [updateExtProductOptional] = useMutation(UPDATE_EXTRAS_PRODUCT_FOOD_OPTIONAL)
7
8
 
8
9
  const handleUpdateExtProduct = async ({
9
10
  pId,
@@ -12,8 +13,15 @@ export const useUpdateExtProductFoodsOptional = () => {
12
13
  OptionalProName,
13
14
  required,
14
15
  numbersOptionalOnly
16
+ }: {
17
+ pId: string
18
+ code: string
19
+ opExPid: string
20
+ OptionalProName?: string
21
+ required?: boolean
22
+ numbersOptionalOnly?: number | string
15
23
  }) => {
16
- return await updateExtProductFoodsOptional({
24
+ return await updateExtProductOptional({
17
25
  variables: {
18
26
  input: {
19
27
  pId,
@@ -21,15 +29,16 @@ export const useUpdateExtProductFoodsOptional = () => {
21
29
  opExPid,
22
30
  OptionalProName,
23
31
  required,
24
- numbersOptionalOnly
32
+ numbersOptionalOnly: Number(numbersOptionalOnly)
25
33
  }
26
34
  },
27
35
  update: (cache, { data: { ExtProductFoodsOptionalAll } }) => {
28
- return updateCacheMod({
36
+ updateCacheMod({
29
37
  cache,
30
38
  query: GET_EXTRAS_PRODUCT_FOOD_OPTIONAL,
31
39
  nameFun: 'ExtProductFoodsOptionalAll',
32
- dataNew: ExtProductFoodsOptionalAll
40
+ dataNew: ExtProductFoodsOptionalAll,
41
+ type: 1
33
42
  })
34
43
  }
35
44
  })
@@ -0,0 +1,18 @@
1
+ const data = [
2
+ { x: '2021-10-17T14:38:45.540Z', y: 2 }
3
+ ]
4
+ export const getDateParts = (isString: string) => {
5
+ const [year, month, day, hr, min, sec] = isString.split(/\D/g)
6
+ return { year, month, day, hr, min, sec }
7
+ }
8
+ /**
9
+ *
10
+ * @param arr
11
+ */
12
+ export function groupDates(arr: Array<{ x: string; y: number }>) {
13
+ const total = arr.reduce((a: number, b: { x: string; y: number }) => {
14
+ const { hr } = getDateParts(b.x)
15
+ return a + Number.parseInt(hr || '0', 10)
16
+ }, 0)
17
+ return total
18
+ }
@@ -0,0 +1,37 @@
1
+ import { gql, useQuery } from '@apollo/client'
2
+ import { useEffect, useState } from 'react'
3
+
4
+ export const GET_ALL_STORES_PENDING_TO_REGISTER = gql`
5
+ query GetAllStoresPendingToRegister {
6
+ getAllStoresPendingToRegister {
7
+ StorePendingToRegisterId
8
+ UserId
9
+ UserEmail
10
+ StoreNumber
11
+ createAt
12
+ updateAt
13
+ }
14
+ }
15
+ `
16
+
17
+ /**
18
+ *
19
+ */
20
+ export function useAllStoresPendingToRegister () {
21
+ const { loading, error, data } = useQuery(GET_ALL_STORES_PENDING_TO_REGISTER)
22
+
23
+ const [stores, setStores] = useState([])
24
+ const [fetchError, setFetchError] = useState(null)
25
+
26
+ useEffect(() => {
27
+ if (!loading && data) {
28
+ setStores(data.getAllStoresPendingToRegister)
29
+ }
30
+
31
+ if (error) {
32
+ setFetchError(error.message)
33
+ }
34
+ }, [loading, data, error])
35
+
36
+ return { loading, stores, fetchError }
37
+ }
@@ -0,0 +1,127 @@
1
+ import { useState } from 'react'
2
+
3
+ const formatCurrency = (
4
+ prefix: string,
5
+ amountValue: string,
6
+ number: number,
7
+ groupSeparator: string,
8
+ decimalSeparator: string,
9
+ allowDecimals: boolean = false,
10
+ decimalsLimit: number = 0
11
+ ): string => {
12
+ if (Number.isNaN(number)) {
13
+ return prefix + '0'
14
+ }
15
+
16
+ const amountWithoutDecimals = Number.parseInt(number.toString())
17
+ const decimalIdx = amountValue.indexOf(decimalSeparator)
18
+ const notAllowedChars = new RegExp(String.raw`[^${decimalSeparator}\d]`, 'g')
19
+ const decimalsWithSeparator =
20
+ decimalIdx >= 0
21
+ ? amountValue
22
+ .slice(decimalIdx, amountValue.length)
23
+ .replace(notAllowedChars, '')
24
+ .slice(0, decimalsLimit + 1)
25
+ : ''
26
+
27
+ return (
28
+ prefix +
29
+ amountWithoutDecimals
30
+ .toString()
31
+ .replaceAll(/\B(?=(\d{3}){1,5}(?!\d))/g, groupSeparator) +
32
+ decimalsWithSeparator
33
+ )
34
+ }
35
+
36
+ const processInputValue = (input: string, decimalSeparator: string): number => {
37
+ const decimalRegex = new RegExp('[' + decimalSeparator + ']', 'g')
38
+ const notAllowedChars = new RegExp(String.raw`[^${decimalSeparator}\d¬]`, 'g')
39
+
40
+ return Number.parseFloat(
41
+ input
42
+ .replaceAll(decimalRegex, '¬')
43
+ .replaceAll(notAllowedChars, '')
44
+ .replaceAll('¬', '.')
45
+ )
46
+ }
47
+ /**
48
+ * Truncate excess decimals from a number based on a limit.
49
+ *
50
+ * @param number The number to truncate.
51
+ * @param decimalsLimit The maximum number of decimal places allowed.
52
+ * @returns The number with truncated decimals.
53
+ */
54
+ const truncateDecimals = (number: number, decimalsLimit: number): number => {
55
+ if (Number.isNaN(number)) {
56
+ return 0
57
+ }
58
+
59
+ const multiplier = Math.pow(10, decimalsLimit)
60
+ return Math.floor(number * multiplier) / multiplier
61
+ }
62
+ export interface UseAmountInputProps {
63
+ onChange?: (value: number) => void
64
+ prefix?: string
65
+ groupSeparator?: string
66
+ decimalSeparator?: string
67
+ allowDecimals?: boolean
68
+ decimalsLimit?: number
69
+ defaultValue?: string
70
+ }
71
+
72
+ export const useAmountInput = (props: UseAmountInputProps) => {
73
+ const {
74
+ onChange = () => {},
75
+ prefix = '$',
76
+ groupSeparator = '.',
77
+ decimalSeparator = ',',
78
+ allowDecimals = false,
79
+ decimalsLimit = 0,
80
+ defaultValue
81
+ } = props
82
+
83
+ const inputVal = defaultValue ?? ''
84
+ const [inputValue, setInputValue] = useState(inputVal)
85
+
86
+ const preProcess = (amount: string) => {
87
+ const amountValue = amount.trim()
88
+ const oldInputValue = inputValue
89
+
90
+ if (oldInputValue !== amountValue) {
91
+ const amountFloatValue = processInputValue(amount, decimalSeparator)
92
+ let inputValue = ''
93
+ // This allows for people to use `.` but still input decimals
94
+ const isAboutToIntroduceDecimals =
95
+ oldInputValue + decimalSeparator === amountValue ||
96
+ oldInputValue + '.' === amountValue
97
+ if (allowDecimals === true && isAboutToIntroduceDecimals) {
98
+ inputValue = oldInputValue + decimalSeparator
99
+ } else if (
100
+ (allowDecimals === false || allowDecimals === undefined) &&
101
+ isAboutToIntroduceDecimals
102
+ ) {
103
+ inputValue = oldInputValue
104
+ } else {
105
+ inputValue = formatCurrency(
106
+ prefix,
107
+ amountValue,
108
+ amountFloatValue,
109
+ groupSeparator,
110
+ decimalSeparator,
111
+ allowDecimals,
112
+ decimalsLimit
113
+ )
114
+ }
115
+ setInputValue(inputValue)
116
+
117
+ const callbackValue = Number.isNaN(amountFloatValue) ? 0 : amountFloatValue
118
+ if (typeof onChange === 'function') {
119
+ onChange(truncateDecimals(callbackValue, decimalsLimit))
120
+ }
121
+ }
122
+ }
123
+ return {
124
+ inputValue,
125
+ preProcess
126
+ }
127
+ }
@@ -3,7 +3,7 @@ import { useEffect, useRef, useState } from 'react'
3
3
  const fullText =
4
4
  ' this is full text it\'ll be animated again! Writing a really huge senetence here so that I can see the animation happen. I know it\'s fast but that\'s how it goes.'
5
5
 
6
- export const useAnimatedText = textMessage => {
6
+ export const useAnimatedText = (textMessage: string) => {
7
7
  const fullTextRef = useRef(textMessage)
8
8
  const [text, setText] = useState('')
9
9
  const [index, setIndex] = useState(0)
@@ -11,7 +11,7 @@ export const useAnimatedText = textMessage => {
11
11
  useEffect(() => {
12
12
  if (index < fullText.length) {
13
13
  window.requestAnimationFrame(() => {
14
- // eslint-disable-next-line
14
+
15
15
  setText(text => text + fullTextRef.current[index]);
16
16
  setIndex(() => {return index + 1})
17
17
  })
@@ -0,0 +1,217 @@
1
+ import { useMutation } from '@apollo/client'
2
+ import {
3
+ useState,
4
+ useEffect,
5
+ useMemo
6
+ } from 'react'
7
+
8
+ import { statusOpenStores } from '../statusOpenStores'
9
+ import { useCart, useGetCart } from '../useCart'
10
+ import { useManageQueryParams } from '../useManageQueryParams'
11
+
12
+ import { calculateTotalPrice } from './helpers'
13
+ import { DELETE_ONE_ITEM_SHOPPING_PRODUCT } from './queries'
14
+
15
+
16
+ export const useAsideCart = ({
17
+ openModalProduct = false,
18
+ location = {
19
+ pathname: '',
20
+ push: (props, state, { shallow }) => {
21
+ return { ...props, state, shallow }
22
+ },
23
+ query: {
24
+ plato: ''
25
+ }
26
+ },
27
+ setCountItemProduct = (number) => { return number },
28
+ setAlertBox = (args) => { return args },
29
+ setOpenModalProduct = () => { },
30
+ handleMenu = (boolean) => { return boolean }
31
+ } = {
32
+ openModalProduct: false,
33
+ location: {
34
+ pathname: '',
35
+ push: (props, state, { shallow }) => {
36
+ return { ...props, state, shallow }
37
+ },
38
+ query: {
39
+ plato: ''
40
+ }
41
+ },
42
+ setCountItemProduct: (number) => { return number },
43
+ setAlertBox: () => { },
44
+ setOpenModalProduct: () => { },
45
+ handleMenu: () => { }
46
+ }) => {
47
+ const { getOneProduct } = useCart({
48
+ handleMenu,
49
+ openModalProduct,
50
+ location,
51
+ setOpenModalProduct
52
+ })
53
+
54
+ const { handleQuery } = useManageQueryParams({
55
+ location
56
+ })
57
+
58
+ const [totalProductPrice, setTotalProductPrice] = useState(0)
59
+
60
+ const [dataShoppingCard, { loading }] = useGetCart({ setCountItemProduct })
61
+
62
+ // Lógica de transformación de los datos
63
+ const result2 = useMemo(() => {
64
+ if (!loading && dataShoppingCard) {
65
+ return dataShoppingCard.reduce((r, a) => {
66
+ const storeName = a.getStore?.storeName
67
+ if (storeName) {
68
+ r[storeName] = r[storeName] || []
69
+ r[storeName].push(a)
70
+ }
71
+ return r
72
+ }, {})
73
+ }
74
+ return {}
75
+ }, [loading, dataShoppingCard])
76
+
77
+ // Obtener dataProduct2 directamente
78
+ const key = useMemo(() => {
79
+ return Object.keys(result2)
80
+ }, [result2])
81
+
82
+ useEffect(() => {
83
+ const totalPrice = calculateTotalPrice(dataShoppingCard)
84
+ setTotalProductPrice(Math.abs(totalPrice))
85
+ }, [dataShoppingCard])
86
+
87
+ const [deleteOneItem] = useMutation(DELETE_ONE_ITEM_SHOPPING_PRODUCT, {
88
+ onCompleted: data => {
89
+ setAlertBox({ message: data?.deleteOneItem?.message })
90
+
91
+ if (dataShoppingCard?.length === 1 && data?.deleteOneItem?.success) {
92
+ setAlertBox({ message: 'Tu carrito está vacío' }) // Ajusta el mensaje en español
93
+ handleMenu(false) // Oculta el menú del carrito
94
+ }
95
+ }
96
+ })
97
+
98
+ const handleEditProduct = async (item) => {
99
+ const pId = item?.pId || null
100
+ if (pId) handleQuery('plato', pId)
101
+ if (pId) {
102
+ const product = { pId, intoCart: true }
103
+ getOneProduct(product)
104
+ }
105
+ }
106
+ /**
107
+ * Handle the deletion of a shopping cart item.
108
+ * @param {Object} item - The item to be deleted from the shopping cart.
109
+ */
110
+ const handleDeleteItemShopping = async (item) => {
111
+ if (!item) {
112
+ return setAlertBox({
113
+ message: 'Error borrando el producto. Por favor intenta nuevamente.',
114
+ color: 'error'
115
+ })
116
+ }
117
+
118
+ try {
119
+ const { cState, ShoppingCard } = item
120
+ await deleteOneItem({
121
+ variables: { cState, ShoppingCard },
122
+ update: (cache) => {
123
+ cache.modify({
124
+ fields: {
125
+ getAllShoppingCard (existingCart, { readField }) {
126
+ if (!Array.isArray(existingCart)) return []
127
+
128
+ const filteredCart = existingCart.filter(product =>
129
+ {return readField('ShoppingCard', product) !== ShoppingCard}
130
+ )
131
+
132
+ // Actualizar el contador de productos
133
+ setCountItemProduct(filteredCart.length)
134
+
135
+ return filteredCart?.length > 0 ? filteredCart : []
136
+ }
137
+ }
138
+ })
139
+ }
140
+ })
141
+ } catch (error) {
142
+ setAlertBox({ message: 'Error borrando el producto. Por favor intenta nuevamente.', color: 'error' })
143
+ }
144
+ }
145
+
146
+ /**
147
+ * Calculate the total price of a product.
148
+ * @param {number} ProPrice - The price of the product.
149
+ * @param {number} ProDelivery - The delivery cost of the product.
150
+ * @param {number} cant - The quantity of the product.
151
+ * @returns {number} The calculated total price.
152
+ */
153
+ const sumProduct = (ProPrice, ProDelivery, cant) => {
154
+ // Convertir a números, con manejo de posibles errores
155
+ const price = ProPrice
156
+ const delivery = ProDelivery || 0
157
+ const quantity = cant
158
+
159
+ // Verificar si las conversiones fueron exitosas
160
+ if (isNaN(price) || isNaN(delivery) || isNaN(quantity)) {
161
+ throw new Error('Los valores proporcionados no son números válidos.')
162
+ }
163
+
164
+ // Calcular el precio final
165
+ const priceFinal = quantity * price
166
+
167
+ // Devolver la suma total, incluyendo el costo de entrega si es aplicable
168
+ return delivery ? priceFinal + delivery : priceFinal
169
+ }
170
+ console.log(dataShoppingCard)
171
+
172
+ /**
173
+ * Verifica el estado de apertura de la tienda.
174
+ *
175
+ * @returns {Object|null} Objeto con el estado de apertura de la tienda o null en caso de error.
176
+ * @throws {Error} Si ocurre un error durante la verificación del estado de la tienda.
177
+ */
178
+ const handleVerifyStoreOpenStatus = () => {
179
+ /**
180
+ * @type {Array} dataShoppingCard - El array de la tarjeta de compras.
181
+ */
182
+ if (!Array.isArray(dataShoppingCard)) {
183
+ return { open: false } // Retorna un objeto indicando que la tienda no está abierta
184
+ }
185
+
186
+ /**
187
+ * @type {Object} store - La primera tienda en el array de la tarjeta de compras.
188
+ */
189
+ const store = dataShoppingCard[0] || {}
190
+ /**
191
+ * @type {Object} getStore - El objeto que contiene información de la tienda.
192
+ */
193
+ const { getStore } = store
194
+
195
+ /**
196
+ * @type {Array} storeSchedules - El array de horarios de la tienda.
197
+ */
198
+ const storeSchedules = Array.isArray(getStore?.getStoreSchedules) ? getStore?.getStoreSchedules : []
199
+ try {
200
+ const status = getStore?.scheduleOpenAll ? { open: true } : statusOpenStores({ dataSchedules: storeSchedules })
201
+ return status
202
+ } catch (error) {
203
+ return null
204
+ }
205
+ }
206
+
207
+ return {
208
+ key,
209
+ totalProductPrice,
210
+ result2,
211
+ dataShoppingCard,
212
+ handleDeleteItemShopping,
213
+ handleEditProduct,
214
+ handleVerifyStoreOpenStatus,
215
+ sumProduct
216
+ }
217
+ }
@@ -1,4 +1,5 @@
1
- import { useQuery } from '@apollo/client'
1
+ import { useQuery } from '@apollo/client'
2
+
2
3
  import { GET_ONE_BANNER_STORE } from '../useProductsFood/queriesStore'
3
4
  import { useStore } from '../useStore'
4
5