@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.
Files changed (163) hide show
  1. package/README.md +148 -73
  2. package/dist/cjs/index.cjs +1 -223
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/esm/index.mjs +1 -38
  5. package/dist/esm/index.mjs.map +1 -1
  6. package/dist/types/index.d.ts +623 -0
  7. package/package.json +58 -99
  8. package/dist/@types/index.d.ts +0 -1447
  9. package/dist/@types/index.d.ts.map +0 -1
  10. package/dist/cjs/apis/SBApiKeys.cjs +0 -56
  11. package/dist/cjs/apis/SBApiKeys.cjs.map +0 -1
  12. package/dist/cjs/apis/api-logs/LogsAPI.cjs +0 -42
  13. package/dist/cjs/apis/api-logs/LogsAPI.cjs.map +0 -1
  14. package/dist/cjs/apis/attachments/AttachmentsAPI.cjs +0 -147
  15. package/dist/cjs/apis/attachments/AttachmentsAPI.cjs.map +0 -1
  16. package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs +0 -88
  17. package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs.map +0 -1
  18. package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs +0 -58
  19. package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs.map +0 -1
  20. package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs +0 -57
  21. package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs.map +0 -1
  22. package/dist/cjs/apis/business/BusinessAPI.cjs +0 -172
  23. package/dist/cjs/apis/business/BusinessAPI.cjs.map +0 -1
  24. package/dist/cjs/apis/business/customers/CustomerAPI.cjs +0 -161
  25. package/dist/cjs/apis/business/customers/CustomerAPI.cjs.map +0 -1
  26. package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs +0 -71
  27. package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs.map +0 -1
  28. package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs +0 -176
  29. package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs.map +0 -1
  30. package/dist/cjs/apis/business/departments/DepartmentApi.cjs +0 -168
  31. package/dist/cjs/apis/business/departments/DepartmentApi.cjs.map +0 -1
  32. package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs +0 -137
  33. package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs.map +0 -1
  34. package/dist/cjs/apis/business/fees/FeesAPI.cjs +0 -167
  35. package/dist/cjs/apis/business/fees/FeesAPI.cjs.map +0 -1
  36. package/dist/cjs/apis/business/locations/LocationsAPI.cjs +0 -133
  37. package/dist/cjs/apis/business/locations/LocationsAPI.cjs.map +0 -1
  38. package/dist/cjs/apis/business/products/ProductsAPI.cjs +0 -184
  39. package/dist/cjs/apis/business/products/ProductsAPI.cjs.map +0 -1
  40. package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs +0 -195
  41. package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs.map +0 -1
  42. package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs +0 -169
  43. package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs.map +0 -1
  44. package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs +0 -183
  45. package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs.map +0 -1
  46. package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs +0 -185
  47. package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs.map +0 -1
  48. package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs +0 -139
  49. package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs.map +0 -1
  50. package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs +0 -143
  51. package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs.map +0 -1
  52. package/dist/cjs/apis/business/tables/TablesAPI.cjs +0 -75
  53. package/dist/cjs/apis/business/tables/TablesAPI.cjs.map +0 -1
  54. package/dist/cjs/apis/business/taxes/TaxesAPI.cjs +0 -140
  55. package/dist/cjs/apis/business/taxes/TaxesAPI.cjs.map +0 -1
  56. package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs +0 -161
  57. package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs.map +0 -1
  58. package/dist/cjs/apis/business/team/TeamMembersAPI.cjs +0 -93
  59. package/dist/cjs/apis/business/team/TeamMembersAPI.cjs.map +0 -1
  60. package/dist/cjs/apis/business/vendors/VendorsAPI.cjs +0 -237
  61. package/dist/cjs/apis/business/vendors/VendorsAPI.cjs.map +0 -1
  62. package/dist/cjs/apis/documents/DocumentsAPI.cjs +0 -87
  63. package/dist/cjs/apis/documents/DocumentsAPI.cjs.map +0 -1
  64. package/dist/cjs/apis/expenses/ExpensesAPI.cjs +0 -62
  65. package/dist/cjs/apis/expenses/ExpensesAPI.cjs.map +0 -1
  66. package/dist/cjs/apis/friends/FriendsAPI.cjs +0 -150
  67. package/dist/cjs/apis/friends/FriendsAPI.cjs.map +0 -1
  68. package/dist/cjs/apis/integrations/IntegrationsAPI.cjs +0 -55
  69. package/dist/cjs/apis/integrations/IntegrationsAPI.cjs.map +0 -1
  70. package/dist/cjs/apis/invoices/InvoicesAPI.cjs +0 -168
  71. package/dist/cjs/apis/invoices/InvoicesAPI.cjs.map +0 -1
  72. package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs +0 -484
  73. package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs.map +0 -1
  74. package/dist/cjs/apis/notifications/NotificationAPI.cjs +0 -103
  75. package/dist/cjs/apis/notifications/NotificationAPI.cjs.map +0 -1
  76. package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs +0 -125
  77. package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs.map +0 -1
  78. package/dist/cjs/apis/receipts/ReceiptAPI.cjs +0 -135
  79. package/dist/cjs/apis/receipts/ReceiptAPI.cjs.map +0 -1
  80. package/dist/cjs/apis/user/UserAPI.cjs +0 -130
  81. package/dist/cjs/apis/user/UserAPI.cjs.map +0 -1
  82. package/dist/cjs/apis/vendors/VendorsAPI.cjs +0 -215
  83. package/dist/cjs/apis/vendors/VendorsAPI.cjs.map +0 -1
  84. package/dist/cjs/context/ApiContext.cjs +0 -94
  85. package/dist/cjs/context/ApiContext.cjs.map +0 -1
  86. package/dist/esm/apis/SBApiKeys.mjs +0 -56
  87. package/dist/esm/apis/SBApiKeys.mjs.map +0 -1
  88. package/dist/esm/apis/api-logs/LogsAPI.mjs +0 -39
  89. package/dist/esm/apis/api-logs/LogsAPI.mjs.map +0 -1
  90. package/dist/esm/apis/attachments/AttachmentsAPI.mjs +0 -142
  91. package/dist/esm/apis/attachments/AttachmentsAPI.mjs.map +0 -1
  92. package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs +0 -84
  93. package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs.map +0 -1
  94. package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs +0 -55
  95. package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs.map +0 -1
  96. package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs +0 -54
  97. package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs.map +0 -1
  98. package/dist/esm/apis/business/BusinessAPI.mjs +0 -165
  99. package/dist/esm/apis/business/BusinessAPI.mjs.map +0 -1
  100. package/dist/esm/apis/business/customers/CustomerAPI.mjs +0 -155
  101. package/dist/esm/apis/business/customers/CustomerAPI.mjs.map +0 -1
  102. package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs +0 -68
  103. package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs.map +0 -1
  104. package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs +0 -170
  105. package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs.map +0 -1
  106. package/dist/esm/apis/business/departments/DepartmentApi.mjs +0 -161
  107. package/dist/esm/apis/business/departments/DepartmentApi.mjs.map +0 -1
  108. package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs +0 -132
  109. package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs.map +0 -1
  110. package/dist/esm/apis/business/fees/FeesAPI.mjs +0 -161
  111. package/dist/esm/apis/business/fees/FeesAPI.mjs.map +0 -1
  112. package/dist/esm/apis/business/locations/LocationsAPI.mjs +0 -127
  113. package/dist/esm/apis/business/locations/LocationsAPI.mjs.map +0 -1
  114. package/dist/esm/apis/business/products/ProductsAPI.mjs +0 -177
  115. package/dist/esm/apis/business/products/ProductsAPI.mjs.map +0 -1
  116. package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs +0 -188
  117. package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs.map +0 -1
  118. package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs +0 -163
  119. package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs.map +0 -1
  120. package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs +0 -177
  121. package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs.map +0 -1
  122. package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs +0 -179
  123. package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs.map +0 -1
  124. package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs +0 -133
  125. package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs.map +0 -1
  126. package/dist/esm/apis/business/reviews/ReviewsAPI.mjs +0 -137
  127. package/dist/esm/apis/business/reviews/ReviewsAPI.mjs.map +0 -1
  128. package/dist/esm/apis/business/tables/TablesAPI.mjs +0 -70
  129. package/dist/esm/apis/business/tables/TablesAPI.mjs.map +0 -1
  130. package/dist/esm/apis/business/taxes/TaxesAPI.mjs +0 -134
  131. package/dist/esm/apis/business/taxes/TaxesAPI.mjs.map +0 -1
  132. package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs +0 -153
  133. package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs.map +0 -1
  134. package/dist/esm/apis/business/team/TeamMembersAPI.mjs +0 -88
  135. package/dist/esm/apis/business/team/TeamMembersAPI.mjs.map +0 -1
  136. package/dist/esm/apis/business/vendors/VendorsAPI.mjs +0 -228
  137. package/dist/esm/apis/business/vendors/VendorsAPI.mjs.map +0 -1
  138. package/dist/esm/apis/documents/DocumentsAPI.mjs +0 -82
  139. package/dist/esm/apis/documents/DocumentsAPI.mjs.map +0 -1
  140. package/dist/esm/apis/expenses/ExpensesAPI.mjs +0 -58
  141. package/dist/esm/apis/expenses/ExpensesAPI.mjs.map +0 -1
  142. package/dist/esm/apis/friends/FriendsAPI.mjs +0 -144
  143. package/dist/esm/apis/friends/FriendsAPI.mjs.map +0 -1
  144. package/dist/esm/apis/integrations/IntegrationsAPI.mjs +0 -52
  145. package/dist/esm/apis/integrations/IntegrationsAPI.mjs.map +0 -1
  146. package/dist/esm/apis/invoices/InvoicesAPI.mjs +0 -161
  147. package/dist/esm/apis/invoices/InvoicesAPI.mjs.map +0 -1
  148. package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs +0 -482
  149. package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs.map +0 -1
  150. package/dist/esm/apis/notifications/NotificationAPI.mjs +0 -98
  151. package/dist/esm/apis/notifications/NotificationAPI.mjs.map +0 -1
  152. package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs +0 -117
  153. package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs.map +0 -1
  154. package/dist/esm/apis/receipts/ReceiptAPI.mjs +0 -129
  155. package/dist/esm/apis/receipts/ReceiptAPI.mjs.map +0 -1
  156. package/dist/esm/apis/user/UserAPI.mjs +0 -123
  157. package/dist/esm/apis/user/UserAPI.mjs.map +0 -1
  158. package/dist/esm/apis/vendors/VendorsAPI.mjs +0 -204
  159. package/dist/esm/apis/vendors/VendorsAPI.mjs.map +0 -1
  160. package/dist/esm/context/ApiContext.mjs +0 -86
  161. package/dist/esm/context/ApiContext.mjs.map +0 -1
  162. package/dist/umd/index.js +0 -5099
  163. package/dist/umd/index.js.map +0 -1
@@ -1,127 +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
- function useListLocationsInfiniteQuery(request = {
6
- page: 1,
7
- pageSize: 25
8
- }, options, config) {
9
- const client = useApiClient();
10
- useQueryClient();
11
- const businessId = useBusinessId();
12
- if (!businessId) {
13
- throw new Error("businessId is required for location operations");
14
- }
15
- return useInfiniteQuery({
16
- initialPageParam: request.page || 1,
17
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Locations, request, options],
18
- queryFn: async ({
19
- pageParam = 1
20
- }) => {
21
- return await client.businesses.locations.listAsync(businessId, {
22
- ...request,
23
- page: pageParam
24
- }, options, config);
25
- },
26
- getNextPageParam: lastPage => {
27
- if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
28
- return lastPage.pagination.currentPage + 1;
29
- }
30
- return undefined;
31
- },
32
- enabled: !!businessId
33
- });
34
- }
35
- const useGetLocationByIdQuery = (id, options, config) => {
36
- const client = useApiClient();
37
- useQueryClient();
38
- const businessId = useBusinessId();
39
- if (!businessId) {
40
- throw new Error("businessId is required for location operations");
41
- }
42
- return useQuery({
43
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Locations, id, options],
44
- queryFn: async () => await client.businesses.locations.getByIdAsync(businessId, id, options, config),
45
- enabled: !!businessId
46
- });
47
- };
48
- const useCreateLocationMutation = () => {
49
- const client = useApiClient();
50
- const queryClient = useQueryClient();
51
- const businessId = useBusinessId();
52
- return useMutation({
53
- mutationFn: async ({
54
- request,
55
- options,
56
- config
57
- }) => {
58
- if (!businessId) {
59
- throw new Error("businessId is required for location operations");
60
- }
61
- return await client.businesses.locations.createAsync(businessId, request, options, config);
62
- },
63
- onSuccess: () => {
64
- queryClient.invalidateQueries({
65
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Locations]
66
- });
67
- }
68
- });
69
- };
70
- const useUpdateLocationMutation = () => {
71
- const client = useApiClient();
72
- const queryClient = useQueryClient();
73
- const businessId = useBusinessId();
74
- return useMutation({
75
- mutationFn: async ({
76
- id,
77
- request,
78
- options,
79
- config
80
- }) => {
81
- if (!businessId) {
82
- throw new Error("businessId is required for location operations");
83
- }
84
- return await client.businesses.locations.updateAsync(businessId, id, request, options, config);
85
- },
86
- onSuccess: (_, {
87
- id
88
- }) => {
89
- queryClient.invalidateQueries({
90
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Locations]
91
- });
92
- queryClient.invalidateQueries({
93
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Locations, id]
94
- });
95
- }
96
- });
97
- };
98
- const useDeleteLocationMutation = () => {
99
- const client = useApiClient();
100
- const queryClient = useQueryClient();
101
- const businessId = useBusinessId();
102
- return useMutation({
103
- mutationFn: async ({
104
- id,
105
- options,
106
- config
107
- }) => {
108
- if (!businessId) {
109
- throw new Error("businessId is required for location operations");
110
- }
111
- await client.businesses.locations.deleteAsync(businessId, id, options, config);
112
- },
113
- onSuccess: (_, {
114
- id
115
- }) => {
116
- queryClient.invalidateQueries({
117
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Locations]
118
- });
119
- queryClient.invalidateQueries({
120
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Locations, id]
121
- });
122
- }
123
- });
124
- };
125
-
126
- export { useCreateLocationMutation, useDeleteLocationMutation, useGetLocationByIdQuery, useListLocationsInfiniteQuery, useUpdateLocationMutation };
127
- //# sourceMappingURL=LocationsAPI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocationsAPI.mjs","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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"}
@@ -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 list products with infinite scrolling
7
- * @param request - The list request parameters
8
- * @param options - Optional request options
9
- * @param config - Optional axios request config
10
- * @returns Infinite query result containing the paginated products
11
- */
12
- function useListProductsInfiniteQuery(request = {
13
- page: 1,
14
- pageSize: 25
15
- }, options, config) {
16
- const client = useApiClient();
17
- useQueryClient();
18
- const businessId = useBusinessId();
19
- if (!businessId) {
20
- throw new Error("businessId is required for product operations");
21
- }
22
- return useInfiniteQuery({
23
- initialPageParam: request.page || 1,
24
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, request, options],
25
- queryFn: async ({
26
- pageParam = 1
27
- }) => {
28
- return await client.businesses.products.listAsync(businessId, {
29
- ...request,
30
- page: pageParam
31
- }, options, config);
32
- },
33
- getNextPageParam: lastPage => {
34
- if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
35
- return lastPage.pagination.currentPage + 1;
36
- }
37
- return undefined;
38
- },
39
- enabled: !!businessId
40
- });
41
- }
42
- /**
43
- * Hook to get a product by ID
44
- * @param id - The product ID
45
- * @param options - Optional request options
46
- * @param config - Optional axios request config
47
- * @returns Query result containing the product data
48
- */
49
- function useGetProductByIdQuery(id, options, config) {
50
- const client = useApiClient();
51
- useQueryClient();
52
- const businessId = useBusinessId();
53
- return useQuery({
54
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, id],
55
- queryFn: async () => {
56
- if (!businessId) {
57
- throw new Error("businessId is required for product operations");
58
- }
59
- return await client.businesses.products.getByIdAsync(businessId, id, options, config);
60
- }
61
- });
62
- }
63
- /**
64
- * Hook to create a new product
65
- * @returns Mutation function to create a product
66
- */
67
- function useCreateProductMutation() {
68
- const client = useApiClient();
69
- const queryClient = useQueryClient();
70
- const businessId = useBusinessId();
71
- return useMutation({
72
- mutationKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products],
73
- mutationFn: async request => {
74
- if (!businessId) {
75
- throw new Error("businessId is required for product operations");
76
- }
77
- return await client.businesses.products.createAsync(businessId, request);
78
- },
79
- onSuccess: () => {
80
- queryClient.invalidateQueries({
81
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products]
82
- });
83
- }
84
- });
85
- }
86
- /**
87
- * Hook to delete a product
88
- * @returns Mutation function for deleting products
89
- */
90
- function useDeleteProductMutation() {
91
- const client = useApiClient();
92
- const queryClient = useQueryClient();
93
- const businessId = useBusinessId();
94
- return useMutation({
95
- mutationFn: async ({
96
- id,
97
- options,
98
- config
99
- }) => {
100
- if (!businessId) {
101
- throw new Error("businessId is required for product operations");
102
- }
103
- return await client.businesses.products.deleteAsync(businessId, id, options, config);
104
- },
105
- onSuccess: (_, {
106
- id
107
- }) => {
108
- queryClient.invalidateQueries({
109
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products]
110
- });
111
- queryClient.invalidateQueries({
112
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, id]
113
- });
114
- }
115
- });
116
- }
117
- /**
118
- * Hook to update a product
119
- * @returns Mutation function for updating products
120
- */
121
- function useUpdateProductMutation() {
122
- const client = useApiClient();
123
- const queryClient = useQueryClient();
124
- const businessId = useBusinessId();
125
- return useMutation({
126
- mutationFn: async ({
127
- id,
128
- request,
129
- options,
130
- config
131
- }) => {
132
- if (!businessId) {
133
- throw new Error("businessId is required for product operations");
134
- }
135
- return await client.businesses.products.updateAsync(businessId, id, request, options, config);
136
- },
137
- onSuccess: (_, {
138
- id
139
- }) => {
140
- queryClient.invalidateQueries({
141
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products]
142
- });
143
- queryClient.invalidateQueries({
144
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products, id]
145
- });
146
- }
147
- });
148
- }
149
- /**
150
- * Hook to batch upsert products
151
- * @returns Mutation function for batch upsert operations
152
- */
153
- function useBatchUpsertProductsMutation() {
154
- const client = useApiClient();
155
- const queryClient = useQueryClient();
156
- const businessId = useBusinessId();
157
- return useMutation({
158
- mutationFn: async ({
159
- requests,
160
- options,
161
- config
162
- }) => {
163
- if (!businessId) {
164
- throw new Error("businessId is required for product operations");
165
- }
166
- return await client.businesses.products.batch(businessId, requests, options, config);
167
- },
168
- onSuccess: () => {
169
- queryClient.invalidateQueries({
170
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Products]
171
- });
172
- }
173
- });
174
- }
175
-
176
- export { useBatchUpsertProductsMutation, useCreateProductMutation, useDeleteProductMutation, useGetProductByIdQuery, useListProductsInfiniteQuery, useUpdateProductMutation };
177
- //# sourceMappingURL=ProductsAPI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductsAPI.mjs","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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"}
@@ -1,188 +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 images 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 images data
12
- */
13
- function useListProductImagesInfiniteQuery(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 image operations");
22
- }
23
- return useInfiniteQuery({
24
- initialPageParam: 1,
25
- queryKey: [SBApiKeys.Products, businessId, productId, SBApiKeys.ProductImages, request],
26
- queryFn: async ({
27
- pageParam = 1
28
- }) => {
29
- return await client.businesses.productImages.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 list of product images for a specific product
45
- * @param productId - The ID of the product
46
- * @param request - The pagination request parameters
47
- * @param options - Optional request options
48
- * @param config - Optional Axios request configuration
49
- * @returns A query result containing paginated product images data
50
- */
51
- function useListProductImagesQuery(productId, request = {
52
- page: 1,
53
- pageSize: 25
54
- }, options, config) {
55
- const client = useApiClient();
56
- useQueryClient();
57
- const businessId = useBusinessId();
58
- if (!businessId) {
59
- throw new Error("businessId is required for product image operations");
60
- }
61
- return useQuery({
62
- queryKey: [SBApiKeys.Products, businessId, productId, SBApiKeys.ProductImages, request],
63
- queryFn: async () => {
64
- return await client.businesses.productImages.listAsync(businessId, productId, request, options, config);
65
- },
66
- enabled: !!businessId && !!productId
67
- });
68
- }
69
- /**
70
- * Hook to fetch a specific product image by ID
71
- * @param productId - The ID of the product
72
- * @param imageId - The ID of the product image to retrieve
73
- * @param options - Optional request options
74
- * @param config - Optional Axios request configuration
75
- * @returns A query result containing the product image data
76
- */
77
- function useGetProductImageByIdQuery(productId, imageId, options, config) {
78
- const client = useApiClient();
79
- useQueryClient();
80
- const businessId = useBusinessId();
81
- if (!businessId) {
82
- throw new Error("businessId is required for product image operations");
83
- }
84
- return useQuery({
85
- queryKey: [SBApiKeys.Products, businessId, productId, SBApiKeys.ProductImages, imageId],
86
- queryFn: async () => await client.businesses.productImages.getByIdAsync(businessId, productId, imageId, options, config),
87
- enabled: !!businessId && !!productId && !!imageId
88
- });
89
- }
90
- /**
91
- * Hook to create a new product image
92
- * @returns A mutation function to create a product image
93
- */
94
- function useCreateProductImageMutation() {
95
- const client = useApiClient();
96
- const queryClient = useQueryClient();
97
- const businessId = useBusinessId();
98
- return useMutation({
99
- mutationFn: async ({
100
- productId,
101
- request,
102
- options,
103
- config
104
- }) => {
105
- return await client.businesses.productImages.createAsync(businessId, productId, request, options, config);
106
- },
107
- onSuccess: (_, {
108
- productId
109
- }) => {
110
- queryClient.invalidateQueries({
111
- queryKey: [SBApiKeys.Products, productId, SBApiKeys.ProductImages]
112
- });
113
- queryClient.invalidateQueries({
114
- queryKey: [SBApiKeys.Products, productId, SBApiKeys.ProductImages]
115
- });
116
- }
117
- });
118
- }
119
- /**
120
- * Hook to update an existing product image
121
- * @returns A mutation function to update a product image
122
- */
123
- function useUpdateProductImageMutation() {
124
- const client = useApiClient();
125
- const queryClient = useQueryClient();
126
- const businessId = useBusinessId();
127
- return useMutation({
128
- mutationFn: async ({
129
- productId,
130
- imageId,
131
- request,
132
- options,
133
- config
134
- }) => {
135
- return await client.businesses.productImages.updateAsync(businessId, productId, imageId, request, options, config);
136
- },
137
- onSuccess: (_, {
138
- productId,
139
- imageId
140
- }) => {
141
- queryClient.invalidateQueries({
142
- queryKey: [SBApiKeys.Products, productId, SBApiKeys.ProductImages]
143
- });
144
- queryClient.invalidateQueries({
145
- queryKey: [SBApiKeys.Products, productId, SBApiKeys.ProductImages, imageId]
146
- });
147
- queryClient.invalidateQueries({
148
- queryKey: [SBApiKeys.Products, productId, SBApiKeys.ProductImages]
149
- });
150
- }
151
- });
152
- }
153
- /**
154
- * Hook to delete a product image
155
- * @returns A mutation function to delete a product image
156
- */
157
- function useDeleteProductImageMutation() {
158
- const client = useApiClient();
159
- const queryClient = useQueryClient();
160
- const businessId = useBusinessId();
161
- return useMutation({
162
- mutationFn: async ({
163
- productId,
164
- imageId,
165
- options,
166
- config
167
- }) => {
168
- return await client.businesses.productImages.deleteAsync(businessId, productId, imageId, options, config);
169
- },
170
- onSuccess: (_, {
171
- productId,
172
- imageId
173
- }) => {
174
- queryClient.invalidateQueries({
175
- queryKey: [SBApiKeys.Products, productId, SBApiKeys.ProductImages]
176
- });
177
- queryClient.invalidateQueries({
178
- queryKey: [SBApiKeys.Products, productId, SBApiKeys.ProductImages, imageId]
179
- });
180
- queryClient.invalidateQueries({
181
- queryKey: [SBApiKeys.Products, productId, SBApiKeys.ProductImages]
182
- });
183
- }
184
- });
185
- }
186
-
187
- export { useCreateProductImageMutation, useDeleteProductImageMutation, useGetProductImageByIdQuery, useListProductImagesInfiniteQuery, useListProductImagesQuery, useUpdateProductImageMutation };
188
- //# sourceMappingURL=ProductImagesAPI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductImagesAPI.mjs","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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"}