npm-pkg-hook 1.12.7 → 1.12.9
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 +0 -0
- package/.env +5 -0
- package/.github/pull_request_template.md +18 -0
- package/.github/workflows/pepeline.yaml +30 -0
- package/dist/index.js +47752 -10080
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +47068 -9612
- package/dist/index.mjs.map +1 -0
- package/eslint.config.mts +153 -0
- package/expire.json +1 -0
- package/jsconfig.json +28 -0
- package/package.json +24 -61
- package/script.txt +7 -0
- package/src/config/client/errors.ts +39 -0
- package/src/config/client/index.ts +1 -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/cookies/index.ts +3 -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/helpers/index.ts +7 -0
- package/src/hooks/getCategoriesWithProduct/index.ts +62 -0
- 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 +153 -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/statusOpenStores/helpers/index.ts +124 -0
- package/src/hooks/statusOpenStores/index.ts +221 -0
- package/src/hooks/updateExtProductFoodsOptional/index.ts +49 -0
- 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/useAnimationFrame/index.ts +45 -0
- package/src/hooks/useAnimationText/index.ts +31 -0
- package/src/hooks/useAsideCart/helpers/index.ts +22 -0
- package/src/hooks/useAsideCart/index.ts +217 -0
- package/src/hooks/useAsideCart/queries.ts +10 -0
- package/src/hooks/useBanner/index.ts +20 -0
- package/src/hooks/useCart/index.ts +2 -0
- package/src/hooks/useCart/queries.ts +174 -0
- package/src/hooks/useCart/useCart/helpers/index.ts +79 -0
- package/src/hooks/useCart/useCart/index.ts +424 -0
- package/src/hooks/useCart/useGetCart/index.ts +34 -0
- package/src/hooks/useCatWithProduct/index.ts +54 -0
- package/src/hooks/useCatWithProduct/queries.ts +200 -0
- package/src/hooks/useCatWithProduct/types/index.ts +104 -0
- package/src/hooks/useCatWithProductClient/index.ts +57 -0
- package/src/hooks/useCatWithProductClient/queries.ts +56 -0
- package/src/hooks/useCategoriesProduct/index.ts +14 -0
- package/src/hooks/useCategoriesProduct/queries.ts +16 -0
- package/src/hooks/useCategoryInStore/index.ts +167 -0
- package/src/hooks/useCategoryInStore/queries.ts +78 -0
- package/src/hooks/useCategoryStore/index.ts +8 -0
- package/src/hooks/useCategoryStore/queries.ts +16 -0
- package/src/hooks/useChartData/index.ts +171 -0
- package/src/hooks/useChartData/useChartData/index.ts +200 -0
- package/src/hooks/useChartData/useChartDataAllOrders/index.ts +94 -0
- package/src/hooks/useChatRoomSubscription/index.ts +28 -0
- package/src/hooks/useCheckbox/index.ts +115 -0
- package/src/hooks/useCities/index.ts +14 -0
- package/src/hooks/useCities/queries.ts +12 -0
- package/src/hooks/useClients/index.ts +97 -0
- 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 +22 -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.ts +52 -0
- package/src/hooks/useCreateProduct/helpers/useEditImageProduct/index.ts +182 -0
- 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.ts +32 -0
- package/src/hooks/useDeleteSubProductOptional/queries.ts +10 -0
- 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/helpers/index.ts +51 -0
- package/src/hooks/useDessert/index.ts +529 -0
- 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.ts +79 -0
- package/src/hooks/useDropzone/index.ts +94 -0
- package/src/hooks/useDynamicAuth/index.ts +14 -0
- package/src/hooks/useDynamicAuth/queries.ts +24 -0
- package/src/hooks/useEditCategory/index.ts +41 -0
- package/src/hooks/useEditOneExtProductFoodOptional/index.ts +28 -0
- package/src/hooks/useEditOneExtProductFoodOptional/queries.ts +16 -0
- package/src/hooks/useEditSubProductOptional/index.ts +12 -0
- package/src/hooks/useEditSubProductOptional/queries.ts +10 -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.ts +34 -0
- package/src/hooks/useFavoriteStores/index.ts +31 -0
- package/src/hooks/useFavoriteStores/queries.ts +54 -0
- package/src/hooks/useFetchJson/index.ts +25 -0
- package/src/hooks/useFetchMoreInteractions/index.jsx +39 -0
- package/src/hooks/useFilterConfigs/index.ts +173 -0
- package/src/hooks/useFingerprintjs/index.ts +197 -0
- package/src/hooks/useFormTools/index.ts +143 -0
- package/src/hooks/useFormatDate/index.ts +91 -0
- package/src/hooks/useFormatNumberPhone/index.ts +23 -0
- package/src/hooks/useFullScreenMode/index.ts +61 -0
- package/src/hooks/useGenerateNumberArray/index.ts +17 -0
- package/src/hooks/useGetAllLocationUser/index.ts +13 -0
- package/src/hooks/useGetAllLocationUser/queries.ts +44 -0
- package/src/hooks/useGetAllSales/index.ts +26 -0
- package/src/hooks/useGetCookies/index.ts +43 -0
- package/src/hooks/useGetExtProductFoodsSubOptionalAll/index.ts +15 -0
- package/src/hooks/useGetFoodRecomended/index.ts +33 -0
- package/src/hooks/useGetFoodRecomended/queries.ts +47 -0
- package/src/hooks/useGetMessagesToRoom/index.ts +23 -0
- package/src/hooks/useGetMinPrice/index.ts +13 -0
- package/src/hooks/useGetMinPrice/queries.ts +7 -0
- package/src/hooks/useGetOneStoreRating/index.ts +41 -0
- package/src/hooks/useGetOneStoreRating/queries.ts +18 -0
- package/src/hooks/useGetSalesAmountToday/index.ts +31 -0
- package/src/hooks/useGetStoreCookie/index.ts +21 -0
- package/src/hooks/useGoogleLogin/index.ts +169 -0
- package/src/hooks/useGoogleLogin/loadScript.ts +15 -0
- package/src/hooks/useGoogleLogin/removeScript.ts +7 -0
- package/src/hooks/useHover/index.ts +32 -0
- package/src/hooks/useImageOptimization/index.ts +32 -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.ts +55 -0
- package/src/hooks/useImagesStore/index.ts +227 -0
- package/src/hooks/useImagesStore/queries.ts +193 -0
- 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/useInnerHtml/index.ts +39 -0
- package/src/hooks/useIntersection/index.ts +84 -0
- 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/useKeypress/index.ts +28 -0
- package/src/hooks/useLazyScript/index.ts +74 -0
- package/src/hooks/useLocalBackendIp/index.ts +34 -0
- package/src/hooks/useLocalSorage/index.ts +36 -0
- package/src/hooks/useLocationManager/index.ts +63 -0
- package/src/hooks/useLocationNavigate/index.ts +54 -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/helpers/mock.ts +0 -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 +29 -0
- package/src/hooks/useModules/index.ts +124 -0
- package/src/hooks/useMouse/index.ts +55 -0
- package/src/hooks/useMutateHeight/index.ts +36 -0
- package/src/hooks/useOrderClient/index.ts +5 -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/useOrdersFromStore/index.ts +78 -0
- 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.ts +964 -0
- 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/index.ts +3 -0
- package/src/hooks/useProviders/queries.ts +31 -0
- package/src/hooks/useProviders/useProvidersCreateStore/index.ts +13 -0
- package/src/hooks/useProviders/useProvidersDataStore/index.ts +25 -0
- package/src/hooks/useProvidersStore/index.ts +25 -0
- package/src/hooks/useProvidersStore/queries.ts +31 -0
- 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.ts +54 -0
- package/src/hooks/useRatingArrayData/queries.ts +19 -0
- package/src/hooks/useReactToPrint/index.txt +1223 -0
- package/src/hooks/useRemoveExtraProductFoodsOptional/index.ts +24 -0
- package/src/hooks/useRemoveExtraProductFoodsOptional/queries.ts +48 -0
- package/src/hooks/useReport/index.ts +48 -0
- package/src/hooks/useReport/queries.ts +72 -0
- 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.ts +81 -0
- 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.ts +532 -0
- 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.ts +38 -0
- package/src/hooks/useSaveAvailableProduct/index.ts +32 -0
- package/src/hooks/useSaveAvailableProduct/queries.ts +10 -0
- package/src/hooks/useSaveLocation/index.ts +17 -0
- package/src/hooks/useSaveLocation/queries.ts +19 -0
- package/src/hooks/useSchedule/index.ts +35 -0
- package/src/hooks/useSchedule/queries.ts +43 -0
- package/src/hooks/useSchedule/schedule.ts +79 -0
- package/src/hooks/useScheduleData/index.ts +135 -0
- package/src/hooks/useScroll/index.ts +56 -0
- package/src/hooks/useScrollRotate/index.ts +16 -0
- package/src/hooks/useSetImageProducts/index.ts +59 -0
- package/src/hooks/useSetImageProducts/queries.ts +18 -0
- package/src/hooks/useSetSession/index.ts +44 -0
- package/src/hooks/useSetState/index.ts +24 -0
- 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.ts +195 -0
- package/src/hooks/useStatusOrdersClient/helpers/index.ts +14 -0
- package/src/hooks/useStatusOrdersClient/index.ts +18 -0
- package/src/hooks/useStatusOrdersClient/queries.ts +80 -0
- 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.ts +163 -0
- package/src/hooks/useStoreCalendar/index.ts +5 -0
- package/src/hooks/useStoreContacts/index.ts +53 -0
- package/src/hooks/useStoreContacts/queries.ts +48 -0
- 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.ts +39 -0
- 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.ts +131 -0
- package/src/hooks/useUpdateCartCookie/index.ts +60 -0
- package/src/hooks/useUpdateDashboardComponent/index.ts +91 -0
- package/src/hooks/useUpdateExistingOrders/index.ts +85 -0
- 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.ts +24 -0
- package/src/hooks/useUser/queries.ts +131 -0
- package/src/hooks/useWeeklyStockMovement/helpers/index.ts +32 -0
- package/src/hooks/useWeeklyStockMovement/index.ts +52 -0
- package/src/hooks/useWindowSize/index.ts +45 -0
- package/src/index.ts +8 -0
- package/src/mock/dessert/index.ts +16 -0
- package/src/mock/index.ts +1 -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 +16 -0
- package/tsconfig.json +21 -0
- package/tsup.config.ts +24 -0
- package/dist/index.cjs +0 -20089
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import { useMutation } from '@apollo/client'
|
|
2
|
+
import {
|
|
3
|
+
useCallback,
|
|
4
|
+
useEffect,
|
|
5
|
+
useMemo,
|
|
6
|
+
useRef,
|
|
7
|
+
useState,
|
|
8
|
+
createRef
|
|
9
|
+
} from 'react'
|
|
10
|
+
|
|
11
|
+
import { useDeleteExtraProductFoods } from '../useDeleteExtraProductFoods'
|
|
12
|
+
import { useUpdateMultipleExtProduct } from '../useUpdateMultipleExtProduct'
|
|
13
|
+
|
|
14
|
+
import { findNumbersExceedingRange, transformData, updateErrorFieldByIndex } from './helpers'
|
|
15
|
+
import { EDIT_EXTRA_PRODUCT_FOODS } from './queries'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
export const useDessertWithPrice = ({
|
|
19
|
+
dataExtra = [],
|
|
20
|
+
sendNotification = ({
|
|
21
|
+
title,
|
|
22
|
+
description,
|
|
23
|
+
backgroundColor
|
|
24
|
+
}) => {
|
|
25
|
+
return {
|
|
26
|
+
title,
|
|
27
|
+
description,
|
|
28
|
+
backgroundColor
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
setAlertBox = ({ message, duration = 10000, success = true }) => { return { message, duration, success } }
|
|
32
|
+
} = {}) => {
|
|
33
|
+
const [selected, setSelected] = useState({
|
|
34
|
+
loading: false,
|
|
35
|
+
exPid: null
|
|
36
|
+
})
|
|
37
|
+
const [editExtraProductFoods] = useMutation(EDIT_EXTRA_PRODUCT_FOODS)
|
|
38
|
+
|
|
39
|
+
const initialLine = useMemo(() => {
|
|
40
|
+
return {
|
|
41
|
+
extraName: '',
|
|
42
|
+
extraPrice: '',
|
|
43
|
+
exState: false
|
|
44
|
+
}
|
|
45
|
+
}, [])
|
|
46
|
+
|
|
47
|
+
const initialLineItems = useMemo(() => {
|
|
48
|
+
return {
|
|
49
|
+
Lines: [
|
|
50
|
+
{
|
|
51
|
+
extraName: '',
|
|
52
|
+
extraPrice: '',
|
|
53
|
+
exState: false
|
|
54
|
+
},
|
|
55
|
+
(initialLine)
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
}, [initialLine])
|
|
59
|
+
const transformedData = transformData(dataExtra)
|
|
60
|
+
|
|
61
|
+
const [LineItems, setLine] = useState(
|
|
62
|
+
Array.isArray(dataExtra) && dataExtra.length > 0 ? { Lines: transformedData } : initialLineItems
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
const inputRefs = useRef(LineItems.Lines.map(() => {return createRef()}))
|
|
66
|
+
|
|
67
|
+
const handleSelect = (item, index) => {
|
|
68
|
+
try {
|
|
69
|
+
const { exPid } = item || {}
|
|
70
|
+
setSelected({ exPid, loading: false })
|
|
71
|
+
if (inputRefs?.current[index]) {
|
|
72
|
+
inputRefs.current[index].current.focus()
|
|
73
|
+
}
|
|
74
|
+
} catch (error) {
|
|
75
|
+
return null
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
// Asegurándote de que las referencias se actualicen si LineItems cambia
|
|
81
|
+
inputRefs.current = LineItems.Lines.map((_, i) => {return inputRefs.current[i] || createRef()})
|
|
82
|
+
}, [LineItems])
|
|
83
|
+
|
|
84
|
+
const handleCleanLines = useCallback(() => {
|
|
85
|
+
setLine(Array.isArray(dataExtra) && dataExtra.length > 0 ? { Lines: transformedData } : initialLineItems)
|
|
86
|
+
}, [initialLineItems])
|
|
87
|
+
|
|
88
|
+
const [updateMultipleExtProduct, { loading }] = useUpdateMultipleExtProduct({
|
|
89
|
+
handleCleanLines: () => { },
|
|
90
|
+
sendNotification
|
|
91
|
+
})
|
|
92
|
+
/**
|
|
93
|
+
* Handles the addition of two new lines to the Lines array in LineItems state.
|
|
94
|
+
*/
|
|
95
|
+
const handleAdd = useCallback(() => {
|
|
96
|
+
try {
|
|
97
|
+
// Ensure that LineItems and initialLine are not null or undefined
|
|
98
|
+
if (!LineItems || !initialLine) {
|
|
99
|
+
throw new Error('Han ocurrido un error.')
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Ensure that LineItems.Lines is an array
|
|
103
|
+
if (!Array.isArray(LineItems.Lines)) {
|
|
104
|
+
throw new Error('Han ocurrido un error.')
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Clone the existing Lines array and add two new objects (clones of initialLine) to it
|
|
108
|
+
const Lines = [...LineItems.Lines, { ...initialLine }]
|
|
109
|
+
|
|
110
|
+
// Update the LineItems state with the new Lines array
|
|
111
|
+
setLine((prevLineItems) => { return { ...prevLineItems, Lines } })
|
|
112
|
+
} catch (error) {
|
|
113
|
+
sendNotification({
|
|
114
|
+
title: error.message,
|
|
115
|
+
description: 'Error',
|
|
116
|
+
backgroundColor: 'error'
|
|
117
|
+
})
|
|
118
|
+
}
|
|
119
|
+
}, [LineItems, initialLine, setLine])
|
|
120
|
+
|
|
121
|
+
const handleFocusChange = (index) => {
|
|
122
|
+
const lastItem = LineItems.Lines.length - 1
|
|
123
|
+
if (lastItem === index) {
|
|
124
|
+
handleAdd()
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Handles changes in line items, updating the state accordingly.
|
|
130
|
+
* @param {number} index - The index of the line item being updated.
|
|
131
|
+
* @param {string} name - The name of the attribute being changed.
|
|
132
|
+
* @param {any} value - The new value of the attribute.
|
|
133
|
+
*/
|
|
134
|
+
const handleLineChange = (index, name, value) => {
|
|
135
|
+
const newLines = LineItems.Lines.map((line, i) => {
|
|
136
|
+
if (i !== index) return { ...line }
|
|
137
|
+
|
|
138
|
+
const newLine = { ...line }
|
|
139
|
+
|
|
140
|
+
if (name === 'extraName' || name === 'extraPrice') {
|
|
141
|
+
newLine[name] = value
|
|
142
|
+
} else if (name === 'exState') {
|
|
143
|
+
newLine[name] = value.target.checked
|
|
144
|
+
} else {
|
|
145
|
+
newLine[name] = value
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return newLine
|
|
149
|
+
})
|
|
150
|
+
|
|
151
|
+
setLine({ ...LineItems, Lines: newLines })
|
|
152
|
+
}
|
|
153
|
+
const { deleteExtraProductFoods } = useDeleteExtraProductFoods()
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Filter out a specific line from the LineItems array.
|
|
157
|
+
* @param {number} index - Index of the line to be filtered out.
|
|
158
|
+
*/
|
|
159
|
+
const filterOneLine = (index) => {
|
|
160
|
+
// Use optional chaining to safely access nested properties.
|
|
161
|
+
const Lines = LineItems?.Lines?.filter((_, i) => { return i !== index })
|
|
162
|
+
// Use spread operator to create a new object with the filtered Lines array.
|
|
163
|
+
return setLine({ ...LineItems, Lines })
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Removes a product extra by index or external product ID.
|
|
168
|
+
*
|
|
169
|
+
* @param {number} i - Index of the item in the list.
|
|
170
|
+
* @param {string} [exPid] - External product ID to remove (optional).
|
|
171
|
+
* @returns {Promise<void>}
|
|
172
|
+
*/
|
|
173
|
+
const handleRemove = async (i, exPid) => {
|
|
174
|
+
try {
|
|
175
|
+
if (!exPid) {
|
|
176
|
+
return filterOneLine(i)
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
const findDataExtra = dataExtra?.find(x => {return x?.exPid === exPid})
|
|
180
|
+
if (!findDataExtra) return
|
|
181
|
+
|
|
182
|
+
await deleteExtraProductFoods({
|
|
183
|
+
variables: {
|
|
184
|
+
state: 1,
|
|
185
|
+
id: exPid
|
|
186
|
+
},
|
|
187
|
+
update: (cache, { data }) => {
|
|
188
|
+
const res = data?.deleteExtraProduct
|
|
189
|
+
const success = res?.success
|
|
190
|
+
const message = res?.message || ''
|
|
191
|
+
|
|
192
|
+
if (!success) {
|
|
193
|
+
return sendNotification({
|
|
194
|
+
title: 'Error',
|
|
195
|
+
description: message,
|
|
196
|
+
backgroundColor: 'error'
|
|
197
|
+
})
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
sendNotification({
|
|
201
|
+
title: 'Producto eliminado',
|
|
202
|
+
description: message,
|
|
203
|
+
backgroundColor: 'success'
|
|
204
|
+
})
|
|
205
|
+
|
|
206
|
+
cache.modify({
|
|
207
|
+
fields: {
|
|
208
|
+
ExtProductFoodsAll: (dataOld = []) => {
|
|
209
|
+
if (!Array.isArray(dataOld)) return dataOld
|
|
210
|
+
|
|
211
|
+
const transformedData = transformData(dataOld)
|
|
212
|
+
const Lines = transformedData.filter((_, index) => {return index !== i})
|
|
213
|
+
const newCache = dataOld.filter((_, index) => {return index !== i})
|
|
214
|
+
|
|
215
|
+
setLine(prev => {return {
|
|
216
|
+
...prev,
|
|
217
|
+
Lines
|
|
218
|
+
}})
|
|
219
|
+
|
|
220
|
+
return newCache
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
})
|
|
224
|
+
}
|
|
225
|
+
})
|
|
226
|
+
} catch (error) {
|
|
227
|
+
console.log('🚀 ~ handleRemove ~ error:', error)
|
|
228
|
+
sendNotification({
|
|
229
|
+
title: 'Error',
|
|
230
|
+
description: 'Ocurrió un error al eliminar el producto',
|
|
231
|
+
backgroundColor: 'error'
|
|
232
|
+
})
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
useEffect(() => {
|
|
237
|
+
setLine(Array.isArray(dataExtra) && dataExtra.length > 0 ? { Lines: transformedData } : initialLineItems)
|
|
238
|
+
}, [dataExtra.length])
|
|
239
|
+
|
|
240
|
+
const prepareAndValidateData = useCallback((pId) => {
|
|
241
|
+
const dataArr = LineItems?.Lines?.map(({ extraPrice, exState, extraName }) => {return {
|
|
242
|
+
extraPrice,
|
|
243
|
+
exState: exState === true ? 1 : 0,
|
|
244
|
+
extraName,
|
|
245
|
+
pId
|
|
246
|
+
}})
|
|
247
|
+
console.log(dataArr)
|
|
248
|
+
const message = 'Complete los campos vacíos'
|
|
249
|
+
const findInputEmpty = dataArr?.find(({ extraName }) => {return extraName === ''})
|
|
250
|
+
const findInputEmptyPrice = dataArr?.find(({ extraPrice }) => {return isNaN(extraPrice) || extraPrice === ''})
|
|
251
|
+
|
|
252
|
+
if (findInputEmpty || findInputEmptyPrice) {
|
|
253
|
+
setAlertBox({ message })
|
|
254
|
+
return null
|
|
255
|
+
}
|
|
256
|
+
return dataArr
|
|
257
|
+
}, [LineItems])
|
|
258
|
+
|
|
259
|
+
const handleEdit = async (i, exPid) => {
|
|
260
|
+
setSelected({ exPid: null, loading: true })
|
|
261
|
+
const findOneExtra = LineItems?.Lines?.find((x, i) => { return x?.exPid === exPid })
|
|
262
|
+
const { extraName, extraPrice: price } = findOneExtra || {}
|
|
263
|
+
const extraPrice = price
|
|
264
|
+
const { data } = await editExtraProductFoods({
|
|
265
|
+
variables: {
|
|
266
|
+
exPid,
|
|
267
|
+
extraName,
|
|
268
|
+
extraPrice
|
|
269
|
+
},
|
|
270
|
+
update: (cache) => {
|
|
271
|
+
cache.modify({
|
|
272
|
+
fields: {
|
|
273
|
+
ExtProductFoodsAll: () => {
|
|
274
|
+
return LineItems?.Lines || []
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
})
|
|
278
|
+
}
|
|
279
|
+
})
|
|
280
|
+
if (!data?.editExtraProductFoods?.success) {
|
|
281
|
+
return sendNotification({
|
|
282
|
+
title: 'Error',
|
|
283
|
+
description: data?.editExtraProductFoods?.message || '',
|
|
284
|
+
backgroundColor: 'error'
|
|
285
|
+
})
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
if (data?.editExtraProductFoods?.success) {
|
|
289
|
+
return sendNotification({
|
|
290
|
+
title: 'Producto actualizado',
|
|
291
|
+
description: data?.editExtraProductFoods?.message || '',
|
|
292
|
+
backgroundColor: 'success'
|
|
293
|
+
})
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
*
|
|
299
|
+
* @param items
|
|
300
|
+
* @param pId
|
|
301
|
+
*/
|
|
302
|
+
function filterItemsWithValidExPid (items, pId) {
|
|
303
|
+
// Primero, filtrar los elementos basados en exPid
|
|
304
|
+
const filteredItems = items.filter(({ exPid }) => {
|
|
305
|
+
const isExPidValid = !exPid
|
|
306
|
+
return isExPidValid
|
|
307
|
+
})
|
|
308
|
+
|
|
309
|
+
// Luego, transformar los elementos filtrados
|
|
310
|
+
return filteredItems.map(({ exPid, extraPrice, exState, extraName }) => {return {
|
|
311
|
+
exPid,
|
|
312
|
+
extraPrice,
|
|
313
|
+
exState: exState === true ? 1 : 0,
|
|
314
|
+
extraName,
|
|
315
|
+
pId
|
|
316
|
+
}})
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
const handleSubmit = ({ pId }) => {
|
|
320
|
+
try {
|
|
321
|
+
const checkNumberRange = findNumbersExceedingRange(LineItems?.Lines)
|
|
322
|
+
updateErrorFieldByIndex({ checkNumberRange, setLine })
|
|
323
|
+
if (checkNumberRange?.length > 0) {
|
|
324
|
+
return setAlertBox({ message: 'El precio no puede ser tan alto', duration: 10000 })
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
if (!prepareAndValidateData(pId)) return
|
|
328
|
+
const dataArr = LineItems?.Lines?.map(x => {
|
|
329
|
+
const extraPrice = x.extraPrice
|
|
330
|
+
const extraName = x.extraName
|
|
331
|
+
return {
|
|
332
|
+
extraPrice,
|
|
333
|
+
exState: x.exState === true ? 1 : 0,
|
|
334
|
+
extraName,
|
|
335
|
+
pId
|
|
336
|
+
}
|
|
337
|
+
})
|
|
338
|
+
const filteredItems = filterItemsWithValidExPid(LineItems?.Lines, pId)
|
|
339
|
+
|
|
340
|
+
return updateMultipleExtProduct({
|
|
341
|
+
variables: {
|
|
342
|
+
inputLineItems: {
|
|
343
|
+
setData: filteredItems
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
update: (cache) => {
|
|
347
|
+
cache.modify({
|
|
348
|
+
fields: {
|
|
349
|
+
ExtProductFoodsAll: () => {
|
|
350
|
+
return dataArr
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
})
|
|
354
|
+
}
|
|
355
|
+
}).then((res) => {
|
|
356
|
+
setAlertBox({ message: 'Se ha creado correctamente', duration: 7000, success: true })
|
|
357
|
+
})
|
|
358
|
+
} catch (error) {
|
|
359
|
+
setAlertBox({ message: `${error}`, duration: 7000 })
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
const isLoading = loading
|
|
363
|
+
|
|
364
|
+
return {
|
|
365
|
+
initialLine,
|
|
366
|
+
inputRefs,
|
|
367
|
+
selected,
|
|
368
|
+
loading: isLoading,
|
|
369
|
+
initialLineItems,
|
|
370
|
+
LineItems,
|
|
371
|
+
handleCleanLines,
|
|
372
|
+
handleLineChange,
|
|
373
|
+
handleSelect,
|
|
374
|
+
handleFocusChange,
|
|
375
|
+
setLine,
|
|
376
|
+
handleEdit,
|
|
377
|
+
handleRemove,
|
|
378
|
+
handleAdd,
|
|
379
|
+
handleSubmit
|
|
380
|
+
}
|
|
381
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { gql } from '@apollo/client'
|
|
2
|
+
|
|
3
|
+
export const DELETE_EXTRA_PRODUCTS = gql`
|
|
4
|
+
mutation deleteExtraProduct($id: ID, $state: Int){
|
|
5
|
+
deleteExtraProduct(id: $id, state: $state){
|
|
6
|
+
success,
|
|
7
|
+
message
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
`
|
|
11
|
+
export const EDIT_EXTRA_PRODUCT_FOODS = gql`
|
|
12
|
+
mutation EditExtraProductFoods($exPid: ID, $state: Int, $extraName: String, $extraPrice: Float) {
|
|
13
|
+
editExtraProductFoods(exPid: $exPid, state: $state, extraName: $extraName, extraPrice: $extraPrice) {
|
|
14
|
+
success
|
|
15
|
+
message
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { useEffect, useRef, useState } from 'react'
|
|
3
|
+
|
|
4
|
+
export const useDevWS = () => {
|
|
5
|
+
const [status, setStatus] = useState('loading')
|
|
6
|
+
const wsRef = useRef<WebSocket | null>(null)
|
|
7
|
+
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
let reconnectTimer: any
|
|
10
|
+
|
|
11
|
+
const connect = async () => {
|
|
12
|
+
try {
|
|
13
|
+
const r = await fetch('/api/ws-port')
|
|
14
|
+
const { port } = await r.json()
|
|
15
|
+
|
|
16
|
+
if (!port) {
|
|
17
|
+
setStatus('down')
|
|
18
|
+
reconnectTimer = setTimeout(connect, 2000)
|
|
19
|
+
return
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const ws = new WebSocket(`ws://localhost:${port}`)
|
|
23
|
+
wsRef.current = ws
|
|
24
|
+
|
|
25
|
+
ws.onopen = () => {
|
|
26
|
+
setStatus('up')
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
ws.onerror = () => {
|
|
30
|
+
setStatus('down')
|
|
31
|
+
ws.close()
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
ws.onclose = () => {
|
|
35
|
+
setStatus('down')
|
|
36
|
+
reconnectTimer = setTimeout(connect, 2000)
|
|
37
|
+
}
|
|
38
|
+
} catch {
|
|
39
|
+
setStatus('down')
|
|
40
|
+
reconnectTimer = setTimeout(connect, 2000)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
connect()
|
|
45
|
+
|
|
46
|
+
return () => {
|
|
47
|
+
wsRef.current?.close()
|
|
48
|
+
clearTimeout(reconnectTimer)
|
|
49
|
+
}
|
|
50
|
+
}, [])
|
|
51
|
+
|
|
52
|
+
return status
|
|
53
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { gql } from '@apollo/client'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Query to fetch all device users with extended fields
|
|
5
|
+
*/
|
|
6
|
+
export const GET_ALL_DEVICES = gql`
|
|
7
|
+
query getDeviceUsers {
|
|
8
|
+
getDeviceUsers {
|
|
9
|
+
dId
|
|
10
|
+
id
|
|
11
|
+
deviceId
|
|
12
|
+
deviceName
|
|
13
|
+
locationFormat
|
|
14
|
+
type
|
|
15
|
+
shortName
|
|
16
|
+
platform
|
|
17
|
+
version
|
|
18
|
+
family
|
|
19
|
+
os
|
|
20
|
+
model
|
|
21
|
+
ip
|
|
22
|
+
isBot
|
|
23
|
+
dState
|
|
24
|
+
createdAt
|
|
25
|
+
updatedAt
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
`
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useQuery } from '@apollo/client'
|
|
2
|
+
|
|
3
|
+
import { GET_ALL_DEVICES } from './queries'
|
|
4
|
+
|
|
5
|
+
export const useDevices = () => {
|
|
6
|
+
const { data, loading } = useQuery(GET_ALL_DEVICES, {
|
|
7
|
+
onError: (error) => {
|
|
8
|
+
console.error(error)
|
|
9
|
+
}
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
// Función para formatear la fecha
|
|
13
|
+
// const { formatDateInTimeZone } = useFormatDate({})
|
|
14
|
+
|
|
15
|
+
const listDevices = Array.isArray(data?.getDeviceUsers)
|
|
16
|
+
? data?.getDeviceUsers.map((device) => {
|
|
17
|
+
// const formattedDate = formatDateInTimeZone(device.createdAt)
|
|
18
|
+
return {
|
|
19
|
+
...device
|
|
20
|
+
// createdAt: formattedDate
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
: []
|
|
24
|
+
return {
|
|
25
|
+
data: listDevices,
|
|
26
|
+
loading
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { useMutation, gql } from '@apollo/client'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* GraphQL mutation para registrar un nuevo dispositivo
|
|
5
|
+
*/
|
|
6
|
+
const REGISTER_DEVICE_USER = gql`
|
|
7
|
+
mutation RegisterDeviceUser($input: DeviceUserInput!) {
|
|
8
|
+
newRegisterDeviceUser(input: $input) {
|
|
9
|
+
success
|
|
10
|
+
message
|
|
11
|
+
data {
|
|
12
|
+
dId
|
|
13
|
+
id
|
|
14
|
+
deviceId
|
|
15
|
+
deviceName
|
|
16
|
+
locationFormat
|
|
17
|
+
type
|
|
18
|
+
shortName
|
|
19
|
+
platform
|
|
20
|
+
version
|
|
21
|
+
dState
|
|
22
|
+
createdAt
|
|
23
|
+
dState
|
|
24
|
+
}
|
|
25
|
+
errors {
|
|
26
|
+
path
|
|
27
|
+
message
|
|
28
|
+
type
|
|
29
|
+
context {
|
|
30
|
+
limit
|
|
31
|
+
value
|
|
32
|
+
label
|
|
33
|
+
key
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
`
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Custom hook para la mutación RegisterDeviceUser
|
|
42
|
+
* @returns {Object} - Función para registrar el dispositivo y el estado de la operación
|
|
43
|
+
*/
|
|
44
|
+
export const useRegisterDeviceUser = () => {
|
|
45
|
+
const [registerDeviceUser, { loading, error, data }] = useMutation(REGISTER_DEVICE_USER)
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Función para manejar la mutación
|
|
49
|
+
* @param {Object} input - Datos del dispositivo a registrar
|
|
50
|
+
* @returns {Promise<Object>} - Resultado de la operación
|
|
51
|
+
*/
|
|
52
|
+
const handleRegisterDeviceUser = async (input) => {
|
|
53
|
+
try {
|
|
54
|
+
const result = await registerDeviceUser({ variables: { input } })
|
|
55
|
+
|
|
56
|
+
if (result.data?.newRegisterDeviceUser?.success) {
|
|
57
|
+
return { success: true, data: result.data.newRegisterDeviceUser.data }
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
success: false,
|
|
61
|
+
errors: result.data?.newRegisterDeviceUser?.errors || []
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
} catch (err) {
|
|
65
|
+
console.error('Error while registering device user:', err)
|
|
66
|
+
return { success: false, errors: [{ message: err.message }] }
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return [handleRegisterDeviceUser, {
|
|
71
|
+
loading,
|
|
72
|
+
error,
|
|
73
|
+
data
|
|
74
|
+
}]
|
|
75
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const downloadFileFromResponse = async (response, fileName) => {
|
|
2
|
+
try {
|
|
3
|
+
if (!response.ok) {
|
|
4
|
+
throw new Error(`Failed to download file: ${response.statusText}`)
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
const blob = await response.blob()
|
|
8
|
+
const url = window.URL.createObjectURL(blob)
|
|
9
|
+
const link = document.createElement('a')
|
|
10
|
+
link.href = url
|
|
11
|
+
link.setAttribute('download', fileName)
|
|
12
|
+
document.body.appendChild(link)
|
|
13
|
+
link.click()
|
|
14
|
+
document.body.removeChild(link)
|
|
15
|
+
window.URL.revokeObjectURL(url)
|
|
16
|
+
} catch (error) {
|
|
17
|
+
console.error('Error downloading file:', error)
|
|
18
|
+
throw error
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
}
|