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.
- package/.babelrc +2 -10
- package/.env +5 -1
- package/dist/index.js +17953 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +17711 -0
- package/dist/index.mjs.map +1 -0
- package/eslint.config.mjs +154 -0
- package/expire.json +1 -0
- package/index.d.ts +2 -0
- package/jest.config.ts +9 -0
- package/package.json +45 -36
- package/src/config/client/errors.ts +39 -0
- package/src/config/content/en.json +5 -0
- package/src/config/content/es.json +5 -0
- package/src/config/content/index.ts +16 -0
- package/src/hooks/addTenMinutes/index.ts +14 -0
- package/src/hooks/calculateLogLatHaversine/index.ts +41 -0
- package/src/hooks/completeSchedules/index.ts +22 -0
- package/src/hooks/convertToMilitaryTime/index.ts +18 -0
- package/src/hooks/generateStoreURL/index.ts +41 -0
- package/src/hooks/generateTemplate/index.ts +66 -0
- package/src/hooks/getCardType/index.ts +24 -0
- package/src/hooks/getCategoriesWithProduct/{index.js → index.ts} +7 -7
- package/src/hooks/getGlobalSession/index.ts +69 -0
- package/src/hooks/getSession/index.ts +72 -0
- package/src/hooks/getTodayTimestamps/index.ts +70 -0
- package/src/hooks/getTotalHours/index.ts +76 -0
- package/src/hooks/handleLogin/index.ts +14 -0
- package/src/hooks/index.ts +154 -0
- package/src/hooks/isTokenExpired/index.ts +17 -0
- package/src/hooks/newMessageSubscription/index.ts +28 -0
- package/src/hooks/newStoreOrderSubscription/index.ts +26 -0
- package/src/hooks/{useStatusOpenStore/helpers/index.js → statusOpenStores/helpers/index.ts} +24 -1
- package/src/hooks/statusOpenStores/index.ts +221 -0
- package/src/hooks/updateExtProductFoodsOptional/{index.js → index.ts} +15 -6
- package/src/hooks/useAcumulateDate/index.ts +18 -0
- package/src/hooks/useAllStoresPendingToRegister/index.ts +37 -0
- package/src/hooks/useAmountInput/index.ts +127 -0
- package/src/hooks/useAnimationText/{index.jsx → index.ts} +2 -2
- package/src/hooks/useAsideCart/index.ts +217 -0
- package/src/hooks/useBanner/{index.js → index.ts} +2 -1
- package/src/hooks/useCart/{queries.js → queries.ts} +11 -1
- package/src/hooks/useCart/useCart/helpers/{index.js → index.ts} +10 -6
- package/src/hooks/useCart/useCart/{index.js → index.ts} +58 -44
- package/src/hooks/useCart/useGetCart/{index.js → index.ts} +6 -3
- package/src/hooks/useCatWithProduct/{index.js → index.ts} +17 -7
- package/src/hooks/useCatWithProduct/{queries.js → queries.ts} +50 -23
- package/src/hooks/useCatWithProduct/types/index.ts +104 -0
- package/src/hooks/useCatWithProductClient/{index.js → index.ts} +19 -18
- package/src/hooks/useCatWithProductClient/{queries.js → queries.ts} +1 -0
- package/src/hooks/useCategoriesProduct/{index.js → index.ts} +3 -1
- package/src/hooks/useCategoriesProduct/{queries.js → queries.ts} +2 -2
- package/src/hooks/useCategoryInStore/index.ts +167 -0
- package/src/hooks/useCategoryInStore/{queries.js → queries.ts} +2 -2
- package/src/hooks/useCategoryStore/{index.js → index.ts} +4 -3
- package/src/hooks/useCategoryStore/{queries.js → queries.ts} +2 -2
- package/src/hooks/useChartData/{index.js → index.ts} +31 -34
- package/src/hooks/useChartData/useChartData/{index.js → index.ts} +31 -30
- package/src/hooks/useChartData/useChartDataAllOrders/{index.js → index.ts} +4 -4
- package/src/hooks/useChatRoomSubscription/index.ts +28 -0
- package/src/hooks/useCheckbox/{index.js → index.ts} +1 -1
- package/src/hooks/useCities/index.ts +14 -0
- package/src/hooks/useCities/queries.ts +12 -0
- package/src/hooks/useClients/{index.js → index.ts} +36 -10
- package/src/hooks/useClients/queries.ts +215 -0
- package/src/hooks/useColorByLetters/helpers/alea.ts +73 -0
- package/src/hooks/useColorByLetters/helpers/colors.ts +45 -0
- package/src/hooks/useColorByLetters/helpers/index.ts +24 -0
- package/src/hooks/useColorByLetters/helpers/mersenne_twister.ts +118 -0
- package/src/hooks/useColorByLetters/index.ts +24 -0
- package/src/hooks/useConnection/index.ts +24 -0
- package/src/hooks/useCountries/index.ts +20 -0
- package/src/hooks/useCountries/queries.ts +12 -0
- package/src/hooks/useCreateDeliveryTime/index.ts +51 -0
- package/src/hooks/useCreateOrderStatusType/index.ts +134 -0
- package/src/hooks/useCreateProduct/helpers/index.ts +23 -0
- package/src/hooks/useCreateProduct/helpers/manageCacheDataCatProduct/{index.js → index.ts} +1 -1
- package/src/hooks/useCreateProduct/helpers/useEditImageProduct/{index.js → index.ts} +14 -8
- package/src/hooks/useCreateProduct/index.ts +337 -0
- package/src/hooks/useCreateStorePendingToRegister/index.ts +17 -0
- package/src/hooks/useCreateStorePendingToRegister/queries.ts +10 -0
- package/src/hooks/useDashboardComponents/index.ts +50 -0
- package/src/hooks/useDeleteExtraProductFoods/index.ts +13 -0
- package/src/hooks/useDeleteSubProductOptional/{index.js → index.ts} +5 -3
- package/src/hooks/useDeliveryTime/index.ts +29 -0
- package/src/hooks/useDepartments/index.ts +14 -0
- package/src/hooks/useDepartments/queries.ts +13 -0
- package/src/hooks/useDessert/{index.js → index.ts} +162 -114
- package/src/hooks/useDessertWithPrice/helpers/index.ts +76 -0
- package/src/hooks/useDessertWithPrice/index.ts +381 -0
- package/src/hooks/useDessertWithPrice/queries.ts +18 -0
- package/src/hooks/useDevWS/index.ts +53 -0
- package/src/hooks/useDevices/index.ts +2 -0
- package/src/hooks/useDevices/queries.ts +28 -0
- package/src/hooks/useDevices/useGetDevices.ts +28 -0
- package/src/hooks/useDevices/useRegisterDevices.ts +75 -0
- package/src/hooks/useDownloadReports/helpers/downloadFileFromResponse.ts +21 -0
- package/src/hooks/useDownloadReports/index.ts +2 -0
- package/src/hooks/useDownloadReports/useDownloadReportByDay/index.ts +105 -0
- package/src/hooks/useDownloadReports/useGetReportByDateRange/index.ts +116 -0
- package/src/hooks/useDrag/{index.js → index.ts} +16 -0
- package/src/hooks/useDropzone/{index.js → index.ts} +2 -2
- package/src/hooks/useDynamicAuth/{index.js → index.ts} +2 -1
- package/src/hooks/useEditCategory/{index.js → index.ts} +14 -14
- package/src/hooks/useEditOneExtProductFoodOptional/index.ts +28 -0
- package/src/hooks/useEditOneExtProductFoodOptional/{queries.js → queries.ts} +2 -2
- package/src/hooks/useEditSubProductOptional/index.ts +12 -0
- package/src/hooks/useEmployee/index.ts +18 -0
- package/src/hooks/useEmployee/queries.ts +85 -0
- package/src/hooks/useEmployee/useCreateEmployee.ts +90 -0
- package/src/hooks/useEvent/{index.js → index.ts} +1 -0
- package/src/hooks/useFavoriteStores/index.ts +31 -0
- package/src/hooks/useFavoriteStores/queries.ts +54 -0
- package/src/hooks/useFetchMoreInteractions/index.jsx +26 -26
- package/src/hooks/useFilterConfigs/index.ts +173 -0
- package/src/hooks/useFingerprintjs/{index.js → index.ts} +32 -7
- package/src/hooks/useFormTools/index.ts +143 -0
- package/src/hooks/useFormatDate/index.ts +91 -0
- package/src/hooks/useFullScreenMode/{index.js → index.ts} +1 -5
- package/src/hooks/useGetAllLocationUser/index.ts +13 -0
- package/src/hooks/useGetAllLocationUser/queries.ts +44 -0
- package/src/hooks/{useSales/useGetAllSales/index.js → useGetAllSales/index.ts} +3 -2
- package/src/hooks/useGetCookies/index.ts +43 -0
- package/src/hooks/useGetExtProductFoodsSubOptionalAll/{index.js → index.ts} +2 -1
- package/src/hooks/useGetFoodRecomended/{index.js → index.ts} +2 -1
- package/src/hooks/useGetMessagesToRoom/index.ts +23 -0
- package/src/hooks/useGetMinPrice/{index.js → index.ts} +2 -1
- package/src/hooks/useGetOneStoreRating/{index.js → index.ts} +2 -1
- package/src/hooks/useGetSalesAmountToday/index.ts +31 -0
- package/src/hooks/useGetStoreCookie/index.ts +21 -0
- package/src/hooks/useGoogleLogin/{index.js → index.ts} +14 -5
- package/src/hooks/useHover/{index.js → index.ts} +3 -0
- package/src/hooks/useImageOptimization/{index.js → index.ts} +4 -0
- package/src/hooks/useImageUploaderProduct/helper/canvasUtils.ts +146 -0
- package/src/hooks/useImageUploaderProduct/helper/getOrientation.ts +54 -0
- package/src/hooks/useImageUploaderProduct/helper/index.ts +5 -0
- package/src/hooks/useImageUploaderProduct/index.ts +295 -0
- package/src/hooks/useImageWeight/{index.js → index.ts} +4 -0
- package/src/hooks/useImagesStore/index.ts +227 -0
- package/src/hooks/useImagesStore/{queries.js → queries.ts} +4 -68
- package/src/hooks/useImagesStore/utils/index.ts +4 -0
- package/src/hooks/useIncomingOrders/index.ts +11 -0
- package/src/hooks/useIncomingOrders/queries.ts +87 -0
- package/src/hooks/useIntersection/{index.js → index.ts} +1 -1
- package/src/hooks/useInventory/index.ts +2 -0
- package/src/hooks/useInventory/queries.ts +58 -0
- package/src/hooks/useInventory/useGetProductsInStock.ts +16 -0
- package/src/hooks/useInventory/useUpdateManageStock.ts +41 -0
- package/src/hooks/useLazyScript/{index.js → index.ts} +3 -0
- package/src/hooks/useLocalBackendIp/index.ts +34 -0
- package/src/hooks/useLocalSorage/{index.js → index.ts} +3 -3
- package/src/hooks/useLocationManager/index.ts +63 -0
- package/src/hooks/useLoginEmployeeInStore/index.ts +38 -0
- package/src/hooks/useLogout/helpers/BroadcastChannel.ts +74 -0
- package/src/hooks/useLogout/helpers/apiBaseUrl.ts +12 -0
- package/src/hooks/useLogout/helpers/fetchData.ts +37 -0
- package/src/hooks/useLogout/helpers/getCsrfToken.ts +37 -0
- package/src/hooks/useLogout/helpers/index.ts +65 -0
- package/src/hooks/useLogout/helpers/logger.ts +88 -0
- package/src/hooks/useLogout/helpers/parseUrl.ts +39 -0
- package/src/hooks/useLogout/index.ts +105 -0
- package/src/hooks/useManageNewOrder/helpers/index.ts +45 -0
- package/src/hooks/useManageNewOrder/index.ts +104 -0
- package/src/hooks/useManageQueryParams/index.ts +120 -0
- package/src/hooks/useMobile/index.ts +65 -0
- package/src/hooks/useModules/helpers/index.ts +1 -0
- package/src/hooks/useModules/helpers/validateModules.ts +43 -0
- package/src/hooks/useModules/index.ts +124 -0
- package/src/hooks/useMouse/index.ts +55 -0
- package/src/hooks/useOrderStatusTypes/index.ts +2 -0
- package/src/hooks/useOrderStatusTypes/useOrderStatusTypes/index.ts +133 -0
- package/src/hooks/useOrderStatusTypes/useUpdateOrderStatusPriorities/index.ts +99 -0
- package/src/hooks/useOrders/index.ts +3 -0
- package/src/hooks/useOrders/queries.ts +99 -0
- package/src/hooks/useOrders/useChangeOrderState/index.ts +128 -0
- package/src/hooks/useOrders/{index.js → useOrdersFromStore/index.ts} +20 -18
- package/src/hooks/usePWAInstall/index.ts +38 -0
- package/src/hooks/usePaymentMethod/index.ts +3 -0
- package/src/hooks/usePaymentMethod/paymentMethod.gql.ts +62 -0
- package/src/hooks/usePaymentMethod/paymentMethod.types.ts +28 -0
- package/src/hooks/usePaymentMethod/useCreatePaymentMethod/index.ts +25 -0
- package/src/hooks/usePaymentMethod/useGetAllPaymentMethods/index.ts +19 -0
- package/src/hooks/usePaymentMethod/useGetPaymentMethod/index.ts +26 -0
- package/src/hooks/usePortFetcher/index.ts +33 -0
- package/src/hooks/usePrintSaleTicket/index.ts +68 -0
- package/src/hooks/useProductsFood/index.ts +341 -0
- package/src/hooks/useProductsFood/{queriesStore.js → queriesStore.ts} +151 -84
- package/src/hooks/useProductsFood/types/index.ts +0 -0
- package/src/hooks/useProductsFood/useEditProduct.ts +49 -0
- package/src/hooks/useProductsFood/usetagsProducts.ts +101 -0
- package/src/hooks/useProviders/useProvidersCreateStore/{index.js → index.ts} +2 -1
- package/src/hooks/useProviders/useProvidersDataStore/{index.js → index.ts} +2 -1
- package/src/hooks/useProvidersStore/{index.js → index.ts} +2 -1
- package/src/hooks/usePushNotificationOrder/index.ts +52 -0
- package/src/hooks/usePushNotifications/helpers/index.ts +123 -0
- package/src/hooks/usePushNotifications/index.ts +150 -0
- package/src/hooks/useQueryLocationsMap/index.ts +20 -0
- package/src/hooks/useQueryLocationsMap/queries.ts +40 -0
- package/src/hooks/useRatingArrayData/{index.js → index.ts} +4 -4
- package/src/hooks/useRatingArrayData/{queries.js → queries.ts} +1 -1
- package/src/hooks/useReactToPrint/index.ts +4 -0
- package/src/hooks/useRemoveExtraProductFoodsOptional/{index.js → index.ts} +2 -1
- package/src/hooks/useRemoveExtraProductFoodsOptional/{queries.js → queries.ts} +4 -4
- package/src/hooks/useReport/{index.js → index.ts} +5 -5
- package/src/hooks/useReport/{queries.js → queries.ts} +4 -55
- package/src/hooks/useRestaurant/helpers/index.ts +28 -0
- package/src/hooks/useRestaurant/helpers/manageStatusOpen.ts +26 -0
- package/src/hooks/useRestaurant/index.ts +71 -0
- package/src/hooks/useRestaurant/{queries.js → queries.ts} +2 -1
- package/src/hooks/useRoads/index.ts +20 -0
- package/src/hooks/useRoads/queries.ts +13 -0
- package/src/hooks/useRoles/index.ts +4 -0
- package/src/hooks/useRoles/queries.ts +70 -0
- package/src/hooks/useRoles/useCreateRole.ts +40 -0
- package/src/hooks/useRoles/useGetRoles.ts +37 -0
- package/src/hooks/useRoles/useRemoveRoles.ts +40 -0
- package/src/hooks/useRoles/useUpdateRolesPriority.ts +44 -0
- package/src/hooks/useSales/helpers/add-product.utils.ts +120 -0
- package/src/hooks/useSales/helpers/apply-discount-to-cart.utils.ts +292 -0
- package/src/hooks/useSales/helpers/comment-product.utils.ts +41 -0
- package/src/hooks/useSales/helpers/constants/index.ts +38 -0
- package/src/hooks/useSales/helpers/extras.utils.ts +42 -0
- package/src/hooks/useSales/helpers/filterProductsByCarProId.utils.ts +17 -0
- package/src/hooks/useSales/helpers/increment-product-quantity.utils.ts +76 -0
- package/src/hooks/useSales/helpers/index.ts +3 -0
- package/src/hooks/useSales/helpers/initializer.utils.ts +22 -0
- package/src/hooks/useSales/helpers/isStockInsufficient.ts +3 -0
- package/src/hooks/useSales/helpers/remove-product.utils.test.ts +49 -0
- package/src/hooks/useSales/helpers/remove-product.utils.ts +34 -0
- package/src/hooks/useSales/helpers/resolveProduct.ts +29 -0
- package/src/hooks/useSales/helpers/useAddToCart.ts +64 -0
- package/src/hooks/useSales/index.ts +1418 -0
- package/src/hooks/useSales/{queries.js → queries.ts} +256 -166
- package/src/hooks/useSales/types/index.ts +206 -0
- package/src/hooks/useSales/types/use-sales.types.ts +8 -0
- package/src/hooks/useSales/useGetSale.ts +21 -0
- package/src/hooks/useSales/useTotalSales.ts +24 -0
- package/src/hooks/useSaveAvailableProduct/helpers/{index.js → index.ts} +4 -4
- package/src/hooks/useSaveAvailableProduct/{index.js → index.ts} +7 -1
- package/src/hooks/useSaveLocation/index.ts +17 -0
- package/src/hooks/useSaveLocation/queries.ts +19 -0
- package/src/hooks/useSchedule/{index.jsx → index.ts} +16 -4
- package/src/hooks/useSchedule/{index.js → schedule.ts} +22 -15
- package/src/hooks/useScheduleData/{index.js → index.ts} +21 -9
- package/src/hooks/useSetImageProducts/index.ts +59 -0
- package/src/hooks/useSetImageProducts/queries.ts +18 -0
- package/src/hooks/useSetSession/{index.js → index.ts} +16 -17
- package/src/hooks/useSetupSchedule/helpers/index.ts +85 -0
- package/src/hooks/useSetupSchedule/index.ts +284 -0
- package/src/hooks/useStatusOpenStore/helpers/index.ts +124 -0
- package/src/hooks/useStatusOpenStore/{index.js → index.ts} +39 -16
- package/src/hooks/useStatusOrdersClient/{index.js → index.ts} +3 -2
- package/src/hooks/useStatusOrdersClient/{queries.js → queries.ts} +2 -2
- package/src/hooks/useStock/index.ts +1 -0
- package/src/hooks/useStock/useStockUpdatedAllSubscription.ts +40 -0
- package/src/hooks/useStockMovements/helpers/index.ts +16 -0
- package/src/hooks/useStockMovements/index.ts +39 -0
- package/src/hooks/useStore/index.ts +83 -0
- package/src/hooks/useStore/{queries.js → queries.ts} +71 -71
- package/src/hooks/useStoreContacts/{index.js → index.ts} +11 -5
- package/src/hooks/useStoreTable/index.ts +2 -0
- package/src/hooks/useStoreTable/queries.ts +47 -0
- package/src/hooks/useStoreTable/useStoreTableCreate.ts +77 -0
- package/src/hooks/useStoreTable/useStoreTables.ts +15 -0
- package/src/hooks/useSubscriptionValidation/index.ts +112 -0
- package/src/hooks/useTagProducts/index.ts +3 -0
- package/src/hooks/useTagProducts/useDeleteOneTag.ts +106 -0
- package/src/hooks/useTagProducts/useGetAllTags.ts +68 -0
- package/src/hooks/useTagProducts/useRegisterMultipleTags.ts +157 -0
- package/src/hooks/useTheme/index.ts +65 -0
- package/src/hooks/useTimeAgo/{useTimeAgo.js → useTimeAgo.ts} +7 -7
- package/src/hooks/useTokenCards/index.ts +45 -0
- package/src/hooks/useTopProductsMovements/index.ts +27 -0
- package/src/hooks/useTotalAllSales/index.ts +25 -0
- package/src/hooks/useTotalProductsInStock/index.ts +23 -0
- package/src/hooks/useTotalProductsSold/index.ts +23 -0
- package/src/hooks/useTotalProductsSolded/index.ts +20 -0
- package/src/hooks/useUpdateCart/{index.js → index.ts} +3 -2
- package/src/hooks/useUpdateCartCookie/index.ts +60 -0
- package/src/hooks/useUpdateDashboardComponent/index.ts +91 -0
- package/src/hooks/useUpdateExistingOrders/{index.js → index.ts} +5 -11
- package/src/hooks/useUpdateExtProductFoodsSubOptional/index.ts +61 -0
- package/src/hooks/useUpdateModuleOrder/index.ts +37 -0
- package/src/hooks/useUpdateMultipleExtProduct/index.ts +34 -0
- package/src/hooks/useUpdateMultipleExtProduct/queries.ts +33 -0
- package/src/hooks/useUpdateMultipleProducts/index.ts +117 -0
- package/src/hooks/useUpdateMultipleProducts/queries.ts +51 -0
- package/src/hooks/useUploadProducts/helpers/index.ts +1 -0
- package/src/hooks/useUploadProducts/helpers/parseNumber.ts +37 -0
- package/src/hooks/useUploadProducts/helpers/validateProductDataExcel.ts +73 -0
- package/src/hooks/useUploadProducts/index.ts +442 -0
- package/src/hooks/useUpsertGoal/index.ts +68 -0
- package/src/hooks/useUser/{index.js → index.ts} +11 -4
- package/src/hooks/useUser/{queries.js → queries.ts} +9 -4
- package/src/hooks/useWeeklyStockMovement/helpers/index.ts +32 -0
- package/src/hooks/useWeeklyStockMovement/index.ts +52 -0
- package/src/hooks/useWindowSize/{index.js → index.ts} +9 -2
- package/src/index.ts +12 -0
- package/src/security/index.ts +1 -0
- package/src/services/index.ts +1 -0
- package/src/utils/UtilDateRange.ts +56 -0
- package/src/utils/generateCode.ts +222 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/utils.ts +344 -0
- package/tsconfig.eslint.json +17 -0
- package/tsconfig.json +21 -0
- package/tsup.config.ts +24 -0
- package/.eslintrc.js +0 -38
- package/.eslintrc.json +0 -127
- package/next.config.js +0 -126
- package/src/config/client/errors.js +0 -26
- package/src/hooks/getGlobalSession/index.js +0 -49
- package/src/hooks/getSession/index.js +0 -18
- package/src/hooks/handleLogin/index.js +0 -10
- package/src/hooks/index.js +0 -77
- package/src/hooks/useAcumulateDate/index.js +0 -16
- package/src/hooks/useAsideCart/index.js +0 -155
- package/src/hooks/useCategoryInStore/index.js +0 -98
- package/src/hooks/useClients/queries.js +0 -127
- package/src/hooks/useConnection/index.js +0 -22
- package/src/hooks/useCreateProduct/index.js +0 -291
- package/src/hooks/useDevices/index.js +0 -35
- package/src/hooks/useDevices/queries.js +0 -19
- package/src/hooks/useEditOneExtProductFoodOptional/index.js +0 -28
- package/src/hooks/useEditSubProductOptional/index.js +0 -11
- package/src/hooks/useEmployee/index.js +0 -13
- package/src/hooks/useEmployee/queries.js +0 -17
- package/src/hooks/useFavoriteStores/index.js +0 -19
- package/src/hooks/useFavoriteStores/queries.js +0 -47
- package/src/hooks/useFormTools/index.js +0 -100
- package/src/hooks/useFormatDate/index.js +0 -33
- package/src/hooks/useGetStoreCookie/index.js +0 -22
- package/src/hooks/useImagesStore/index.js +0 -183
- package/src/hooks/useLogout/helpers/BroadcastChannel.js +0 -32
- package/src/hooks/useLogout/helpers/apiBaseUrl.js +0 -8
- package/src/hooks/useLogout/helpers/fetchData.js +0 -29
- package/src/hooks/useLogout/helpers/getCsrfToken.js +0 -30
- package/src/hooks/useLogout/helpers/index.js +0 -54
- package/src/hooks/useLogout/helpers/logger.js +0 -72
- package/src/hooks/useLogout/helpers/parseUrl.js +0 -36
- package/src/hooks/useLogout/index.js +0 -46
- package/src/hooks/useManageQueryParams/index.js +0 -37
- package/src/hooks/useMobile/index.js +0 -39
- package/src/hooks/useOrders/queries.js +0 -328
- package/src/hooks/useProductsFood/index.js +0 -234
- package/src/hooks/useProductsFood/useEditProduct.js +0 -8
- package/src/hooks/useProductsFood/usetagsProducts.js +0 -94
- package/src/hooks/useRestaurant/index.js +0 -19
- package/src/hooks/useSales/helpers/index.js +0 -8
- package/src/hooks/useSales/index.js +0 -1102
- package/src/hooks/useSales/useGetSale.js +0 -13
- package/src/hooks/useSales/useTotalSales.js +0 -24
- package/src/hooks/useStore/index.js +0 -70
- package/src/hooks/useUpdateExtProductFoodsSubOptional/index.js +0 -38
- package/src/index.jsx +0 -4
- package/src/utils/index.js +0 -141
- /package/src/config/client/{index.js → index.ts} +0 -0
- /package/src/hooks/getCategoriesWithProduct/helpers/{index.js → index.ts} +0 -0
- /package/src/hooks/useAnimationFrame/{index.js → index.ts} +0 -0
- /package/src/hooks/useAsideCart/helpers/{index.js → index.ts} +0 -0
- /package/src/hooks/useAsideCart/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useCart/{index.js → index.ts} +0 -0
- /package/src/hooks/useDeleteSubProductOptional/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useDessert/helpers/{index.js → index.ts} +0 -0
- /package/src/hooks/useDynamicAuth/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useEditSubProductOptional/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useFetchJson/{index.js → index.ts} +0 -0
- /package/src/hooks/useFormatNumberPhone/{index.js → index.ts} +0 -0
- /package/src/hooks/useGenerateNumberArray/{index.js → index.ts} +0 -0
- /package/src/hooks/useGetFoodRecomended/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useGetMinPrice/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useGetOneStoreRating/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useGoogleLogin/{loadScript.js → loadScript.ts} +0 -0
- /package/src/hooks/useGoogleLogin/{removeScript.js → removeScript.ts} +0 -0
- /package/src/hooks/useInnerHtml/{index.js → index.ts} +0 -0
- /package/src/hooks/useKeypress/{index.js → index.ts} +0 -0
- /package/src/hooks/useLocationNavigate/{index.js → index.ts} +0 -0
- /package/src/{security/index.js → hooks/useManageNewOrder/helpers/mock.ts} +0 -0
- /package/src/hooks/useMutateHeight/{index.js → index.ts} +0 -0
- /package/src/hooks/useOrderClient/{index.js → index.ts} +0 -0
- /package/src/hooks/useProviders/{index.js → index.ts} +0 -0
- /package/src/hooks/useProviders/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useProvidersStore/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useReactToPrint/{index.js → index.txt} +0 -0
- /package/src/hooks/useSaveAvailableProduct/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useSchedule/{queries.js → queries.ts} +0 -0
- /package/src/hooks/useScroll/{index.js → index.ts} +0 -0
- /package/src/hooks/useScrollRotate/{index.js → index.ts} +0 -0
- /package/src/hooks/useSetState/{index.js → index.ts} +0 -0
- /package/src/hooks/useStatusOrdersClient/helpers/{index.js → index.ts} +0 -0
- /package/src/hooks/useStoreCalendar/{index.js → index.ts} +0 -0
- /package/src/hooks/useStoreContacts/{queries.js → queries.ts} +0 -0
- /package/src/mock/dessert/{index.js → index.ts} +0 -0
- /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 [
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
+
}
|