@smartbills/react-hooks-sdk 0.0.2-alpha.46 → 1.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +148 -73
- package/dist/cjs/index.cjs +1 -223
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.mjs +1 -38
- package/dist/esm/index.mjs.map +1 -1
- package/dist/types/index.d.ts +623 -0
- package/package.json +58 -99
- package/dist/@types/index.d.ts +0 -1447
- package/dist/@types/index.d.ts.map +0 -1
- package/dist/cjs/apis/SBApiKeys.cjs +0 -56
- package/dist/cjs/apis/SBApiKeys.cjs.map +0 -1
- package/dist/cjs/apis/api-logs/LogsAPI.cjs +0 -42
- package/dist/cjs/apis/api-logs/LogsAPI.cjs.map +0 -1
- package/dist/cjs/apis/attachments/AttachmentsAPI.cjs +0 -147
- package/dist/cjs/apis/attachments/AttachmentsAPI.cjs.map +0 -1
- package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs +0 -88
- package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs.map +0 -1
- package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs +0 -58
- package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs.map +0 -1
- package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs +0 -57
- package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/BusinessAPI.cjs +0 -172
- package/dist/cjs/apis/business/BusinessAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/customers/CustomerAPI.cjs +0 -161
- package/dist/cjs/apis/business/customers/CustomerAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs +0 -71
- package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs +0 -176
- package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/departments/DepartmentApi.cjs +0 -168
- package/dist/cjs/apis/business/departments/DepartmentApi.cjs.map +0 -1
- package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs +0 -137
- package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/fees/FeesAPI.cjs +0 -167
- package/dist/cjs/apis/business/fees/FeesAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/locations/LocationsAPI.cjs +0 -133
- package/dist/cjs/apis/business/locations/LocationsAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/products/ProductsAPI.cjs +0 -184
- package/dist/cjs/apis/business/products/ProductsAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs +0 -195
- package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs +0 -169
- package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs +0 -183
- package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs +0 -185
- package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs +0 -139
- package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs +0 -143
- package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/tables/TablesAPI.cjs +0 -75
- package/dist/cjs/apis/business/tables/TablesAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/taxes/TaxesAPI.cjs +0 -140
- package/dist/cjs/apis/business/taxes/TaxesAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs +0 -161
- package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/team/TeamMembersAPI.cjs +0 -93
- package/dist/cjs/apis/business/team/TeamMembersAPI.cjs.map +0 -1
- package/dist/cjs/apis/business/vendors/VendorsAPI.cjs +0 -237
- package/dist/cjs/apis/business/vendors/VendorsAPI.cjs.map +0 -1
- package/dist/cjs/apis/documents/DocumentsAPI.cjs +0 -87
- package/dist/cjs/apis/documents/DocumentsAPI.cjs.map +0 -1
- package/dist/cjs/apis/expenses/ExpensesAPI.cjs +0 -62
- package/dist/cjs/apis/expenses/ExpensesAPI.cjs.map +0 -1
- package/dist/cjs/apis/friends/FriendsAPI.cjs +0 -150
- package/dist/cjs/apis/friends/FriendsAPI.cjs.map +0 -1
- package/dist/cjs/apis/integrations/IntegrationsAPI.cjs +0 -55
- package/dist/cjs/apis/integrations/IntegrationsAPI.cjs.map +0 -1
- package/dist/cjs/apis/invoices/InvoicesAPI.cjs +0 -168
- package/dist/cjs/apis/invoices/InvoicesAPI.cjs.map +0 -1
- package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs +0 -484
- package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs.map +0 -1
- package/dist/cjs/apis/notifications/NotificationAPI.cjs +0 -103
- package/dist/cjs/apis/notifications/NotificationAPI.cjs.map +0 -1
- package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs +0 -125
- package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs.map +0 -1
- package/dist/cjs/apis/receipts/ReceiptAPI.cjs +0 -135
- package/dist/cjs/apis/receipts/ReceiptAPI.cjs.map +0 -1
- package/dist/cjs/apis/user/UserAPI.cjs +0 -130
- package/dist/cjs/apis/user/UserAPI.cjs.map +0 -1
- package/dist/cjs/apis/vendors/VendorsAPI.cjs +0 -215
- package/dist/cjs/apis/vendors/VendorsAPI.cjs.map +0 -1
- package/dist/cjs/context/ApiContext.cjs +0 -94
- package/dist/cjs/context/ApiContext.cjs.map +0 -1
- package/dist/esm/apis/SBApiKeys.mjs +0 -56
- package/dist/esm/apis/SBApiKeys.mjs.map +0 -1
- package/dist/esm/apis/api-logs/LogsAPI.mjs +0 -39
- package/dist/esm/apis/api-logs/LogsAPI.mjs.map +0 -1
- package/dist/esm/apis/attachments/AttachmentsAPI.mjs +0 -142
- package/dist/esm/apis/attachments/AttachmentsAPI.mjs.map +0 -1
- package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs +0 -84
- package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs.map +0 -1
- package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs +0 -55
- package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs.map +0 -1
- package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs +0 -54
- package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs.map +0 -1
- package/dist/esm/apis/business/BusinessAPI.mjs +0 -165
- package/dist/esm/apis/business/BusinessAPI.mjs.map +0 -1
- package/dist/esm/apis/business/customers/CustomerAPI.mjs +0 -155
- package/dist/esm/apis/business/customers/CustomerAPI.mjs.map +0 -1
- package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs +0 -68
- package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs.map +0 -1
- package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs +0 -170
- package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs.map +0 -1
- package/dist/esm/apis/business/departments/DepartmentApi.mjs +0 -161
- package/dist/esm/apis/business/departments/DepartmentApi.mjs.map +0 -1
- package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs +0 -132
- package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs.map +0 -1
- package/dist/esm/apis/business/fees/FeesAPI.mjs +0 -161
- package/dist/esm/apis/business/fees/FeesAPI.mjs.map +0 -1
- package/dist/esm/apis/business/locations/LocationsAPI.mjs +0 -127
- package/dist/esm/apis/business/locations/LocationsAPI.mjs.map +0 -1
- package/dist/esm/apis/business/products/ProductsAPI.mjs +0 -177
- package/dist/esm/apis/business/products/ProductsAPI.mjs.map +0 -1
- package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs +0 -188
- package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs.map +0 -1
- package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs +0 -163
- package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs.map +0 -1
- package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs +0 -177
- package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs.map +0 -1
- package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs +0 -179
- package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs.map +0 -1
- package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs +0 -133
- package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs.map +0 -1
- package/dist/esm/apis/business/reviews/ReviewsAPI.mjs +0 -137
- package/dist/esm/apis/business/reviews/ReviewsAPI.mjs.map +0 -1
- package/dist/esm/apis/business/tables/TablesAPI.mjs +0 -70
- package/dist/esm/apis/business/tables/TablesAPI.mjs.map +0 -1
- package/dist/esm/apis/business/taxes/TaxesAPI.mjs +0 -134
- package/dist/esm/apis/business/taxes/TaxesAPI.mjs.map +0 -1
- package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs +0 -153
- package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs.map +0 -1
- package/dist/esm/apis/business/team/TeamMembersAPI.mjs +0 -88
- package/dist/esm/apis/business/team/TeamMembersAPI.mjs.map +0 -1
- package/dist/esm/apis/business/vendors/VendorsAPI.mjs +0 -228
- package/dist/esm/apis/business/vendors/VendorsAPI.mjs.map +0 -1
- package/dist/esm/apis/documents/DocumentsAPI.mjs +0 -82
- package/dist/esm/apis/documents/DocumentsAPI.mjs.map +0 -1
- package/dist/esm/apis/expenses/ExpensesAPI.mjs +0 -58
- package/dist/esm/apis/expenses/ExpensesAPI.mjs.map +0 -1
- package/dist/esm/apis/friends/FriendsAPI.mjs +0 -144
- package/dist/esm/apis/friends/FriendsAPI.mjs.map +0 -1
- package/dist/esm/apis/integrations/IntegrationsAPI.mjs +0 -52
- package/dist/esm/apis/integrations/IntegrationsAPI.mjs.map +0 -1
- package/dist/esm/apis/invoices/InvoicesAPI.mjs +0 -161
- package/dist/esm/apis/invoices/InvoicesAPI.mjs.map +0 -1
- package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs +0 -482
- package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs.map +0 -1
- package/dist/esm/apis/notifications/NotificationAPI.mjs +0 -98
- package/dist/esm/apis/notifications/NotificationAPI.mjs.map +0 -1
- package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs +0 -117
- package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs.map +0 -1
- package/dist/esm/apis/receipts/ReceiptAPI.mjs +0 -129
- package/dist/esm/apis/receipts/ReceiptAPI.mjs.map +0 -1
- package/dist/esm/apis/user/UserAPI.mjs +0 -123
- package/dist/esm/apis/user/UserAPI.mjs.map +0 -1
- package/dist/esm/apis/vendors/VendorsAPI.mjs +0 -204
- package/dist/esm/apis/vendors/VendorsAPI.mjs.map +0 -1
- package/dist/esm/context/ApiContext.mjs +0 -86
- package/dist/esm/context/ApiContext.mjs.map +0 -1
- package/dist/umd/index.js +0 -5099
- package/dist/umd/index.js.map +0 -1
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { useApiClient, useBusinessId } from '../../../../context/ApiContext.mjs';
|
|
2
|
-
import { useQueryClient, useInfiniteQuery, useQuery, useMutation } from '@tanstack/react-query';
|
|
3
|
-
import { SBApiKeys } from '../../../SBApiKeys.mjs';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Hook to fetch a list of modifiers for a specific business and product with infinite scrolling
|
|
7
|
-
* @param productId - The ID of the product
|
|
8
|
-
* @param request - The pagination request parameters
|
|
9
|
-
* @param options - Optional request options
|
|
10
|
-
* @param config - Optional Axios request configuration
|
|
11
|
-
* @returns An infinite query result containing paginated modifiers data
|
|
12
|
-
*/
|
|
13
|
-
function useListProductModifiersInfiniteQuery(productId, request = {
|
|
14
|
-
page: 1,
|
|
15
|
-
pageSize: 25
|
|
16
|
-
}, options, config) {
|
|
17
|
-
const client = useApiClient();
|
|
18
|
-
useQueryClient();
|
|
19
|
-
const businessId = useBusinessId();
|
|
20
|
-
if (!businessId) {
|
|
21
|
-
throw new Error("businessId is required for product modifier operations");
|
|
22
|
-
}
|
|
23
|
-
return useInfiniteQuery({
|
|
24
|
-
initialPageParam: request.page || 1,
|
|
25
|
-
queryKey: [SBApiKeys.ProductModifiers, businessId, productId, request, options],
|
|
26
|
-
queryFn: async ({
|
|
27
|
-
pageParam = 1
|
|
28
|
-
}) => {
|
|
29
|
-
return await client.businesses.productModifiers.listAsync(businessId, productId, {
|
|
30
|
-
...request,
|
|
31
|
-
page: pageParam
|
|
32
|
-
}, options, config);
|
|
33
|
-
},
|
|
34
|
-
getNextPageParam: lastPage => {
|
|
35
|
-
if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
36
|
-
return lastPage.pagination.currentPage + 1;
|
|
37
|
-
}
|
|
38
|
-
return undefined;
|
|
39
|
-
},
|
|
40
|
-
enabled: !!businessId
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Hook to fetch a specific modifier by ID for a business and product
|
|
45
|
-
* @param productId - The ID of the product
|
|
46
|
-
* @param modifierId - The ID of the modifier to retrieve
|
|
47
|
-
* @param options - Optional request options
|
|
48
|
-
* @param config - Optional Axios request configuration
|
|
49
|
-
* @returns A query result containing the modifier data
|
|
50
|
-
*/
|
|
51
|
-
function useGetProductModifierByIdQuery(productId, modifierId, options, config) {
|
|
52
|
-
const client = useApiClient();
|
|
53
|
-
useQueryClient();
|
|
54
|
-
const businessId = useBusinessId();
|
|
55
|
-
if (!businessId) {
|
|
56
|
-
throw new Error("businessId is required for product modifier operations");
|
|
57
|
-
}
|
|
58
|
-
return useQuery({
|
|
59
|
-
queryKey: [SBApiKeys.ProductModifiers, businessId, productId, modifierId, options],
|
|
60
|
-
queryFn: async () => {
|
|
61
|
-
return await client.businesses.productModifiers.getByIdAsync(businessId, productId, modifierId, options, config);
|
|
62
|
-
},
|
|
63
|
-
enabled: !!businessId
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Hook to create a new modifier for a product
|
|
68
|
-
* @returns A mutation function to create a modifier
|
|
69
|
-
*/
|
|
70
|
-
function useCreateProductModifierMutation(productId) {
|
|
71
|
-
const client = useApiClient();
|
|
72
|
-
const queryClient = useQueryClient();
|
|
73
|
-
const businessId = useBusinessId();
|
|
74
|
-
return useMutation({
|
|
75
|
-
mutationFn: async ({
|
|
76
|
-
data,
|
|
77
|
-
options,
|
|
78
|
-
config
|
|
79
|
-
}) => {
|
|
80
|
-
if (!businessId) {
|
|
81
|
-
throw new Error("businessId is required for product modifier operations");
|
|
82
|
-
}
|
|
83
|
-
return await client.businesses.productModifiers.createAsync(businessId, productId, data, options, config);
|
|
84
|
-
},
|
|
85
|
-
onSuccess: () => {
|
|
86
|
-
if (businessId) {
|
|
87
|
-
queryClient.invalidateQueries({
|
|
88
|
-
queryKey: [SBApiKeys.ProductModifiers, businessId, productId]
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Hook to update an existing modifier for a product
|
|
96
|
-
* @returns A mutation function to update a modifier
|
|
97
|
-
*/
|
|
98
|
-
function useUpdateProductModifierMutation(productId) {
|
|
99
|
-
const client = useApiClient();
|
|
100
|
-
const queryClient = useQueryClient();
|
|
101
|
-
const businessId = useBusinessId();
|
|
102
|
-
return useMutation({
|
|
103
|
-
mutationFn: async ({
|
|
104
|
-
modifierId,
|
|
105
|
-
data,
|
|
106
|
-
options,
|
|
107
|
-
config
|
|
108
|
-
}) => {
|
|
109
|
-
if (!businessId) {
|
|
110
|
-
throw new Error("businessId is required for product modifier operations");
|
|
111
|
-
}
|
|
112
|
-
return await client.businesses.productModifiers.updateAsync(businessId, productId, modifierId, data, options, config);
|
|
113
|
-
},
|
|
114
|
-
onSuccess: (_, {
|
|
115
|
-
modifierId
|
|
116
|
-
}) => {
|
|
117
|
-
if (businessId) {
|
|
118
|
-
queryClient.invalidateQueries({
|
|
119
|
-
queryKey: [SBApiKeys.ProductModifiers, businessId, productId]
|
|
120
|
-
});
|
|
121
|
-
queryClient.invalidateQueries({
|
|
122
|
-
queryKey: [SBApiKeys.ProductModifiers, businessId, productId, modifierId]
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Hook to delete a modifier for a product
|
|
130
|
-
* @returns A mutation function to delete a modifier
|
|
131
|
-
*/
|
|
132
|
-
function useDeleteProductModifierMutation(productId) {
|
|
133
|
-
const client = useApiClient();
|
|
134
|
-
const queryClient = useQueryClient();
|
|
135
|
-
const businessId = useBusinessId();
|
|
136
|
-
return useMutation({
|
|
137
|
-
mutationFn: async ({
|
|
138
|
-
modifierId,
|
|
139
|
-
options,
|
|
140
|
-
config
|
|
141
|
-
}) => {
|
|
142
|
-
if (!businessId) {
|
|
143
|
-
throw new Error("businessId is required for product modifier operations");
|
|
144
|
-
}
|
|
145
|
-
return await client.businesses.productModifiers.deleteAsync(businessId, productId, modifierId, options, config);
|
|
146
|
-
},
|
|
147
|
-
onSuccess: (_, {
|
|
148
|
-
modifierId
|
|
149
|
-
}) => {
|
|
150
|
-
if (businessId) {
|
|
151
|
-
queryClient.invalidateQueries({
|
|
152
|
-
queryKey: [SBApiKeys.ProductModifiers, businessId, productId]
|
|
153
|
-
});
|
|
154
|
-
queryClient.invalidateQueries({
|
|
155
|
-
queryKey: [SBApiKeys.ProductModifiers, businessId, productId, modifierId]
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
export { useCreateProductModifierMutation, useDeleteProductModifierMutation, useGetProductModifierByIdQuery, useListProductModifiersInfiniteQuery, useUpdateProductModifierMutation };
|
|
163
|
-
//# sourceMappingURL=ModifiersAPI.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModifiersAPI.mjs","sources":["../../../../../../src/apis/business/products/modifiers/ModifiersAPI.tsx"],"sourcesContent":["import {\n\tProductModifierCreateRequest,\n\tProductModifierUpdateRequest,\n\tSBApiException,\n\tSBList,\n\tSBProductModifier,\n\tSBRequestOptions,\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 modifiers for a specific business and product with infinite scrolling\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 modifiers data\n */\nexport function useListProductModifiersInfiniteQuery(\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(\n\t\t\t\"businessId is required for product modifier operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductModifier>,\n\t\tSBApiException,\n\t\tSBList<SBProductModifier>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.ProductModifiers,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productModifiers.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 < 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 fetch a specific modifier by ID for a business and product\n * @param productId - The ID of the product\n * @param modifierId - The ID of the modifier to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the modifier data\n */\nexport function useGetProductModifierByIdQuery(\n\tproductId: number,\n\tmodifierId: 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(\n\t\t\t\"businessId is required for product modifier operations\",\n\t\t);\n\t}\n\n\treturn useQuery<SBProductModifier, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.ProductModifiers,\n\t\t\tbusinessId,\n\t\t\tproductId,\n\t\t\tmodifierId,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.productModifiers.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tmodifierId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n}\n\n/**\n * Hook to create a new modifier for a product\n * @returns A mutation function to create a modifier\n */\nexport function useCreateProductModifierMutation(productId: number) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductModifier,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: ProductModifierCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<ProductModifierCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, 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 modifier operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productModifiers.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing modifier for a product\n * @returns A mutation function to update a modifier\n */\nexport function useUpdateProductModifierMutation(productId: number) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductModifier,\n\t\tSBApiException,\n\t\t{\n\t\t\tmodifierId: number;\n\t\t\tdata: ProductModifierUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<ProductModifierUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ modifierId, data, 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 modifier operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productModifiers.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tmodifierId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { modifierId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tmodifierId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a modifier for a product\n * @returns A mutation function to delete a modifier\n */\nexport function useDeleteProductModifierMutation(productId: number) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductModifier,\n\t\tSBApiException,\n\t\t{\n\t\t\tmodifierId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ modifierId, 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 modifier operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productModifiers.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tmodifierId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { modifierId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductModifiers,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tmodifierId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n"],"names":["useListProductModifiersInfiniteQuery","productId","request","page","pageSize","options","config","client","useApiClient","useQueryClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","ProductModifiers","queryFn","pageParam","businesses","productModifiers","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetProductModifierByIdQuery","modifierId","useQuery","getByIdAsync","useCreateProductModifierMutation","queryClient","useMutation","mutationFn","data","createAsync","onSuccess","invalidateQueries","useUpdateProductModifierMutation","updateAsync","_","useDeleteProductModifierMutation","deleteAsync"],"mappings":"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"}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { useApiClient, useBusinessId } from '../../../../context/ApiContext.mjs';
|
|
2
|
-
import { useQueryClient, useInfiniteQuery, useQuery, useMutation } from '@tanstack/react-query';
|
|
3
|
-
import { SBApiKeys } from '../../../SBApiKeys.mjs';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Hook to fetch a list of product options for a specific product using infinite query
|
|
7
|
-
* @param productId - The ID of the product
|
|
8
|
-
* @param request - The pagination request parameters
|
|
9
|
-
* @param options - Optional request options
|
|
10
|
-
* @param config - Optional Axios request configuration
|
|
11
|
-
* @returns An infinite query result containing paginated product options data
|
|
12
|
-
*/
|
|
13
|
-
function useListProductOptionsInfiniteQuery(productId, request = {
|
|
14
|
-
page: 1,
|
|
15
|
-
pageSize: 25
|
|
16
|
-
}, options, config) {
|
|
17
|
-
const client = useApiClient();
|
|
18
|
-
useQueryClient();
|
|
19
|
-
const businessId = useBusinessId();
|
|
20
|
-
if (!businessId) {
|
|
21
|
-
throw new Error("businessId is required for product option operations");
|
|
22
|
-
}
|
|
23
|
-
return useInfiniteQuery({
|
|
24
|
-
initialPageParam: 1,
|
|
25
|
-
queryKey: [SBApiKeys.ProductOptions, businessId, productId, request],
|
|
26
|
-
queryFn: async ({
|
|
27
|
-
pageParam = 1
|
|
28
|
-
}) => {
|
|
29
|
-
return await client.businesses.productOptions.listAsync(businessId, productId, {
|
|
30
|
-
...request,
|
|
31
|
-
page: pageParam
|
|
32
|
-
}, options, config);
|
|
33
|
-
},
|
|
34
|
-
getNextPageParam: lastPage => {
|
|
35
|
-
if (lastPage.pagination.currentPage === lastPage.pagination.pageCount) {
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
return lastPage.pagination.currentPage + 1;
|
|
39
|
-
},
|
|
40
|
-
enabled: !!businessId && !!productId
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Hook to fetch a specific product option by ID
|
|
45
|
-
* @param productId - The ID of the product
|
|
46
|
-
* @param optionId - The ID of the product option to retrieve
|
|
47
|
-
* @param options - Optional request options
|
|
48
|
-
* @param config - Optional Axios request configuration
|
|
49
|
-
* @returns A query result containing the product option data
|
|
50
|
-
*/
|
|
51
|
-
function useGetProductOptionByIdQuery(productId, optionId, options, config) {
|
|
52
|
-
const client = useApiClient();
|
|
53
|
-
useQueryClient();
|
|
54
|
-
const businessId = useBusinessId();
|
|
55
|
-
if (!businessId) {
|
|
56
|
-
throw new Error("businessId is required for product option operations");
|
|
57
|
-
}
|
|
58
|
-
return useQuery({
|
|
59
|
-
queryKey: [SBApiKeys.ProductOptions, businessId, productId, optionId],
|
|
60
|
-
queryFn: async () => await client.businesses.productOptions.getByIdAsync(businessId, productId, optionId, options, config),
|
|
61
|
-
enabled: !!businessId && !!productId && !!optionId
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Hook to create a new product option
|
|
66
|
-
* @returns A mutation function to create a product option
|
|
67
|
-
*/
|
|
68
|
-
function useCreateProductOptionMutation() {
|
|
69
|
-
const client = useApiClient();
|
|
70
|
-
const queryClient = useQueryClient();
|
|
71
|
-
const businessId = useBusinessId();
|
|
72
|
-
return useMutation({
|
|
73
|
-
mutationFn: async ({
|
|
74
|
-
productId,
|
|
75
|
-
request,
|
|
76
|
-
options,
|
|
77
|
-
config
|
|
78
|
-
}) => {
|
|
79
|
-
if (!businessId) {
|
|
80
|
-
throw new Error("businessId is required for product option operations");
|
|
81
|
-
}
|
|
82
|
-
return await client.businesses.productOptions.createAsync(businessId, productId, request, options, config);
|
|
83
|
-
},
|
|
84
|
-
onSuccess: (_, {
|
|
85
|
-
productId
|
|
86
|
-
}) => {
|
|
87
|
-
if (businessId) {
|
|
88
|
-
queryClient.invalidateQueries({
|
|
89
|
-
queryKey: [SBApiKeys.ProductOptions, businessId, productId]
|
|
90
|
-
});
|
|
91
|
-
queryClient.invalidateQueries({
|
|
92
|
-
queryKey: [SBApiKeys.Products, businessId, productId]
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Hook to update an existing product option
|
|
100
|
-
* @returns A mutation function to update a product option
|
|
101
|
-
*/
|
|
102
|
-
function useUpdateProductOptionMutation() {
|
|
103
|
-
const client = useApiClient();
|
|
104
|
-
const queryClient = useQueryClient();
|
|
105
|
-
const businessId = useBusinessId();
|
|
106
|
-
return useMutation({
|
|
107
|
-
mutationFn: async ({
|
|
108
|
-
productId,
|
|
109
|
-
optionId,
|
|
110
|
-
request,
|
|
111
|
-
options,
|
|
112
|
-
config
|
|
113
|
-
}) => {
|
|
114
|
-
if (!businessId) {
|
|
115
|
-
throw new Error("businessId is required for product option operations");
|
|
116
|
-
}
|
|
117
|
-
return await client.businesses.productOptions.updateAsync(businessId, productId, optionId, request, options, config);
|
|
118
|
-
},
|
|
119
|
-
onSuccess: (_, {
|
|
120
|
-
productId,
|
|
121
|
-
optionId
|
|
122
|
-
}) => {
|
|
123
|
-
if (businessId) {
|
|
124
|
-
queryClient.invalidateQueries({
|
|
125
|
-
queryKey: [SBApiKeys.ProductOptions, businessId, productId]
|
|
126
|
-
});
|
|
127
|
-
queryClient.invalidateQueries({
|
|
128
|
-
queryKey: [SBApiKeys.ProductOptions, businessId, productId, optionId]
|
|
129
|
-
});
|
|
130
|
-
queryClient.invalidateQueries({
|
|
131
|
-
queryKey: [SBApiKeys.Products, businessId, productId]
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Hook to delete a product option
|
|
139
|
-
* @returns A mutation function to delete a product option
|
|
140
|
-
*/
|
|
141
|
-
function useDeleteProductOptionMutation() {
|
|
142
|
-
const client = useApiClient();
|
|
143
|
-
const queryClient = useQueryClient();
|
|
144
|
-
const businessId = useBusinessId();
|
|
145
|
-
return useMutation({
|
|
146
|
-
mutationFn: async ({
|
|
147
|
-
productId,
|
|
148
|
-
optionId,
|
|
149
|
-
options,
|
|
150
|
-
config
|
|
151
|
-
}) => {
|
|
152
|
-
if (!businessId) {
|
|
153
|
-
throw new Error("businessId is required for product option operations");
|
|
154
|
-
}
|
|
155
|
-
return await client.businesses.productOptions.deleteAsync(businessId, productId, optionId, options, config);
|
|
156
|
-
},
|
|
157
|
-
onSuccess: (_, {
|
|
158
|
-
productId,
|
|
159
|
-
optionId
|
|
160
|
-
}) => {
|
|
161
|
-
if (businessId) {
|
|
162
|
-
queryClient.invalidateQueries({
|
|
163
|
-
queryKey: [SBApiKeys.ProductOptions, businessId, productId]
|
|
164
|
-
});
|
|
165
|
-
queryClient.invalidateQueries({
|
|
166
|
-
queryKey: [SBApiKeys.ProductOptions, businessId, productId, optionId]
|
|
167
|
-
});
|
|
168
|
-
queryClient.invalidateQueries({
|
|
169
|
-
queryKey: [SBApiKeys.Products, businessId, productId]
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
export { useCreateProductOptionMutation, useDeleteProductOptionMutation, useGetProductOptionByIdQuery, useListProductOptionsInfiniteQuery, useUpdateProductOptionMutation };
|
|
177
|
-
//# sourceMappingURL=ProductOptionsAPI.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProductOptionsAPI.mjs","sources":["../../../../../../src/apis/business/products/options/ProductOptionsAPI.tsx"],"sourcesContent":["import {\n\tSBRequestOptions,\n\tSBApiException,\n\tSBProductOption,\n\tProductOptionCreateRequest,\n\tProductOptionUpdateRequest,\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 options 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 options data\n */\nexport function useListProductOptionsInfiniteQuery(\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 option operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductOption>,\n\t\tSBApiException,\n\t\tSBList<SBProductOption>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: 1,\n\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId, request],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productOptions.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 specific product option by ID\n * @param productId - The ID of the product\n * @param optionId - The ID of the product option to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the product option data\n */\nexport function useGetProductOptionByIdQuery(\n\tproductId: number,\n\toptionId: 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 option operations\");\n\t}\n\n\treturn useQuery<SBProductOption, SBApiException>({\n\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId, optionId],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.productOptions.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\toptionId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t),\n\t\tenabled: !!businessId && !!productId && !!optionId,\n\t});\n}\n\n/**\n * Hook to create a new product option\n * @returns A mutation function to create a product option\n */\nexport function useCreateProductOptionMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductOption,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\trequest: Omit<SBProductOption, \"id\" | \"createdAt\" | \"updatedAt\">;\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\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product option operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productOptions.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\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.Products, businessId, productId],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing product option\n * @returns A mutation function to update a product option\n */\nexport function useUpdateProductOptionMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductOption,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\toptionId: number;\n\t\t\trequest: Partial<SBProductOption>;\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\toptionId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"businessId is required for product option operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productOptions.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\toptionId,\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, optionId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductOptions,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\toptionId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.Products, businessId, productId],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product option\n * @returns A mutation function to delete a product option\n */\nexport function useDeleteProductOptionMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductOption,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\toptionId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, optionId, 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 option operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productOptions.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\toptionId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, optionId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.ProductOptions, businessId, productId],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.ProductOptions,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\toptionId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [SBApiKeys.Products, businessId, productId],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n"],"names":["useListProductOptionsInfiniteQuery","productId","request","page","pageSize","options","config","client","useApiClient","useQueryClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","ProductOptions","queryFn","pageParam","businesses","productOptions","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetProductOptionByIdQuery","optionId","useQuery","getByIdAsync","useCreateProductOptionMutation","queryClient","useMutation","mutationFn","createAsync","onSuccess","_","invalidateQueries","Products","useUpdateProductOptionMutation","updateAsync","useDeleteProductOptionMutation","deleteAsync"],"mappings":"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"}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { useApiClient, useBusinessId } from '../../../../context/ApiContext.mjs';
|
|
2
|
-
import { useQueryClient, useInfiniteQuery, useQuery, useMutation } from '@tanstack/react-query';
|
|
3
|
-
import { SBApiKeys } from '../../../SBApiKeys.mjs';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Hook to fetch a list of product variants for a specific product using infinite query
|
|
7
|
-
* @param productId - The ID of the product
|
|
8
|
-
* @param request - The pagination request parameters
|
|
9
|
-
* @param options - Optional request options
|
|
10
|
-
* @param config - Optional Axios request configuration
|
|
11
|
-
* @returns An infinite query result containing paginated product variants data
|
|
12
|
-
*/
|
|
13
|
-
function useListProductVariantsInfiniteQuery(productId, request = {
|
|
14
|
-
page: 1,
|
|
15
|
-
pageSize: 25
|
|
16
|
-
}, options, config) {
|
|
17
|
-
const client = useApiClient();
|
|
18
|
-
useQueryClient();
|
|
19
|
-
const businessId = useBusinessId();
|
|
20
|
-
if (!businessId) {
|
|
21
|
-
throw new Error("businessId is required for product variant operations");
|
|
22
|
-
}
|
|
23
|
-
return useInfiniteQuery({
|
|
24
|
-
initialPageParam: request.page || 1,
|
|
25
|
-
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, productId, SBApiKeys.ProductVariants, request],
|
|
26
|
-
queryFn: async ({
|
|
27
|
-
pageParam = 1
|
|
28
|
-
}) => {
|
|
29
|
-
return await client.businesses.productVariants.listAsync(businessId, productId, {
|
|
30
|
-
...request,
|
|
31
|
-
page: pageParam
|
|
32
|
-
}, options, config);
|
|
33
|
-
},
|
|
34
|
-
getNextPageParam: lastPage => {
|
|
35
|
-
if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
36
|
-
return lastPage.pagination.currentPage + 1;
|
|
37
|
-
}
|
|
38
|
-
return undefined;
|
|
39
|
-
},
|
|
40
|
-
enabled: !!businessId && !!productId
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Hook to fetch a specific product variant by ID
|
|
45
|
-
* @param productId - The ID of the product
|
|
46
|
-
* @param variantId - The ID of the product variant to retrieve
|
|
47
|
-
* @param options - Optional request options
|
|
48
|
-
* @param config - Optional Axios request configuration
|
|
49
|
-
* @returns A query result containing the product variant data
|
|
50
|
-
*/
|
|
51
|
-
function useGetProductVariantByIdQuery(productId, variantId, options, config) {
|
|
52
|
-
const client = useApiClient();
|
|
53
|
-
useQueryClient();
|
|
54
|
-
const businessId = useBusinessId();
|
|
55
|
-
return useQuery({
|
|
56
|
-
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, productId, SBApiKeys.ProductVariants, variantId],
|
|
57
|
-
queryFn: async () => {
|
|
58
|
-
if (!businessId) {
|
|
59
|
-
throw new Error("businessId is required for product variant operations");
|
|
60
|
-
}
|
|
61
|
-
return await client.businesses.productVariants.getByIdAsync(businessId, productId, variantId, options, config);
|
|
62
|
-
},
|
|
63
|
-
enabled: !!businessId && !!productId && !!variantId
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Hook to create a new product variant
|
|
68
|
-
* @returns A mutation function to create a product variant
|
|
69
|
-
*/
|
|
70
|
-
function useCreateProductVariantMutation() {
|
|
71
|
-
const client = useApiClient();
|
|
72
|
-
const queryClient = useQueryClient();
|
|
73
|
-
const businessId = useBusinessId();
|
|
74
|
-
return useMutation({
|
|
75
|
-
mutationFn: async ({
|
|
76
|
-
productId,
|
|
77
|
-
data,
|
|
78
|
-
options,
|
|
79
|
-
config
|
|
80
|
-
}) => {
|
|
81
|
-
if (!businessId) {
|
|
82
|
-
throw new Error("businessId is required for product variant operations");
|
|
83
|
-
}
|
|
84
|
-
return await client.businesses.productVariants.createAsync(businessId, productId, data, options, config);
|
|
85
|
-
},
|
|
86
|
-
onSuccess: (_, {
|
|
87
|
-
productId
|
|
88
|
-
}) => {
|
|
89
|
-
if (businessId) {
|
|
90
|
-
queryClient.invalidateQueries({
|
|
91
|
-
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, productId, SBApiKeys.ProductVariants]
|
|
92
|
-
});
|
|
93
|
-
queryClient.invalidateQueries({
|
|
94
|
-
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, productId]
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Hook to update an existing product variant
|
|
102
|
-
* @returns A mutation function to update a product variant
|
|
103
|
-
*/
|
|
104
|
-
function useUpdateProductVariantMutation() {
|
|
105
|
-
const client = useApiClient();
|
|
106
|
-
const queryClient = useQueryClient();
|
|
107
|
-
const businessId = useBusinessId();
|
|
108
|
-
return useMutation({
|
|
109
|
-
mutationFn: async ({
|
|
110
|
-
productId,
|
|
111
|
-
variantId,
|
|
112
|
-
data,
|
|
113
|
-
options,
|
|
114
|
-
config
|
|
115
|
-
}) => {
|
|
116
|
-
if (!businessId) {
|
|
117
|
-
throw new Error("businessId is required for product variant operations");
|
|
118
|
-
}
|
|
119
|
-
return await client.businesses.productVariants.updateAsync(businessId, productId, variantId, data, options, config);
|
|
120
|
-
},
|
|
121
|
-
onSuccess: (_, {
|
|
122
|
-
productId,
|
|
123
|
-
variantId
|
|
124
|
-
}) => {
|
|
125
|
-
if (businessId) {
|
|
126
|
-
queryClient.invalidateQueries({
|
|
127
|
-
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, productId, SBApiKeys.ProductVariants]
|
|
128
|
-
});
|
|
129
|
-
queryClient.invalidateQueries({
|
|
130
|
-
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, productId, SBApiKeys.ProductVariants, variantId]
|
|
131
|
-
});
|
|
132
|
-
queryClient.invalidateQueries({
|
|
133
|
-
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, productId]
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Hook to delete a product variant
|
|
141
|
-
* @returns A mutation function to delete a product variant
|
|
142
|
-
*/
|
|
143
|
-
function useDeleteProductVariantMutation() {
|
|
144
|
-
const client = useApiClient();
|
|
145
|
-
const queryClient = useQueryClient();
|
|
146
|
-
const businessId = useBusinessId();
|
|
147
|
-
return useMutation({
|
|
148
|
-
mutationFn: async ({
|
|
149
|
-
productId,
|
|
150
|
-
variantId,
|
|
151
|
-
options,
|
|
152
|
-
config
|
|
153
|
-
}) => {
|
|
154
|
-
if (!businessId) {
|
|
155
|
-
throw new Error("businessId is required for product variant operations");
|
|
156
|
-
}
|
|
157
|
-
return await client.businesses.productVariants.deleteAsync(businessId, productId, variantId, options, config);
|
|
158
|
-
},
|
|
159
|
-
onSuccess: (_, {
|
|
160
|
-
productId,
|
|
161
|
-
variantId
|
|
162
|
-
}) => {
|
|
163
|
-
if (businessId) {
|
|
164
|
-
queryClient.invalidateQueries({
|
|
165
|
-
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, productId, SBApiKeys.ProductVariants]
|
|
166
|
-
});
|
|
167
|
-
queryClient.invalidateQueries({
|
|
168
|
-
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, productId, SBApiKeys.ProductVariants, variantId]
|
|
169
|
-
});
|
|
170
|
-
queryClient.invalidateQueries({
|
|
171
|
-
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, productId]
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
export { useCreateProductVariantMutation, useDeleteProductVariantMutation, useGetProductVariantByIdQuery, useListProductVariantsInfiniteQuery, useUpdateProductVariantMutation };
|
|
179
|
-
//# sourceMappingURL=ProductVariantsAPI.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProductVariantsAPI.mjs","sources":["../../../../../../src/apis/business/products/variants/ProductVariantsAPI.tsx"],"sourcesContent":["import {\n\tSBRequestOptions,\n\tSBProductVariant,\n\tProductVariantCreateRequest,\n\tProductVariantUpdateRequest,\n\tSBList,\n\tSBApiException,\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 variants 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 variants data\n */\nexport function useListProductVariantsInfiniteQuery(\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(\n\t\t\t\"businessId is required for product variant operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBProductVariant>,\n\t\tSBApiException,\n\t\tSBList<SBProductVariant>,\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\tproductId,\n\t\t\tSBApiKeys.ProductVariants,\n\t\t\trequest,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.productVariants.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 < 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 && !!productId,\n\t});\n}\n\n/**\n * Hook to fetch a specific product variant by ID\n * @param productId - The ID of the product\n * @param variantId - The ID of the product variant to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the product variant data\n */\nexport function useGetProductVariantByIdQuery(\n\tproductId: number,\n\tvariantId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useQuery<SBProductVariant, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Products,\n\t\t\tproductId,\n\t\t\tSBApiKeys.ProductVariants,\n\t\t\tvariantId,\n\t\t],\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 variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tvariantId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!productId && !!variantId,\n\t});\n}\n\n/**\n * Hook to create a new product variant\n * @returns A mutation function to create a product variant\n */\nexport function useCreateProductVariantMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductVariant,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\tdata: ProductVariantCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, data, 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 variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to update an existing product variant\n * @returns A mutation function to update a product variant\n */\nexport function useUpdateProductVariantMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductVariant,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\tvariantId: number;\n\t\t\tdata: ProductVariantUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, variantId, data, 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 variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tvariantId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, variantId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t\tvariantId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Hook to delete a product variant\n * @returns A mutation function to delete a product variant\n */\nexport function useDeleteProductVariantMutation() {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBProductVariant,\n\t\tSBApiException,\n\t\t{\n\t\t\tproductId: number;\n\t\t\tvariantId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ productId, variantId, 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 variant operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.productVariants.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tproductId,\n\t\t\t\tvariantId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { productId, variantId }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t\tSBApiKeys.ProductVariants,\n\t\t\t\t\t\tvariantId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Products,\n\t\t\t\t\t\tproductId,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n}\n"],"names":["useListProductVariantsInfiniteQuery","productId","request","page","pageSize","options","config","client","useApiClient","useQueryClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","Products","ProductVariants","queryFn","pageParam","businesses","productVariants","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetProductVariantByIdQuery","variantId","useQuery","getByIdAsync","useCreateProductVariantMutation","queryClient","useMutation","mutationFn","data","createAsync","onSuccess","_","invalidateQueries","useUpdateProductVariantMutation","updateAsync","useDeleteProductVariantMutation","deleteAsync"],"mappings":"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"}
|