@smartbills/react-hooks-sdk 0.0.2-alpha.44 → 0.0.2-alpha.45
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/dist/@types/index.d.ts +1424 -0
- package/dist/@types/index.d.ts.map +1 -0
- package/dist/cjs/apis/SBApiKeys.cjs +55 -0
- package/dist/cjs/apis/SBApiKeys.cjs.map +1 -0
- package/dist/cjs/apis/api-logs/LogsAPI.cjs +42 -0
- package/dist/cjs/apis/api-logs/LogsAPI.cjs.map +1 -0
- package/dist/cjs/apis/attachments/AttachmentsAPI.cjs +147 -0
- package/dist/cjs/apis/attachments/AttachmentsAPI.cjs.map +1 -0
- package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs +88 -0
- package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs.map +1 -0
- package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs +58 -0
- package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs.map +1 -0
- package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs +57 -0
- package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/BusinessAPI.cjs +172 -0
- package/dist/cjs/apis/business/BusinessAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/customers/CustomerAPI.cjs +161 -0
- package/dist/cjs/apis/business/customers/CustomerAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs +71 -0
- package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs +176 -0
- package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/departments/DepartmentApi.cjs +168 -0
- package/dist/cjs/apis/business/departments/DepartmentApi.cjs.map +1 -0
- package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs +137 -0
- package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/fees/FeesAPI.cjs +167 -0
- package/dist/cjs/apis/business/fees/FeesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/locations/LocationsAPI.cjs +133 -0
- package/dist/cjs/apis/business/locations/LocationsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/ProductsAPI.cjs +184 -0
- package/dist/cjs/apis/business/products/ProductsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs +195 -0
- package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs +169 -0
- package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs +183 -0
- package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs +185 -0
- package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs +139 -0
- package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs +143 -0
- package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/tables/TablesAPI.cjs +75 -0
- package/dist/cjs/apis/business/tables/TablesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/taxes/TaxesAPI.cjs +140 -0
- package/dist/cjs/apis/business/taxes/TaxesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs +161 -0
- package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/team/TeamMembersAPI.cjs +93 -0
- package/dist/cjs/apis/business/team/TeamMembersAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/vendors/VendorsAPI.cjs +239 -0
- package/dist/cjs/apis/business/vendors/VendorsAPI.cjs.map +1 -0
- package/dist/cjs/apis/documents/DocumentsAPI.cjs +87 -0
- package/dist/cjs/apis/documents/DocumentsAPI.cjs.map +1 -0
- package/dist/cjs/apis/expenses/ExpensesAPI.cjs +62 -0
- package/dist/cjs/apis/expenses/ExpensesAPI.cjs.map +1 -0
- package/dist/cjs/apis/friends/FriendsAPI.cjs +150 -0
- package/dist/cjs/apis/friends/FriendsAPI.cjs.map +1 -0
- package/dist/cjs/apis/integrations/IntegrationsAPI.cjs +55 -0
- package/dist/cjs/apis/integrations/IntegrationsAPI.cjs.map +1 -0
- package/dist/cjs/apis/invoices/InvoicesAPI.cjs +168 -0
- package/dist/cjs/apis/invoices/InvoicesAPI.cjs.map +1 -0
- package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs +484 -0
- package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs.map +1 -0
- package/dist/cjs/apis/notifications/NotificationAPI.cjs +103 -0
- package/dist/cjs/apis/notifications/NotificationAPI.cjs.map +1 -0
- package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs +125 -0
- package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs.map +1 -0
- package/dist/cjs/apis/receipts/ReceiptAPI.cjs +135 -0
- package/dist/cjs/apis/receipts/ReceiptAPI.cjs.map +1 -0
- package/dist/cjs/apis/user/UserAPI.cjs +130 -0
- package/dist/cjs/apis/user/UserAPI.cjs.map +1 -0
- package/dist/cjs/apis/vendors/VendorsAPI.cjs +171 -0
- package/dist/cjs/apis/vendors/VendorsAPI.cjs.map +1 -0
- package/dist/cjs/context/ApiContext.cjs +94 -0
- package/dist/cjs/context/ApiContext.cjs.map +1 -0
- package/dist/cjs/index.cjs +222 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/apis/SBApiKeys.mjs +55 -0
- package/dist/esm/apis/SBApiKeys.mjs.map +1 -0
- package/dist/esm/apis/api-logs/LogsAPI.mjs +39 -0
- package/dist/esm/apis/api-logs/LogsAPI.mjs.map +1 -0
- package/dist/esm/apis/attachments/AttachmentsAPI.mjs +142 -0
- package/dist/esm/apis/attachments/AttachmentsAPI.mjs.map +1 -0
- package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs +84 -0
- package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs.map +1 -0
- package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs +55 -0
- package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs.map +1 -0
- package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs +54 -0
- package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs.map +1 -0
- package/dist/esm/apis/business/BusinessAPI.mjs +165 -0
- package/dist/esm/apis/business/BusinessAPI.mjs.map +1 -0
- package/dist/esm/apis/business/customers/CustomerAPI.mjs +155 -0
- package/dist/esm/apis/business/customers/CustomerAPI.mjs.map +1 -0
- package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs +68 -0
- package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs +170 -0
- package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/departments/DepartmentApi.mjs +161 -0
- package/dist/esm/apis/business/departments/DepartmentApi.mjs.map +1 -0
- package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs +132 -0
- package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/fees/FeesAPI.mjs +161 -0
- package/dist/esm/apis/business/fees/FeesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/locations/LocationsAPI.mjs +127 -0
- package/dist/esm/apis/business/locations/LocationsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/ProductsAPI.mjs +177 -0
- package/dist/esm/apis/business/products/ProductsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs +188 -0
- package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs +163 -0
- package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs +177 -0
- package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs +179 -0
- package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs +133 -0
- package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/reviews/ReviewsAPI.mjs +137 -0
- package/dist/esm/apis/business/reviews/ReviewsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/tables/TablesAPI.mjs +70 -0
- package/dist/esm/apis/business/tables/TablesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/taxes/TaxesAPI.mjs +134 -0
- package/dist/esm/apis/business/taxes/TaxesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs +153 -0
- package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/team/TeamMembersAPI.mjs +88 -0
- package/dist/esm/apis/business/team/TeamMembersAPI.mjs.map +1 -0
- package/dist/esm/apis/business/vendors/VendorsAPI.mjs +230 -0
- package/dist/esm/apis/business/vendors/VendorsAPI.mjs.map +1 -0
- package/dist/esm/apis/documents/DocumentsAPI.mjs +82 -0
- package/dist/esm/apis/documents/DocumentsAPI.mjs.map +1 -0
- package/dist/esm/apis/expenses/ExpensesAPI.mjs +58 -0
- package/dist/esm/apis/expenses/ExpensesAPI.mjs.map +1 -0
- package/dist/esm/apis/friends/FriendsAPI.mjs +144 -0
- package/dist/esm/apis/friends/FriendsAPI.mjs.map +1 -0
- package/dist/esm/apis/integrations/IntegrationsAPI.mjs +52 -0
- package/dist/esm/apis/integrations/IntegrationsAPI.mjs.map +1 -0
- package/dist/esm/apis/invoices/InvoicesAPI.mjs +161 -0
- package/dist/esm/apis/invoices/InvoicesAPI.mjs.map +1 -0
- package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs +482 -0
- package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs.map +1 -0
- package/dist/esm/apis/notifications/NotificationAPI.mjs +98 -0
- package/dist/esm/apis/notifications/NotificationAPI.mjs.map +1 -0
- package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs +117 -0
- package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs.map +1 -0
- package/dist/esm/apis/receipts/ReceiptAPI.mjs +129 -0
- package/dist/esm/apis/receipts/ReceiptAPI.mjs.map +1 -0
- package/dist/esm/apis/user/UserAPI.mjs +123 -0
- package/dist/esm/apis/user/UserAPI.mjs.map +1 -0
- package/dist/esm/apis/vendors/VendorsAPI.mjs +162 -0
- package/dist/esm/apis/vendors/VendorsAPI.mjs.map +1 -0
- package/dist/esm/context/ApiContext.mjs +86 -0
- package/dist/esm/context/ApiContext.mjs.map +1 -0
- package/dist/esm/index.mjs +39 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/umd/index.js +5056 -0
- package/dist/umd/index.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ApiContext = require('../../../context/ApiContext.cjs');
|
|
4
|
+
var reactQuery = require('@tanstack/react-query');
|
|
5
|
+
var SBApiKeys = require('../../SBApiKeys.cjs');
|
|
6
|
+
|
|
7
|
+
function useListLocationsInfiniteQuery(request = {
|
|
8
|
+
page: 1,
|
|
9
|
+
pageSize: 25
|
|
10
|
+
}, options, config) {
|
|
11
|
+
const client = ApiContext.useApiClient();
|
|
12
|
+
reactQuery.useQueryClient();
|
|
13
|
+
const businessId = ApiContext.useBusinessId();
|
|
14
|
+
if (!businessId) {
|
|
15
|
+
throw new Error("businessId is required for location operations");
|
|
16
|
+
}
|
|
17
|
+
return reactQuery.useInfiniteQuery({
|
|
18
|
+
initialPageParam: request.page || 1,
|
|
19
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Locations, request, options],
|
|
20
|
+
queryFn: async ({
|
|
21
|
+
pageParam = 1
|
|
22
|
+
}) => {
|
|
23
|
+
return await client.businesses.locations.listAsync(businessId, {
|
|
24
|
+
...request,
|
|
25
|
+
page: pageParam
|
|
26
|
+
}, options, config);
|
|
27
|
+
},
|
|
28
|
+
getNextPageParam: lastPage => {
|
|
29
|
+
if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
30
|
+
return lastPage.pagination.currentPage + 1;
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
},
|
|
34
|
+
enabled: !!businessId
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const useGetLocationByIdQuery = (id, options, config) => {
|
|
38
|
+
const client = ApiContext.useApiClient();
|
|
39
|
+
reactQuery.useQueryClient();
|
|
40
|
+
const businessId = ApiContext.useBusinessId();
|
|
41
|
+
if (!businessId) {
|
|
42
|
+
throw new Error("businessId is required for location operations");
|
|
43
|
+
}
|
|
44
|
+
return reactQuery.useQuery({
|
|
45
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Locations, id, options],
|
|
46
|
+
queryFn: async () => await client.businesses.locations.getByIdAsync(businessId, id, options, config),
|
|
47
|
+
enabled: !!businessId
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const useCreateLocationMutation = () => {
|
|
51
|
+
const client = ApiContext.useApiClient();
|
|
52
|
+
const queryClient = reactQuery.useQueryClient();
|
|
53
|
+
const businessId = ApiContext.useBusinessId();
|
|
54
|
+
return reactQuery.useMutation({
|
|
55
|
+
mutationFn: async ({
|
|
56
|
+
request,
|
|
57
|
+
options,
|
|
58
|
+
config
|
|
59
|
+
}) => {
|
|
60
|
+
if (!businessId) {
|
|
61
|
+
throw new Error("businessId is required for location operations");
|
|
62
|
+
}
|
|
63
|
+
return await client.businesses.locations.createAsync(businessId, request, options, config);
|
|
64
|
+
},
|
|
65
|
+
onSuccess: () => {
|
|
66
|
+
queryClient.invalidateQueries({
|
|
67
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Locations]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
const useUpdateLocationMutation = () => {
|
|
73
|
+
const client = ApiContext.useApiClient();
|
|
74
|
+
const queryClient = reactQuery.useQueryClient();
|
|
75
|
+
const businessId = ApiContext.useBusinessId();
|
|
76
|
+
return reactQuery.useMutation({
|
|
77
|
+
mutationFn: async ({
|
|
78
|
+
id,
|
|
79
|
+
request,
|
|
80
|
+
options,
|
|
81
|
+
config
|
|
82
|
+
}) => {
|
|
83
|
+
if (!businessId) {
|
|
84
|
+
throw new Error("businessId is required for location operations");
|
|
85
|
+
}
|
|
86
|
+
return await client.businesses.locations.updateAsync(businessId, id, request, options, config);
|
|
87
|
+
},
|
|
88
|
+
onSuccess: (_, {
|
|
89
|
+
id
|
|
90
|
+
}) => {
|
|
91
|
+
queryClient.invalidateQueries({
|
|
92
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Locations]
|
|
93
|
+
});
|
|
94
|
+
queryClient.invalidateQueries({
|
|
95
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Locations, id]
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
const useDeleteLocationMutation = () => {
|
|
101
|
+
const client = ApiContext.useApiClient();
|
|
102
|
+
const queryClient = reactQuery.useQueryClient();
|
|
103
|
+
const businessId = ApiContext.useBusinessId();
|
|
104
|
+
return reactQuery.useMutation({
|
|
105
|
+
mutationFn: async ({
|
|
106
|
+
id,
|
|
107
|
+
options,
|
|
108
|
+
config
|
|
109
|
+
}) => {
|
|
110
|
+
if (!businessId) {
|
|
111
|
+
throw new Error("businessId is required for location operations");
|
|
112
|
+
}
|
|
113
|
+
await client.businesses.locations.deleteAsync(businessId, id, options, config);
|
|
114
|
+
},
|
|
115
|
+
onSuccess: (_, {
|
|
116
|
+
id
|
|
117
|
+
}) => {
|
|
118
|
+
queryClient.invalidateQueries({
|
|
119
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Locations]
|
|
120
|
+
});
|
|
121
|
+
queryClient.invalidateQueries({
|
|
122
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Locations, id]
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
exports.useCreateLocationMutation = useCreateLocationMutation;
|
|
129
|
+
exports.useDeleteLocationMutation = useDeleteLocationMutation;
|
|
130
|
+
exports.useGetLocationByIdQuery = useGetLocationByIdQuery;
|
|
131
|
+
exports.useListLocationsInfiniteQuery = useListLocationsInfiniteQuery;
|
|
132
|
+
exports.useUpdateLocationMutation = useUpdateLocationMutation;
|
|
133
|
+
//# sourceMappingURL=LocationsAPI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocationsAPI.cjs","sources":["../../../../../src/apis/business/locations/LocationsAPI.ts"],"sourcesContent":["import {\n\tLocationsListRequest,\n\tLocationCreateRequest,\n\tLocationUpdateRequest,\n\tSBLocation,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\nexport function useListLocationsInfiniteQuery(\n\trequest: LocationsListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<LocationsListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for location operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBLocation>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBLocation>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Locations,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.locations.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\nexport const useGetLocationByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for location operations\");\n\t}\n\n\treturn useQuery<SBLocation, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Locations,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.locations.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useCreateLocationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBLocation,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: LocationCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<LocationCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for location operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.locations.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useUpdateLocationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBLocation,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: LocationUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<LocationUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for location operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.locations.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useDeleteLocationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for location operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait client.businesses.locations.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Locations,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n"],"names":["useListLocationsInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","Locations","queryFn","pageParam","businesses","locations","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetLocationByIdQuery","id","useQuery","getByIdAsync","useCreateLocationMutation","queryClient","useMutation","mutationFn","createAsync","onSuccess","invalidateQueries","useUpdateLocationMutation","updateAsync","_","useDeleteLocationMutation","deleteAsync"],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ApiContext = require('../../../context/ApiContext.cjs');
|
|
4
|
+
var reactQuery = require('@tanstack/react-query');
|
|
5
|
+
var SBApiKeys = require('../../SBApiKeys.cjs');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Hook to list products with infinite scrolling
|
|
9
|
+
* @param request - The list request parameters
|
|
10
|
+
* @param options - Optional request options
|
|
11
|
+
* @param config - Optional axios request config
|
|
12
|
+
* @returns Infinite query result containing the paginated products
|
|
13
|
+
*/
|
|
14
|
+
function useListProductsInfiniteQuery(request = {
|
|
15
|
+
page: 1,
|
|
16
|
+
pageSize: 25
|
|
17
|
+
}, options, config) {
|
|
18
|
+
const client = ApiContext.useApiClient();
|
|
19
|
+
reactQuery.useQueryClient();
|
|
20
|
+
const businessId = ApiContext.useBusinessId();
|
|
21
|
+
if (!businessId) {
|
|
22
|
+
throw new Error("businessId is required for product operations");
|
|
23
|
+
}
|
|
24
|
+
return reactQuery.useInfiniteQuery({
|
|
25
|
+
initialPageParam: request.page || 1,
|
|
26
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Products, request, options],
|
|
27
|
+
queryFn: async ({
|
|
28
|
+
pageParam = 1
|
|
29
|
+
}) => {
|
|
30
|
+
return await client.businesses.products.listAsync(businessId, {
|
|
31
|
+
...request,
|
|
32
|
+
page: pageParam
|
|
33
|
+
}, options, config);
|
|
34
|
+
},
|
|
35
|
+
getNextPageParam: lastPage => {
|
|
36
|
+
if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
37
|
+
return lastPage.pagination.currentPage + 1;
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
},
|
|
41
|
+
enabled: !!businessId
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Hook to get a product by ID
|
|
46
|
+
* @param id - The product ID
|
|
47
|
+
* @param options - Optional request options
|
|
48
|
+
* @param config - Optional axios request config
|
|
49
|
+
* @returns Query result containing the product data
|
|
50
|
+
*/
|
|
51
|
+
function useGetProductByIdQuery(id, options, config) {
|
|
52
|
+
const client = ApiContext.useApiClient();
|
|
53
|
+
reactQuery.useQueryClient();
|
|
54
|
+
const businessId = ApiContext.useBusinessId();
|
|
55
|
+
return reactQuery.useQuery({
|
|
56
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Products, id],
|
|
57
|
+
queryFn: async () => {
|
|
58
|
+
if (!businessId) {
|
|
59
|
+
throw new Error("businessId is required for product operations");
|
|
60
|
+
}
|
|
61
|
+
return await client.businesses.products.getByIdAsync(businessId, id, options, config);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Hook to create a new product
|
|
67
|
+
* @returns Mutation function to create a product
|
|
68
|
+
*/
|
|
69
|
+
function useCreateProductMutation() {
|
|
70
|
+
const client = ApiContext.useApiClient();
|
|
71
|
+
const queryClient = reactQuery.useQueryClient();
|
|
72
|
+
const businessId = ApiContext.useBusinessId();
|
|
73
|
+
return reactQuery.useMutation({
|
|
74
|
+
mutationKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Products],
|
|
75
|
+
mutationFn: async request => {
|
|
76
|
+
if (!businessId) {
|
|
77
|
+
throw new Error("businessId is required for product operations");
|
|
78
|
+
}
|
|
79
|
+
return await client.businesses.products.createAsync(businessId, request);
|
|
80
|
+
},
|
|
81
|
+
onSuccess: () => {
|
|
82
|
+
queryClient.invalidateQueries({
|
|
83
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Products]
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Hook to delete a product
|
|
90
|
+
* @returns Mutation function for deleting products
|
|
91
|
+
*/
|
|
92
|
+
function useDeleteProductMutation() {
|
|
93
|
+
const client = ApiContext.useApiClient();
|
|
94
|
+
const queryClient = reactQuery.useQueryClient();
|
|
95
|
+
const businessId = ApiContext.useBusinessId();
|
|
96
|
+
return reactQuery.useMutation({
|
|
97
|
+
mutationFn: async ({
|
|
98
|
+
id,
|
|
99
|
+
options,
|
|
100
|
+
config
|
|
101
|
+
}) => {
|
|
102
|
+
if (!businessId) {
|
|
103
|
+
throw new Error("businessId is required for product operations");
|
|
104
|
+
}
|
|
105
|
+
return await client.businesses.products.deleteAsync(businessId, id, options, config);
|
|
106
|
+
},
|
|
107
|
+
onSuccess: (_, {
|
|
108
|
+
id
|
|
109
|
+
}) => {
|
|
110
|
+
queryClient.invalidateQueries({
|
|
111
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Products]
|
|
112
|
+
});
|
|
113
|
+
queryClient.invalidateQueries({
|
|
114
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Products, id]
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Hook to update a product
|
|
121
|
+
* @returns Mutation function for updating products
|
|
122
|
+
*/
|
|
123
|
+
function useUpdateProductMutation() {
|
|
124
|
+
const client = ApiContext.useApiClient();
|
|
125
|
+
const queryClient = reactQuery.useQueryClient();
|
|
126
|
+
const businessId = ApiContext.useBusinessId();
|
|
127
|
+
return reactQuery.useMutation({
|
|
128
|
+
mutationFn: async ({
|
|
129
|
+
id,
|
|
130
|
+
request,
|
|
131
|
+
options,
|
|
132
|
+
config
|
|
133
|
+
}) => {
|
|
134
|
+
if (!businessId) {
|
|
135
|
+
throw new Error("businessId is required for product operations");
|
|
136
|
+
}
|
|
137
|
+
return await client.businesses.products.updateAsync(businessId, id, request, options, config);
|
|
138
|
+
},
|
|
139
|
+
onSuccess: (_, {
|
|
140
|
+
id
|
|
141
|
+
}) => {
|
|
142
|
+
queryClient.invalidateQueries({
|
|
143
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Products]
|
|
144
|
+
});
|
|
145
|
+
queryClient.invalidateQueries({
|
|
146
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Products, id]
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Hook to batch upsert products
|
|
153
|
+
* @returns Mutation function for batch upsert operations
|
|
154
|
+
*/
|
|
155
|
+
function useBatchUpsertProductsMutation() {
|
|
156
|
+
const client = ApiContext.useApiClient();
|
|
157
|
+
const queryClient = reactQuery.useQueryClient();
|
|
158
|
+
const businessId = ApiContext.useBusinessId();
|
|
159
|
+
return reactQuery.useMutation({
|
|
160
|
+
mutationFn: async ({
|
|
161
|
+
requests,
|
|
162
|
+
options,
|
|
163
|
+
config
|
|
164
|
+
}) => {
|
|
165
|
+
if (!businessId) {
|
|
166
|
+
throw new Error("businessId is required for product operations");
|
|
167
|
+
}
|
|
168
|
+
return await client.businesses.products.batch(businessId, requests, options, config);
|
|
169
|
+
},
|
|
170
|
+
onSuccess: () => {
|
|
171
|
+
queryClient.invalidateQueries({
|
|
172
|
+
queryKey: [SBApiKeys.SBApiKeys.Businesses, businessId, SBApiKeys.SBApiKeys.Products]
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
exports.useBatchUpsertProductsMutation = useBatchUpsertProductsMutation;
|
|
179
|
+
exports.useCreateProductMutation = useCreateProductMutation;
|
|
180
|
+
exports.useDeleteProductMutation = useDeleteProductMutation;
|
|
181
|
+
exports.useGetProductByIdQuery = useGetProductByIdQuery;
|
|
182
|
+
exports.useListProductsInfiniteQuery = useListProductsInfiniteQuery;
|
|
183
|
+
exports.useUpdateProductMutation = useUpdateProductMutation;
|
|
184
|
+
//# sourceMappingURL=ProductsAPI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductsAPI.cjs","sources":["../../../../../src/apis/business/products/ProductsAPI.tsx"],"sourcesContent":["import {\n\tProductListRequest,\n\tProductCreateRequest,\n\tProductUpdateRequest,\n\tSBProduct,\n\tSBRequestOptions,\n\tSBApiException,\n\tBatchUpsertRequest,\n\tProductUpsertRequest,\n\tSBBatch,\n\tSBProductImage,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context/ApiContext\";\n\n/**\n * Hook to list products with infinite scrolling\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result containing the paginated products\n */\nexport function useListProductsInfiniteQuery(\n\trequest: ProductListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<ProductListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProduct>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBProduct>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Products,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.products.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to get a product by ID\n * @param id - The product ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the product data\n */\nexport function useGetProductByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery<SBProduct, Error>({\n\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, id],\n\t\tqueryFn: async () => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook to create a new product\n * @returns Mutation function to create a product\n */\nexport function useCreateProductMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBProduct, SBApiException, ProductCreateRequest>({\n\t\tmutationKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products],\n\t\tmutationFn: async (request: ProductCreateRequest) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product\n * @returns Mutation function for deleting products\n */\nexport function useDeleteProductMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProduct,\n\t\tError,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to update a product\n * @returns Mutation function for updating products\n */\nexport function useUpdateProductMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProduct,\n\t\tError,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: ProductUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<ProductUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to batch upsert products\n * @returns Mutation function for batch upsert operations\n */\nexport function useBatchUpsertProductsMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBatch<SBProduct>,\n\t\tError,\n\t\t{\n\t\t\trequests: BatchUpsertRequest<ProductUpsertRequest>;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<\n\t\t\t\tBatchUpsertRequest<ProductUpsertRequest>\n\t\t\t>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ requests, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.products.batch(\n\t\t\t\tbusinessId,\n\t\t\t\trequests,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n"],"names":["useListProductsInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","Products","queryFn","pageParam","businesses","products","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetProductByIdQuery","id","useQuery","getByIdAsync","useCreateProductMutation","queryClient","useMutation","mutationKey","mutationFn","createAsync","onSuccess","invalidateQueries","useDeleteProductMutation","deleteAsync","_","useUpdateProductMutation","updateAsync","useBatchUpsertProductsMutation","requests","batch"],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ApiContext = require('../../../../context/ApiContext.cjs');
|
|
4
|
+
var reactQuery = require('@tanstack/react-query');
|
|
5
|
+
var SBApiKeys = require('../../../SBApiKeys.cjs');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Hook to fetch a list of product images for a specific product using infinite query
|
|
9
|
+
* @param productId - The ID of the product
|
|
10
|
+
* @param request - The pagination request parameters
|
|
11
|
+
* @param options - Optional request options
|
|
12
|
+
* @param config - Optional Axios request configuration
|
|
13
|
+
* @returns An infinite query result containing paginated product images data
|
|
14
|
+
*/
|
|
15
|
+
function useListProductImagesInfiniteQuery(productId, request = {
|
|
16
|
+
page: 1,
|
|
17
|
+
pageSize: 25
|
|
18
|
+
}, options, config) {
|
|
19
|
+
const client = ApiContext.useApiClient();
|
|
20
|
+
reactQuery.useQueryClient();
|
|
21
|
+
const businessId = ApiContext.useBusinessId();
|
|
22
|
+
if (!businessId) {
|
|
23
|
+
throw new Error("businessId is required for product image operations");
|
|
24
|
+
}
|
|
25
|
+
return reactQuery.useInfiniteQuery({
|
|
26
|
+
initialPageParam: 1,
|
|
27
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, businessId, productId, SBApiKeys.SBApiKeys.ProductImages, request],
|
|
28
|
+
queryFn: async ({
|
|
29
|
+
pageParam = 1
|
|
30
|
+
}) => {
|
|
31
|
+
return await client.businesses.productImages.listAsync(businessId, productId, {
|
|
32
|
+
...request,
|
|
33
|
+
page: pageParam
|
|
34
|
+
}, options, config);
|
|
35
|
+
},
|
|
36
|
+
getNextPageParam: lastPage => {
|
|
37
|
+
if (lastPage.pagination.currentPage === lastPage.pagination.pageCount) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
return lastPage.pagination.currentPage + 1;
|
|
41
|
+
},
|
|
42
|
+
enabled: !!businessId && !!productId
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Hook to fetch a list of product images for a specific product
|
|
47
|
+
* @param productId - The ID of the product
|
|
48
|
+
* @param request - The pagination request parameters
|
|
49
|
+
* @param options - Optional request options
|
|
50
|
+
* @param config - Optional Axios request configuration
|
|
51
|
+
* @returns A query result containing paginated product images data
|
|
52
|
+
*/
|
|
53
|
+
function useListProductImagesQuery(productId, request = {
|
|
54
|
+
page: 1,
|
|
55
|
+
pageSize: 25
|
|
56
|
+
}, options, config) {
|
|
57
|
+
const client = ApiContext.useApiClient();
|
|
58
|
+
reactQuery.useQueryClient();
|
|
59
|
+
const businessId = ApiContext.useBusinessId();
|
|
60
|
+
if (!businessId) {
|
|
61
|
+
throw new Error("businessId is required for product image operations");
|
|
62
|
+
}
|
|
63
|
+
return reactQuery.useQuery({
|
|
64
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, businessId, productId, SBApiKeys.SBApiKeys.ProductImages, request],
|
|
65
|
+
queryFn: async () => {
|
|
66
|
+
return await client.businesses.productImages.listAsync(businessId, productId, request, options, config);
|
|
67
|
+
},
|
|
68
|
+
enabled: !!businessId && !!productId
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Hook to fetch a specific product image by ID
|
|
73
|
+
* @param productId - The ID of the product
|
|
74
|
+
* @param imageId - The ID of the product image to retrieve
|
|
75
|
+
* @param options - Optional request options
|
|
76
|
+
* @param config - Optional Axios request configuration
|
|
77
|
+
* @returns A query result containing the product image data
|
|
78
|
+
*/
|
|
79
|
+
function useGetProductImageByIdQuery(productId, imageId, options, config) {
|
|
80
|
+
const client = ApiContext.useApiClient();
|
|
81
|
+
reactQuery.useQueryClient();
|
|
82
|
+
const businessId = ApiContext.useBusinessId();
|
|
83
|
+
if (!businessId) {
|
|
84
|
+
throw new Error("businessId is required for product image operations");
|
|
85
|
+
}
|
|
86
|
+
return reactQuery.useQuery({
|
|
87
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, businessId, productId, SBApiKeys.SBApiKeys.ProductImages, imageId],
|
|
88
|
+
queryFn: async () => await client.businesses.productImages.getByIdAsync(businessId, productId, imageId, options, config),
|
|
89
|
+
enabled: !!businessId && !!productId && !!imageId
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Hook to create a new product image
|
|
94
|
+
* @returns A mutation function to create a product image
|
|
95
|
+
*/
|
|
96
|
+
function useCreateProductImageMutation() {
|
|
97
|
+
const client = ApiContext.useApiClient();
|
|
98
|
+
const queryClient = reactQuery.useQueryClient();
|
|
99
|
+
const businessId = ApiContext.useBusinessId();
|
|
100
|
+
return reactQuery.useMutation({
|
|
101
|
+
mutationFn: async ({
|
|
102
|
+
productId,
|
|
103
|
+
request,
|
|
104
|
+
options,
|
|
105
|
+
config
|
|
106
|
+
}) => {
|
|
107
|
+
return await client.businesses.productImages.createAsync(businessId, productId, request, options, config);
|
|
108
|
+
},
|
|
109
|
+
onSuccess: (_, {
|
|
110
|
+
productId
|
|
111
|
+
}) => {
|
|
112
|
+
queryClient.invalidateQueries({
|
|
113
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, productId, SBApiKeys.SBApiKeys.ProductImages]
|
|
114
|
+
});
|
|
115
|
+
queryClient.invalidateQueries({
|
|
116
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, productId, SBApiKeys.SBApiKeys.ProductImages]
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Hook to update an existing product image
|
|
123
|
+
* @returns A mutation function to update a product image
|
|
124
|
+
*/
|
|
125
|
+
function useUpdateProductImageMutation() {
|
|
126
|
+
const client = ApiContext.useApiClient();
|
|
127
|
+
const queryClient = reactQuery.useQueryClient();
|
|
128
|
+
const businessId = ApiContext.useBusinessId();
|
|
129
|
+
return reactQuery.useMutation({
|
|
130
|
+
mutationFn: async ({
|
|
131
|
+
productId,
|
|
132
|
+
imageId,
|
|
133
|
+
request,
|
|
134
|
+
options,
|
|
135
|
+
config
|
|
136
|
+
}) => {
|
|
137
|
+
return await client.businesses.productImages.updateAsync(businessId, productId, imageId, request, options, config);
|
|
138
|
+
},
|
|
139
|
+
onSuccess: (_, {
|
|
140
|
+
productId,
|
|
141
|
+
imageId
|
|
142
|
+
}) => {
|
|
143
|
+
queryClient.invalidateQueries({
|
|
144
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, productId, SBApiKeys.SBApiKeys.ProductImages]
|
|
145
|
+
});
|
|
146
|
+
queryClient.invalidateQueries({
|
|
147
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, productId, SBApiKeys.SBApiKeys.ProductImages, imageId]
|
|
148
|
+
});
|
|
149
|
+
queryClient.invalidateQueries({
|
|
150
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, productId, SBApiKeys.SBApiKeys.ProductImages]
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Hook to delete a product image
|
|
157
|
+
* @returns A mutation function to delete a product image
|
|
158
|
+
*/
|
|
159
|
+
function useDeleteProductImageMutation() {
|
|
160
|
+
const client = ApiContext.useApiClient();
|
|
161
|
+
const queryClient = reactQuery.useQueryClient();
|
|
162
|
+
const businessId = ApiContext.useBusinessId();
|
|
163
|
+
return reactQuery.useMutation({
|
|
164
|
+
mutationFn: async ({
|
|
165
|
+
productId,
|
|
166
|
+
imageId,
|
|
167
|
+
options,
|
|
168
|
+
config
|
|
169
|
+
}) => {
|
|
170
|
+
return await client.businesses.productImages.deleteAsync(businessId, productId, imageId, options, config);
|
|
171
|
+
},
|
|
172
|
+
onSuccess: (_, {
|
|
173
|
+
productId,
|
|
174
|
+
imageId
|
|
175
|
+
}) => {
|
|
176
|
+
queryClient.invalidateQueries({
|
|
177
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, productId, SBApiKeys.SBApiKeys.ProductImages]
|
|
178
|
+
});
|
|
179
|
+
queryClient.invalidateQueries({
|
|
180
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, productId, SBApiKeys.SBApiKeys.ProductImages, imageId]
|
|
181
|
+
});
|
|
182
|
+
queryClient.invalidateQueries({
|
|
183
|
+
queryKey: [SBApiKeys.SBApiKeys.Products, productId, SBApiKeys.SBApiKeys.ProductImages]
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
exports.useCreateProductImageMutation = useCreateProductImageMutation;
|
|
190
|
+
exports.useDeleteProductImageMutation = useDeleteProductImageMutation;
|
|
191
|
+
exports.useGetProductImageByIdQuery = useGetProductImageByIdQuery;
|
|
192
|
+
exports.useListProductImagesInfiniteQuery = useListProductImagesInfiniteQuery;
|
|
193
|
+
exports.useListProductImagesQuery = useListProductImagesQuery;
|
|
194
|
+
exports.useUpdateProductImageMutation = useUpdateProductImageMutation;
|
|
195
|
+
//# sourceMappingURL=ProductImagesAPI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductImagesAPI.cjs","sources":["../../../../../../src/apis/business/products/images/ProductImagesAPI.tsx"],"sourcesContent":["import {\n\tSBRequestOptions,\n\tSBApiException,\n\tSBProductImage,\n\tProductImageCreateRequest,\n\tProductImageUpdateRequest,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook to fetch a list of product images for a specific product using infinite query\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated product images data\n */\nexport function useListProductImagesInfiniteQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product image operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductImage>,\n\t\tSBApiException,\n\t\tSBList<SBProductImage>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Products,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductImages,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productImages.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage ===\n\t\t\t\tlastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t},\n\t\tenabled: !!businessId && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a list of product images for a specific product\n * @param productId - The ID of the product\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing paginated product images data\n */\nexport function useListProductImagesQuery(\n\tproductId: number,\n\trequest: { page?: number; pageSize?: number } = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product image operations\");\n\t}\n\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Products,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductImages,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.productImages.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a specific product image by ID\n * @param productId - The ID of the product\n * @param imageId - The ID of the product image to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the product image data\n */\nexport function useGetProductImageByIdQuery(\n\tproductId: number,\n\timageId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for product image operations\");\n\t}\n\n\treturn useQuery<SBProductImage, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Products,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductImages,\n\t\t\timageId,\n\t\t],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.productImages.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\timageId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId && !!productId && !!imageId,\n\t});\n}\n\n/**\n * Hook to create a new product image\n * @returns A mutation function to create a product image\n */\nexport function useCreateProductImageMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductImage,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\trequest: ProductImageCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, request, options, config }) => {\n\t\t\treturn await client.businesses.productImages.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing product image\n * @returns A mutation function to update a product image\n */\nexport function useUpdateProductImageMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductImage,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\timageId: number;\n\t\t\trequest: ProductImageUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({\n\t\t\tproductId,\n\t\t\timageId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}) => {\n\t\t\treturn await client.businesses.productImages.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\timageId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, imageId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t\timageId,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product image\n * @returns A mutation function to delete a product image\n */\nexport function useDeleteProductImageMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductImage,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\timageId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, imageId, options, config }) => {\n\t\t\treturn await client.businesses.productImages.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\timageId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, imageId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t\timageId,\n\t\t\t\t],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\tproductId,\n\t\t\t\t\tSBApiKeys.ProductImages,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n}\n"],"names":["useListProductImagesInfiniteQuery","productId","request","page","pageSize","options","config","client","useApiClient","useQueryClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Products","ProductImages","queryFn","pageParam","businesses","productImages","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useListProductImagesQuery","useQuery","useGetProductImageByIdQuery","imageId","getByIdAsync","useCreateProductImageMutation","queryClient","useMutation","mutationFn","createAsync","onSuccess","_","invalidateQueries","useUpdateProductImageMutation","updateAsync","useDeleteProductImageMutation","deleteAsync"],"mappings":"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"}
|