@smartbills/react-hooks-sdk 0.0.2-alpha.44 → 0.0.2-alpha.46

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 (161) hide show
  1. package/dist/@types/index.d.ts +1447 -0
  2. package/dist/@types/index.d.ts.map +1 -0
  3. package/dist/cjs/apis/SBApiKeys.cjs +56 -0
  4. package/dist/cjs/apis/SBApiKeys.cjs.map +1 -0
  5. package/dist/cjs/apis/api-logs/LogsAPI.cjs +42 -0
  6. package/dist/cjs/apis/api-logs/LogsAPI.cjs.map +1 -0
  7. package/dist/cjs/apis/attachments/AttachmentsAPI.cjs +147 -0
  8. package/dist/cjs/apis/attachments/AttachmentsAPI.cjs.map +1 -0
  9. package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs +88 -0
  10. package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs.map +1 -0
  11. package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs +58 -0
  12. package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs.map +1 -0
  13. package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs +57 -0
  14. package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs.map +1 -0
  15. package/dist/cjs/apis/business/BusinessAPI.cjs +172 -0
  16. package/dist/cjs/apis/business/BusinessAPI.cjs.map +1 -0
  17. package/dist/cjs/apis/business/customers/CustomerAPI.cjs +161 -0
  18. package/dist/cjs/apis/business/customers/CustomerAPI.cjs.map +1 -0
  19. package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs +71 -0
  20. package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs.map +1 -0
  21. package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs +176 -0
  22. package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs.map +1 -0
  23. package/dist/cjs/apis/business/departments/DepartmentApi.cjs +168 -0
  24. package/dist/cjs/apis/business/departments/DepartmentApi.cjs.map +1 -0
  25. package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs +137 -0
  26. package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs.map +1 -0
  27. package/dist/cjs/apis/business/fees/FeesAPI.cjs +167 -0
  28. package/dist/cjs/apis/business/fees/FeesAPI.cjs.map +1 -0
  29. package/dist/cjs/apis/business/locations/LocationsAPI.cjs +133 -0
  30. package/dist/cjs/apis/business/locations/LocationsAPI.cjs.map +1 -0
  31. package/dist/cjs/apis/business/products/ProductsAPI.cjs +184 -0
  32. package/dist/cjs/apis/business/products/ProductsAPI.cjs.map +1 -0
  33. package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs +195 -0
  34. package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs.map +1 -0
  35. package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs +169 -0
  36. package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs.map +1 -0
  37. package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs +183 -0
  38. package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs.map +1 -0
  39. package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs +185 -0
  40. package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs.map +1 -0
  41. package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs +139 -0
  42. package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs.map +1 -0
  43. package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs +143 -0
  44. package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs.map +1 -0
  45. package/dist/cjs/apis/business/tables/TablesAPI.cjs +75 -0
  46. package/dist/cjs/apis/business/tables/TablesAPI.cjs.map +1 -0
  47. package/dist/cjs/apis/business/taxes/TaxesAPI.cjs +140 -0
  48. package/dist/cjs/apis/business/taxes/TaxesAPI.cjs.map +1 -0
  49. package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs +161 -0
  50. package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs.map +1 -0
  51. package/dist/cjs/apis/business/team/TeamMembersAPI.cjs +93 -0
  52. package/dist/cjs/apis/business/team/TeamMembersAPI.cjs.map +1 -0
  53. package/dist/cjs/apis/business/vendors/VendorsAPI.cjs +237 -0
  54. package/dist/cjs/apis/business/vendors/VendorsAPI.cjs.map +1 -0
  55. package/dist/cjs/apis/documents/DocumentsAPI.cjs +87 -0
  56. package/dist/cjs/apis/documents/DocumentsAPI.cjs.map +1 -0
  57. package/dist/cjs/apis/expenses/ExpensesAPI.cjs +62 -0
  58. package/dist/cjs/apis/expenses/ExpensesAPI.cjs.map +1 -0
  59. package/dist/cjs/apis/friends/FriendsAPI.cjs +150 -0
  60. package/dist/cjs/apis/friends/FriendsAPI.cjs.map +1 -0
  61. package/dist/cjs/apis/integrations/IntegrationsAPI.cjs +55 -0
  62. package/dist/cjs/apis/integrations/IntegrationsAPI.cjs.map +1 -0
  63. package/dist/cjs/apis/invoices/InvoicesAPI.cjs +168 -0
  64. package/dist/cjs/apis/invoices/InvoicesAPI.cjs.map +1 -0
  65. package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs +484 -0
  66. package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs.map +1 -0
  67. package/dist/cjs/apis/notifications/NotificationAPI.cjs +103 -0
  68. package/dist/cjs/apis/notifications/NotificationAPI.cjs.map +1 -0
  69. package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs +125 -0
  70. package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs.map +1 -0
  71. package/dist/cjs/apis/receipts/ReceiptAPI.cjs +135 -0
  72. package/dist/cjs/apis/receipts/ReceiptAPI.cjs.map +1 -0
  73. package/dist/cjs/apis/user/UserAPI.cjs +130 -0
  74. package/dist/cjs/apis/user/UserAPI.cjs.map +1 -0
  75. package/dist/cjs/apis/vendors/VendorsAPI.cjs +215 -0
  76. package/dist/cjs/apis/vendors/VendorsAPI.cjs.map +1 -0
  77. package/dist/cjs/context/ApiContext.cjs +94 -0
  78. package/dist/cjs/context/ApiContext.cjs.map +1 -0
  79. package/dist/cjs/index.cjs +224 -0
  80. package/dist/cjs/index.cjs.map +1 -0
  81. package/dist/esm/apis/SBApiKeys.mjs +56 -0
  82. package/dist/esm/apis/SBApiKeys.mjs.map +1 -0
  83. package/dist/esm/apis/api-logs/LogsAPI.mjs +39 -0
  84. package/dist/esm/apis/api-logs/LogsAPI.mjs.map +1 -0
  85. package/dist/esm/apis/attachments/AttachmentsAPI.mjs +142 -0
  86. package/dist/esm/apis/attachments/AttachmentsAPI.mjs.map +1 -0
  87. package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs +84 -0
  88. package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs.map +1 -0
  89. package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs +55 -0
  90. package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs.map +1 -0
  91. package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs +54 -0
  92. package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs.map +1 -0
  93. package/dist/esm/apis/business/BusinessAPI.mjs +165 -0
  94. package/dist/esm/apis/business/BusinessAPI.mjs.map +1 -0
  95. package/dist/esm/apis/business/customers/CustomerAPI.mjs +155 -0
  96. package/dist/esm/apis/business/customers/CustomerAPI.mjs.map +1 -0
  97. package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs +68 -0
  98. package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs.map +1 -0
  99. package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs +170 -0
  100. package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs.map +1 -0
  101. package/dist/esm/apis/business/departments/DepartmentApi.mjs +161 -0
  102. package/dist/esm/apis/business/departments/DepartmentApi.mjs.map +1 -0
  103. package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs +132 -0
  104. package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs.map +1 -0
  105. package/dist/esm/apis/business/fees/FeesAPI.mjs +161 -0
  106. package/dist/esm/apis/business/fees/FeesAPI.mjs.map +1 -0
  107. package/dist/esm/apis/business/locations/LocationsAPI.mjs +127 -0
  108. package/dist/esm/apis/business/locations/LocationsAPI.mjs.map +1 -0
  109. package/dist/esm/apis/business/products/ProductsAPI.mjs +177 -0
  110. package/dist/esm/apis/business/products/ProductsAPI.mjs.map +1 -0
  111. package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs +188 -0
  112. package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs.map +1 -0
  113. package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs +163 -0
  114. package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs.map +1 -0
  115. package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs +177 -0
  116. package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs.map +1 -0
  117. package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs +179 -0
  118. package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs.map +1 -0
  119. package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs +133 -0
  120. package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs.map +1 -0
  121. package/dist/esm/apis/business/reviews/ReviewsAPI.mjs +137 -0
  122. package/dist/esm/apis/business/reviews/ReviewsAPI.mjs.map +1 -0
  123. package/dist/esm/apis/business/tables/TablesAPI.mjs +70 -0
  124. package/dist/esm/apis/business/tables/TablesAPI.mjs.map +1 -0
  125. package/dist/esm/apis/business/taxes/TaxesAPI.mjs +134 -0
  126. package/dist/esm/apis/business/taxes/TaxesAPI.mjs.map +1 -0
  127. package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs +153 -0
  128. package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs.map +1 -0
  129. package/dist/esm/apis/business/team/TeamMembersAPI.mjs +88 -0
  130. package/dist/esm/apis/business/team/TeamMembersAPI.mjs.map +1 -0
  131. package/dist/esm/apis/business/vendors/VendorsAPI.mjs +228 -0
  132. package/dist/esm/apis/business/vendors/VendorsAPI.mjs.map +1 -0
  133. package/dist/esm/apis/documents/DocumentsAPI.mjs +82 -0
  134. package/dist/esm/apis/documents/DocumentsAPI.mjs.map +1 -0
  135. package/dist/esm/apis/expenses/ExpensesAPI.mjs +58 -0
  136. package/dist/esm/apis/expenses/ExpensesAPI.mjs.map +1 -0
  137. package/dist/esm/apis/friends/FriendsAPI.mjs +144 -0
  138. package/dist/esm/apis/friends/FriendsAPI.mjs.map +1 -0
  139. package/dist/esm/apis/integrations/IntegrationsAPI.mjs +52 -0
  140. package/dist/esm/apis/integrations/IntegrationsAPI.mjs.map +1 -0
  141. package/dist/esm/apis/invoices/InvoicesAPI.mjs +161 -0
  142. package/dist/esm/apis/invoices/InvoicesAPI.mjs.map +1 -0
  143. package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs +482 -0
  144. package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs.map +1 -0
  145. package/dist/esm/apis/notifications/NotificationAPI.mjs +98 -0
  146. package/dist/esm/apis/notifications/NotificationAPI.mjs.map +1 -0
  147. package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs +117 -0
  148. package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs.map +1 -0
  149. package/dist/esm/apis/receipts/ReceiptAPI.mjs +129 -0
  150. package/dist/esm/apis/receipts/ReceiptAPI.mjs.map +1 -0
  151. package/dist/esm/apis/user/UserAPI.mjs +123 -0
  152. package/dist/esm/apis/user/UserAPI.mjs.map +1 -0
  153. package/dist/esm/apis/vendors/VendorsAPI.mjs +204 -0
  154. package/dist/esm/apis/vendors/VendorsAPI.mjs.map +1 -0
  155. package/dist/esm/context/ApiContext.mjs +86 -0
  156. package/dist/esm/context/ApiContext.mjs.map +1 -0
  157. package/dist/esm/index.mjs +39 -0
  158. package/dist/esm/index.mjs.map +1 -0
  159. package/dist/umd/index.js +5099 -0
  160. package/dist/umd/index.js.map +1 -0
  161. package/package.json +3 -3
@@ -0,0 +1,134 @@
1
+ import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
2
+ import { useInfiniteQuery, useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../../SBApiKeys.mjs';
4
+
5
+ const useListTaxesInfiniteQuery = (request = {
6
+ page: 1,
7
+ pageSize: 25
8
+ }, options, config) => {
9
+ const client = useApiClient();
10
+ const businessId = useBusinessId();
11
+ if (!businessId) {
12
+ throw new Error("businessId is required for tax operations");
13
+ }
14
+ return useInfiniteQuery({
15
+ initialPageParam: request.page || 1,
16
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes, request, options],
17
+ queryFn: async ({
18
+ pageParam = 1
19
+ }) => {
20
+ const paginatedRequest = {
21
+ ...request,
22
+ page: pageParam
23
+ };
24
+ return await client.businesses.taxes.listAsync(businessId, paginatedRequest, 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 useGetTaxByIdQuery = (id, options, config) => {
36
+ const client = useApiClient();
37
+ const businessId = useBusinessId();
38
+ if (!businessId) {
39
+ throw new Error("businessId is required for tax operations");
40
+ }
41
+ return useQuery({
42
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes, id, options],
43
+ queryFn: async () => {
44
+ return await client.businesses.taxes.getByIdAsync(businessId, id, options, config);
45
+ },
46
+ enabled: !!businessId
47
+ });
48
+ };
49
+ const useCreateTaxMutation = () => {
50
+ const client = useApiClient();
51
+ const queryClient = useQueryClient();
52
+ const businessId = useBusinessId();
53
+ return useMutation({
54
+ mutationFn: async ({
55
+ request,
56
+ options,
57
+ config
58
+ }) => {
59
+ if (!businessId) {
60
+ throw new Error("businessId is required for tax operations");
61
+ }
62
+ return await client.businesses.taxes.createAsync(businessId, request, options, config);
63
+ },
64
+ onSuccess: () => {
65
+ if (businessId) {
66
+ queryClient.invalidateQueries({
67
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes]
68
+ });
69
+ }
70
+ }
71
+ });
72
+ };
73
+ const useUpdateTaxMutation = () => {
74
+ const client = useApiClient();
75
+ const queryClient = useQueryClient();
76
+ const businessId = useBusinessId();
77
+ return useMutation({
78
+ mutationFn: async ({
79
+ id,
80
+ request,
81
+ options,
82
+ config
83
+ }) => {
84
+ if (!businessId) {
85
+ throw new Error("businessId is required for tax operations");
86
+ }
87
+ return await client.businesses.taxes.updateAsync(businessId, id, request, options, config);
88
+ },
89
+ onSuccess: (_, {
90
+ id
91
+ }) => {
92
+ if (businessId) {
93
+ queryClient.invalidateQueries({
94
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes]
95
+ });
96
+ queryClient.invalidateQueries({
97
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes, id]
98
+ });
99
+ }
100
+ }
101
+ });
102
+ };
103
+ const useDeleteTaxMutation = () => {
104
+ const client = useApiClient();
105
+ const queryClient = useQueryClient();
106
+ const businessId = useBusinessId();
107
+ return useMutation({
108
+ mutationFn: async ({
109
+ id,
110
+ options,
111
+ config
112
+ }) => {
113
+ if (!businessId) {
114
+ throw new Error("businessId is required for tax operations");
115
+ }
116
+ await client.businesses.taxes.deleteAsync(businessId, id, options, config);
117
+ },
118
+ onSuccess: (_, {
119
+ id
120
+ }) => {
121
+ if (businessId) {
122
+ queryClient.invalidateQueries({
123
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes]
124
+ });
125
+ queryClient.invalidateQueries({
126
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes, id]
127
+ });
128
+ }
129
+ }
130
+ });
131
+ };
132
+
133
+ export { useCreateTaxMutation, useDeleteTaxMutation, useGetTaxByIdQuery, useListTaxesInfiniteQuery, useUpdateTaxMutation };
134
+ //# sourceMappingURL=TaxesAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxesAPI.mjs","sources":["../../../../../src/apis/business/taxes/TaxesAPI.tsx"],"sourcesContent":["import {\n\tSBList,\n\tSBApiException,\n\tSBRequestOptions,\n\tSBTax,\n\tTaxCreateRequest,\n\tTaxListRequest,\n\tTaxUpdateRequest,\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\nexport const useListTaxesInfiniteQuery = (\n\trequest: TaxListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TaxListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for tax operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBTax>,\n\t\tSBApiException,\n\t\tSBList<SBTax>,\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.Taxes,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.businesses.taxes.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tpaginatedRequest,\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 useGetTaxByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TaxListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for tax operations\");\n\t}\n\n\treturn useQuery<SBTax, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Taxes,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.taxes.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\tenabled: !!businessId,\n\t});\n};\n\nexport const useCreateTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTax,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: TaxCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<TaxCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.taxes.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\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.Taxes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useUpdateTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTax,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: TaxUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<TaxUpdateRequest>;\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(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.taxes.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\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.Taxes,\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.Taxes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useDeleteTaxMutation = () => {\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(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\tawait client.businesses.taxes.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\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.Taxes,\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.Taxes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n"],"names":["useListTaxesInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","Taxes","queryFn","pageParam","paginatedRequest","businesses","taxes","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetTaxByIdQuery","id","useQuery","getByIdAsync","useCreateTaxMutation","queryClient","useQueryClient","useMutation","mutationFn","createAsync","onSuccess","invalidateQueries","useUpdateTaxMutation","updateAsync","_","useDeleteTaxMutation","deleteAsync"],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
2
+ import { useQueryClient, useMutation, useQuery, useInfiniteQuery } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../../SBApiKeys.mjs';
4
+
5
+ const useInviteMemberToBusinessMutation = () => {
6
+ const client = useApiClient();
7
+ const queryClient = useQueryClient();
8
+ const businessId = useBusinessId();
9
+ return useMutation({
10
+ mutationFn: async ({
11
+ request
12
+ }) => {
13
+ return client.businesses.teamMembers.invitations.createAsync(businessId, request);
14
+ },
15
+ onSuccess: (_, {}) => {
16
+ queryClient.invalidateQueries({
17
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMemberInvitations]
18
+ });
19
+ }
20
+ });
21
+ };
22
+ const useCancelTeamMemberInvitation = () => {
23
+ const client = useApiClient();
24
+ const queryClient = useQueryClient();
25
+ const businessId = useBusinessId();
26
+ return useMutation({
27
+ mutationFn: async ({
28
+ invitationId
29
+ }) => {
30
+ return await client.businesses.teamMembers.invitations.deleteAsync(businessId, invitationId);
31
+ },
32
+ onSuccess: _ => {
33
+ queryClient.invalidateQueries({
34
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMemberInvitations]
35
+ });
36
+ }
37
+ });
38
+ };
39
+ const useGetTeamMemberInvitationById = ({
40
+ invitationId
41
+ }) => {
42
+ const client = useApiClient();
43
+ useQueryClient();
44
+ const businessId = useBusinessId();
45
+ return useQuery({
46
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMemberInvitations, invitationId],
47
+ queryFn: async () => {
48
+ return client.businesses.teamMembers.invitations.getByIdAsync(businessId, invitationId);
49
+ }
50
+ });
51
+ };
52
+ /**
53
+ * Hook for creating an business invitation
54
+ * @returns Mutation function for creating business invitations
55
+ */
56
+ const useCreateTeamMemberInvitationMutation = () => {
57
+ const client = useApiClient();
58
+ const queryClient = useQueryClient();
59
+ const businessId = useBusinessId();
60
+ return useMutation({
61
+ mutationFn: async ({
62
+ request,
63
+ options,
64
+ config
65
+ }) => {
66
+ return client.businesses.teamMembers.invitations.createAsync(businessId, request, options, config);
67
+ },
68
+ onSuccess: (_, {}) => {
69
+ queryClient.invalidateQueries({
70
+ queryKey: [SBApiKeys.TeamMemberInvitations, businessId]
71
+ });
72
+ }
73
+ });
74
+ };
75
+ /**
76
+ * Hook for accepting an business invitation
77
+ * @returns Mutation function for accepting business invitations
78
+ */
79
+ const useAcceptTeamMemberInvitationMutation = () => {
80
+ const client = useApiClient();
81
+ const queryClient = useQueryClient();
82
+ const businessId = useBusinessId();
83
+ return useMutation({
84
+ mutationFn: async ({
85
+ invitationId,
86
+ request
87
+ }) => {
88
+ return client.businesses.teamMembers.invitations.accept(businessId, invitationId, request);
89
+ },
90
+ onSuccess: (_, {}) => {
91
+ queryClient.invalidateQueries({
92
+ queryKey: [SBApiKeys.TeamMemberInvitations, businessId]
93
+ });
94
+ }
95
+ });
96
+ };
97
+ /**
98
+ * Hook for refusing an business invitation
99
+ * @returns Mutation function for refusing business invitations
100
+ */
101
+ const useRefuseTeamMemberInvitationMutation = () => {
102
+ const client = useApiClient();
103
+ const queryClient = useQueryClient();
104
+ const businessId = useBusinessId();
105
+ return useMutation({
106
+ mutationFn: async ({
107
+ invitationId,
108
+ request
109
+ }) => {
110
+ return client.businesses.teamMembers.invitations.accept(businessId, invitationId, request);
111
+ },
112
+ onSuccess: (_, {}) => {
113
+ queryClient.invalidateQueries({
114
+ queryKey: [SBApiKeys.TeamMemberInvitations, businessId]
115
+ });
116
+ }
117
+ });
118
+ };
119
+ /**
120
+ * Hook for listing business invitations with infinite pagination
121
+ * @param businessId - The ID of the business
122
+ * @param request - Request parameters for listing invitations
123
+ * @param options - Optional request options
124
+ * @param config - Optional Axios request configuration
125
+ * @returns Infinite query result for implementing infinite scrolling with business invitations data
126
+ */
127
+ function useListTeamMemberInvitationsInfiniteQuery(businessId, request = {
128
+ page: 1,
129
+ pageSize: 25
130
+ }, options, config) {
131
+ const client = useApiClient();
132
+ return useInfiniteQuery({
133
+ initialPageParam: request.page || 1,
134
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMemberInvitations, request, options],
135
+ queryFn: async ({
136
+ pageParam = 1
137
+ }) => {
138
+ return await client.businesses.teamMembers.invitations.listAsync(businessId, {
139
+ ...request,
140
+ page: pageParam
141
+ }, options, config);
142
+ },
143
+ getNextPageParam: lastPage => {
144
+ if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
145
+ return lastPage.pagination.currentPage + 1;
146
+ }
147
+ return undefined;
148
+ }
149
+ });
150
+ }
151
+
152
+ export { useAcceptTeamMemberInvitationMutation, useCancelTeamMemberInvitation, useCreateTeamMemberInvitationMutation, useGetTeamMemberInvitationById, useInviteMemberToBusinessMutation, useListTeamMemberInvitationsInfiniteQuery, useRefuseTeamMemberInvitationMutation };
153
+ //# sourceMappingURL=TeamMemberInvitationsAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamMemberInvitationsAPI.mjs","sources":["../../../../../src/apis/business/team/TeamMemberInvitationsAPI.tsx"],"sourcesContent":["import { useApiClient, useBusinessId } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tTeamMemberInvitationListRequest,\n\tTeamMemberInvitationRequest,\n\tTeamMemberInvitationResponseRequest,\n\tSBApiException,\n\tSBList,\n\tSBTeamMemberInvitation,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { QueryKey, useMutation, useQuery } from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useInfiniteQuery, InfiniteData } from \"@tanstack/react-query\";\n\ninterface TeamMemberInvitationRequestMutation {\n\trequest: TeamMemberInvitationRequest;\n}\n\nexport const useInviteMemberToBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationRequestMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t}: TeamMemberInvitationRequestMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.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.TeamMemberInvitations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationCancelMutation {\n\tinvitationId: number;\n}\n\nexport const useCancelTeamMemberInvitation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationCancelMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t}: TeamMemberInvitationCancelMutation) => {\n\t\t\treturn await client.businesses.teamMembers.invitations.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\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.TeamMemberInvitations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationAcceptMutation {\n\tinvitationId: number;\n\trequest: TeamMemberInvitationResponseRequest;\n\toptions?: SBRequestOptions;\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationResponseRequest>;\n}\n\ninterface TeamMemberInvitationRefuseMutation {\n\tinvitationId: number;\n\trequest: TeamMemberInvitationResponseRequest;\n}\n\ninterface GetTeamMemberInvitationQuery {\n\tinvitationId: number;\n}\n\nexport const useGetTeamMemberInvitationById = ({\n\tinvitationId,\n}: GetTeamMemberInvitationQuery) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTeamMemberInvitation, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\tinvitationId,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn client.businesses.teamMembers.invitations.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t);\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationCreateMutation {\n\trequest: TeamMemberInvitationRequest;\n\toptions?: SBRequestOptions;\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationRequest>;\n}\n\n/**\n * Hook for creating an business invitation\n * @returns Mutation function for creating business invitations\n */\nexport const useCreateTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationCreateMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: TeamMemberInvitationCreateMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.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: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for accepting an business invitation\n * @returns Mutation function for accepting business invitations\n */\nexport const useAcceptTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationAcceptMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t\trequest,\n\t\t}: TeamMemberInvitationAcceptMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.accept(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\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: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for refusing an business invitation\n * @returns Mutation function for refusing business invitations\n */\nexport const useRefuseTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationRefuseMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t\trequest,\n\t\t}: TeamMemberInvitationRefuseMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.accept(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\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: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing business invitations with infinite pagination\n * @param businessId - The ID of the business\n * @param request - Request parameters for listing invitations\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with business invitations data\n */\nexport function useListTeamMemberInvitationsInfiniteQuery(\n\tbusinessId: number,\n\trequest: TeamMemberInvitationListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationListRequest>,\n) {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBTeamMemberInvitation>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBTeamMemberInvitation>>,\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.TeamMemberInvitations,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.teamMembers.invitations.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});\n}\n"],"names":["useInviteMemberToBusinessMutation","client","useApiClient","queryClient","useQueryClient","businessId","useBusinessId","useMutation","mutationFn","request","businesses","teamMembers","invitations","createAsync","onSuccess","_","invalidateQueries","queryKey","SBApiKeys","Businesses","TeamMemberInvitations","useCancelTeamMemberInvitation","invitationId","deleteAsync","useGetTeamMemberInvitationById","useQuery","queryFn","getByIdAsync","useCreateTeamMemberInvitationMutation","options","config","useAcceptTeamMemberInvitationMutation","accept","useRefuseTeamMemberInvitationMutation","useListTeamMemberInvitationsInfiniteQuery","page","pageSize","useInfiniteQuery","initialPageParam","pageParam","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined"],"mappings":";;;;AAoBaA,MAAAA,iCAAiC,GAAGA,MAAK;AACrD,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,MAAMC,WAAW,GAAGC,cAAc,EAAE;AACpC,EAAA,MAAMC,UAAU,GAAGC,aAAa,EAAE;AAClC,EAAA,OAAOC,WAAW,CAIhB;IACDC,UAAU,EAAE,OAAO;AAClBC,MAAAA;AAAO,KAC8B,KAAI;AACzC,MAAA,OAAOR,MAAM,CAACS,UAAU,CAACC,WAAW,CAACC,WAAW,CAACC,WAAW,CAC3DR,UAAU,EACVI,OAAO,CACP;KACD;AACDK,IAAAA,SAAS,EAAEA,CAACC,CAAC,EAAE,EAAE,KAAI;MACpBZ,WAAW,CAACa,iBAAiB,CAAC;QAC7BC,QAAQ,EAAE,CACTC,SAAS,CAACC,UAAU,EACpBd,UAAU,EACVa,SAAS,CAACE,qBAAqB;AAEhC,OAAA,CAAC;AACH;AACA,GAAA,CAAC;AACH;AAMaC,MAAAA,6BAA6B,GAAGA,MAAK;AACjD,EAAA,MAAMpB,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,MAAMC,WAAW,GAAGC,cAAc,EAAE;AACpC,EAAA,MAAMC,UAAU,GAAGC,aAAa,EAAE;AAElC,EAAA,OAAOC,WAAW,CAIhB;IACDC,UAAU,EAAE,OAAO;AAClBc,MAAAA;AAAY,KACwB,KAAI;AACxC,MAAA,OAAO,MAAMrB,MAAM,CAACS,UAAU,CAACC,WAAW,CAACC,WAAW,CAACW,WAAW,CACjElB,UAAU,EACViB,YAAY,CACZ;KACD;IACDR,SAAS,EAAGC,CAAC,IAAI;MAChBZ,WAAW,CAACa,iBAAiB,CAAC;QAC7BC,QAAQ,EAAE,CACTC,SAAS,CAACC,UAAU,EACpBd,UAAU,EACVa,SAAS,CAACE,qBAAqB;AAEhC,OAAA,CAAC;AACH;AACA,GAAA,CAAC;AACH;AAkBO,MAAMI,8BAA8B,GAAGA,CAAC;AAC9CF,EAAAA;AAC8B,CAAA,KAAI;AAClC,EAAA,MAAMrB,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBE,cAAc;AAClC,EAAA,MAAMC,UAAU,GAAGC,aAAa,EAAE;AAClC,EAAA,OAAOmB,QAAQ,CAAyC;AACvDR,IAAAA,QAAQ,EAAE,CACTC,SAAS,CAACC,UAAU,EACpBd,UAAU,EACVa,SAAS,CAACE,qBAAqB,EAC/BE,YAAY,CACZ;IACDI,OAAO,EAAE,YAAW;AACnB,MAAA,OAAOzB,MAAM,CAACS,UAAU,CAACC,WAAW,CAACC,WAAW,CAACe,YAAY,CAC5DtB,UAAU,EACViB,YAAY,CACZ;AACF;AACA,GAAA,CAAC;AACH;AAQA;;;AAGG;AACUM,MAAAA,qCAAqC,GAAGA,MAAK;AACzD,EAAA,MAAM3B,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,MAAMC,WAAW,GAAGC,cAAc,EAAE;AACpC,EAAA,MAAMC,UAAU,GAAGC,aAAa,EAAE;AAClC,EAAA,OAAOC,WAAW,CAIhB;IACDC,UAAU,EAAE,OAAO;MAClBC,OAAO;MACPoB,OAAO;AACPC,MAAAA;AACoC,KAAA,KAAI;AACxC,MAAA,OAAO7B,MAAM,CAACS,UAAU,CAACC,WAAW,CAACC,WAAW,CAACC,WAAW,CAC3DR,UAAU,EACVI,OAAO,EACPoB,OAAO,EACPC,MAAM,CACN;KACD;AACDhB,IAAAA,SAAS,EAAEA,CAACC,CAAC,EAAE,EAAE,KAAI;MACpBZ,WAAW,CAACa,iBAAiB,CAAC;AAC7BC,QAAAA,QAAQ,EAAE,CAACC,SAAS,CAACE,qBAAqB,EAAEf,UAAU;AACtD,OAAA,CAAC;AACH;AACA,GAAA,CAAC;AACH;AAEA;;;AAGG;AACU0B,MAAAA,qCAAqC,GAAGA,MAAK;AACzD,EAAA,MAAM9B,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,MAAMC,WAAW,GAAGC,cAAc,EAAE;AACpC,EAAA,MAAMC,UAAU,GAAGC,aAAa,EAAE;AAClC,EAAA,OAAOC,WAAW,CAIhB;IACDC,UAAU,EAAE,OAAO;MAClBc,YAAY;AACZb,MAAAA;AACoC,KAAA,KAAI;AACxC,MAAA,OAAOR,MAAM,CAACS,UAAU,CAACC,WAAW,CAACC,WAAW,CAACoB,MAAM,CACtD3B,UAAU,EACViB,YAAY,EACZb,OAAO,CACP;KACD;AACDK,IAAAA,SAAS,EAAEA,CAACC,CAAC,EAAE,EAAE,KAAI;MACpBZ,WAAW,CAACa,iBAAiB,CAAC;AAC7BC,QAAAA,QAAQ,EAAE,CAACC,SAAS,CAACE,qBAAqB,EAAEf,UAAU;AACtD,OAAA,CAAC;AACH;AACA,GAAA,CAAC;AACH;AAEA;;;AAGG;AACU4B,MAAAA,qCAAqC,GAAGA,MAAK;AACzD,EAAA,MAAMhC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,MAAMC,WAAW,GAAGC,cAAc,EAAE;AACpC,EAAA,MAAMC,UAAU,GAAGC,aAAa,EAAE;AAClC,EAAA,OAAOC,WAAW,CAIhB;IACDC,UAAU,EAAE,OAAO;MAClBc,YAAY;AACZb,MAAAA;AACoC,KAAA,KAAI;AACxC,MAAA,OAAOR,MAAM,CAACS,UAAU,CAACC,WAAW,CAACC,WAAW,CAACoB,MAAM,CACtD3B,UAAU,EACViB,YAAY,EACZb,OAAO,CACP;KACD;AACDK,IAAAA,SAAS,EAAEA,CAACC,CAAC,EAAE,EAAE,KAAI;MACpBZ,WAAW,CAACa,iBAAiB,CAAC;AAC7BC,QAAAA,QAAQ,EAAE,CAACC,SAAS,CAACE,qBAAqB,EAAEf,UAAU;AACtD,OAAA,CAAC;AACH;AACA,GAAA,CAAC;AACH;AAEA;;;;;;;AAOG;SACa6B,yCAAyCA,CACxD7B,UAAkB,EAClBI,OAAA,GAA2C;AAAE0B,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;CAAI,EACpEP,OAA0B,EAC1BC,MAA4D,EAAA;AAE5D,EAAA,MAAM7B,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,OAAOmC,gBAAgB,CAMrB;AACDC,IAAAA,gBAAgB,EAAE7B,OAAO,CAAC0B,IAAI,IAAI,CAAC;AACnClB,IAAAA,QAAQ,EAAE,CACTC,SAAS,CAACC,UAAU,EACpBd,UAAU,EACVa,SAAS,CAACE,qBAAqB,EAC/BX,OAAO,EACPoB,OAAO,CACP;IACDH,OAAO,EAAE,OAAO;AAAEa,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,OAAO,MAAMtC,MAAM,CAACS,UAAU,CAACC,WAAW,CAACC,WAAW,CAAC4B,SAAS,CAC/DnC,UAAU,EACV;AAAE,QAAA,GAAGI,OAAO;AAAE0B,QAAAA,IAAI,EAAEI;AAAW,OAAA,EAC/BV,OAAO,EACPC,MAAM,CACN;KACD;IACDW,gBAAgB,EAAGC,QAAQ,IAAI;MAC9B,IACCA,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAGF,QAAQ,CAACC,UAAU,CAACE,SAAS,EAC9D;AACD,QAAA,OAAOH,QAAQ,CAACC,UAAU,CAACC,WAAW,GAAG,CAAC;AAC3C;AACA,MAAA,OAAOE,SAAS;AACjB;AACA,GAAA,CAAC;AACH;;;;"}
@@ -0,0 +1,88 @@
1
+ import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
2
+ import { useQueryClient, useMutation, useInfiniteQuery, useQuery } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../../SBApiKeys.mjs';
4
+
5
+ const useChangeTeamMemberRoleMutation = () => {
6
+ const client = useApiClient();
7
+ const queryClient = useQueryClient();
8
+ const businessId = useBusinessId();
9
+ return useMutation({
10
+ mutationFn: async ({
11
+ id
12
+ }) => {
13
+ return client.businesses.deleteMember(businessId, id);
14
+ },
15
+ onSuccess: (_, {
16
+ id
17
+ }) => {
18
+ queryClient.invalidateQueries({
19
+ queryKey: [SBApiKeys.Businesses, businessId]
20
+ });
21
+ queryClient.invalidateQueries({
22
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers]
23
+ });
24
+ }
25
+ });
26
+ };
27
+ const useDeleteTeamMemberMutation = () => {
28
+ const client = useApiClient();
29
+ const queryClient = useQueryClient();
30
+ const businessId = useBusinessId();
31
+ return useMutation({
32
+ mutationFn: async ({
33
+ id
34
+ }) => {
35
+ return client.businesses.deleteMember(businessId, id);
36
+ },
37
+ onSuccess: (_, {
38
+ id
39
+ }) => {
40
+ queryClient.invalidateQueries({
41
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers]
42
+ });
43
+ }
44
+ });
45
+ };
46
+ function useListTeamMembersInfiniteQuery(request = {
47
+ page: 1,
48
+ pageSize: 25
49
+ }, options, config) {
50
+ const client = useApiClient();
51
+ useQueryClient();
52
+ const businessId = useBusinessId();
53
+ return useInfiniteQuery({
54
+ initialPageParam: request.page || 1,
55
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers, request, options],
56
+ queryFn: async ({
57
+ pageParam = 1
58
+ }) => {
59
+ return await client.businesses.listMembers(businessId, {
60
+ ...request,
61
+ page: pageParam
62
+ }, options, config);
63
+ },
64
+ getPreviousPageParam: firstPage => {
65
+ if (firstPage.pagination.currentPage === 1) {
66
+ return undefined;
67
+ }
68
+ return firstPage.pagination.currentPage - 1;
69
+ },
70
+ getNextPageParam: lastPage => {
71
+ if (lastPage.pagination.currentPage === lastPage.pagination.pageCount) {
72
+ return undefined;
73
+ }
74
+ return lastPage.pagination.currentPage + 1;
75
+ }
76
+ });
77
+ }
78
+ const useGetTeamMemberByIdQuery = id => {
79
+ const client = useApiClient();
80
+ const businessId = useBusinessId();
81
+ return useQuery({
82
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers, id],
83
+ queryFn: async () => await client.businesses.getMemberById(businessId, id)
84
+ });
85
+ };
86
+
87
+ export { useChangeTeamMemberRoleMutation, useDeleteTeamMemberMutation, useGetTeamMemberByIdQuery, useListTeamMembersInfiniteQuery };
88
+ //# sourceMappingURL=TeamMembersAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamMembersAPI.mjs","sources":["../../../../../src/apis/business/team/TeamMembersAPI.tsx"],"sourcesContent":["import { useApiClient, useBusinessId } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tTeamMemberListRequest,\n\tSBApiException,\n\tSBTeamMember,\n\tSBTeamMemberRole,\n\tSBRequestOptions,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\n\nexport const useChangeTeamMemberRoleMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBTeamMember, SBApiException, { id: number }>({\n\t\tmutationFn: async ({ id }) => {\n\t\t\treturn client.businesses.deleteMember(businessId, id);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId],\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.TeamMembers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useDeleteTeamMemberMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBTeamMember, SBApiException, { id: number }>({\n\t\tmutationFn: async ({ id }) => {\n\t\t\treturn client.businesses.deleteMember(businessId, id);\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.TeamMembers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport function useListTeamMembersInfiniteQuery(\n\trequest: TeamMemberListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TeamMemberListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useInfiniteQuery<\n\t\tSBList<SBTeamMember>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBTeamMember>>,\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.TeamMembers,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.listMembers(\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\tgetPreviousPageParam: (firstPage) => {\n\t\t\tif (firstPage.pagination.currentPage === 1) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn firstPage.pagination.currentPage - 1;\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});\n}\n\nexport const useGetTeamMemberByIdQuery = (id: number) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTeamMember, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers, id],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.getMemberById(businessId, id),\n\t});\n};\n"],"names":["useChangeTeamMemberRoleMutation","client","useApiClient","queryClient","useQueryClient","businessId","useBusinessId","useMutation","mutationFn","id","businesses","deleteMember","onSuccess","_","invalidateQueries","queryKey","SBApiKeys","Businesses","TeamMembers","useDeleteTeamMemberMutation","useListTeamMembersInfiniteQuery","request","page","pageSize","options","config","useInfiniteQuery","initialPageParam","queryFn","pageParam","listMembers","getPreviousPageParam","firstPage","pagination","currentPage","undefined","getNextPageParam","lastPage","pageCount","useGetTeamMemberByIdQuery","useQuery","getMemberById"],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
2
+ import { useInfiniteQuery, useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../../SBApiKeys.mjs';
4
+
5
+ /**
6
+ * Hook for listing vendors with infinite pagination
7
+ * @param request - Request parameters for listing vendors
8
+ * @param options - Optional request options including businessId and userId
9
+ * @param config - Optional Axios request configuration
10
+ * @returns Infinite query result for implementing infinite scrolling with vendor data
11
+ */
12
+ function useListBusinessVendorsInfiniteQuery(request = {
13
+ page: 1,
14
+ pageSize: 25
15
+ }, options, config) {
16
+ const client = useApiClient();
17
+ const businessId = useBusinessId();
18
+ return useInfiniteQuery({
19
+ initialPageParam: request.page || 1,
20
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors, request, options],
21
+ queryFn: async ({
22
+ pageParam = 1
23
+ }) => {
24
+ const paginatedRequest = {
25
+ ...request,
26
+ page: pageParam
27
+ };
28
+ return client.businesses.vendors.listAsync(businessId, paginatedRequest, options, config);
29
+ },
30
+ getNextPageParam: lastPage => {
31
+ if (lastPage.pagination && lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
32
+ return lastPage.pagination.currentPage + 1;
33
+ }
34
+ return undefined;
35
+ }
36
+ });
37
+ }
38
+ /**
39
+ * Hook for retrieving a vendor by ID
40
+ * @param id - The ID of the vendor to retrieve
41
+ * @param options - Optional request options including businessId and userId
42
+ * @param config - Optional Axios request configuration
43
+ * @returns Query result containing the vendor data, loading state, and error information
44
+ */
45
+ function useGetBusinessVendorByIdQuery(id, options, config) {
46
+ const client = useApiClient();
47
+ const businessId = useBusinessId();
48
+ return useQuery({
49
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors, id, options],
50
+ queryFn: async () => {
51
+ return client.businesses.vendors.getByIdAsync(businessId, id, options, config);
52
+ }
53
+ });
54
+ }
55
+ /**
56
+ * Hook for deleting a vendor
57
+ * @param mutationOptions - Optional React Query mutation options
58
+ * @returns Mutation function and state for deleting vendors
59
+ */
60
+ function useDeleteBusinessVendorMutation(mutationOptions) {
61
+ const queryClient = useQueryClient();
62
+ const businessId = useBusinessId();
63
+ return useMutation({
64
+ mutationFn: async ({
65
+ vendorId,
66
+ options,
67
+ config
68
+ }) => {
69
+ const client = useApiClient();
70
+ return client.businesses.vendors.deleteAsync(businessId, vendorId, options, config);
71
+ },
72
+ onSuccess: (data, variables, context) => {
73
+ queryClient.invalidateQueries({
74
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors]
75
+ });
76
+ // Call custom onSuccess if provided
77
+ mutationOptions?.onSuccess?.(data, variables, context);
78
+ },
79
+ // Spread the rest of the mutation options
80
+ ...mutationOptions
81
+ // Note: We're not spreading onSuccess to avoid overriding our implementation
82
+ });
83
+ }
84
+ /**
85
+ * Hook for creating a new vendor
86
+ * @param mutationOptions - Optional React Query mutation options
87
+ * @returns Mutation function and state for creating vendors
88
+ */
89
+ function useCreateBusinessVendorMutation(mutationOptions) {
90
+ const queryClient = useQueryClient();
91
+ const businessId = useBusinessId();
92
+ return useMutation({
93
+ mutationFn: async ({
94
+ request,
95
+ options,
96
+ config
97
+ }) => {
98
+ const client = useApiClient();
99
+ return client.businesses.vendors.createAsync(businessId, request, options, config);
100
+ },
101
+ onSuccess: (data, variables, context) => {
102
+ queryClient.invalidateQueries({
103
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors]
104
+ });
105
+ // Call custom onSuccess if provided
106
+ mutationOptions?.onSuccess?.(data, variables, context);
107
+ },
108
+ // Spread the rest of the mutation options
109
+ ...mutationOptions
110
+ // Note: We're not spreading onSuccess to avoid overriding our implementation
111
+ });
112
+ }
113
+ /**
114
+ * Hook for updating a vendor
115
+ * @param mutationOptions - Optional React Query mutation options
116
+ * @returns Mutation function and state for updating vendors
117
+ */
118
+ function useUpdateBusinessVendorMutation(mutationOptions) {
119
+ const queryClient = useQueryClient();
120
+ const businessId = useBusinessId();
121
+ return useMutation({
122
+ mutationFn: async ({
123
+ vendorId,
124
+ request,
125
+ options,
126
+ config
127
+ }) => {
128
+ const client = useApiClient();
129
+ return client.businesses.vendors.updateAsync(businessId, vendorId, request, options, config);
130
+ },
131
+ onSuccess: (data, variables, context) => {
132
+ queryClient.invalidateQueries({
133
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors]
134
+ });
135
+ queryClient.invalidateQueries({
136
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors, variables.vendorId]
137
+ });
138
+ // Call custom onSuccess if provided
139
+ mutationOptions?.onSuccess?.(data, variables, context);
140
+ },
141
+ // Spread the rest of the mutation options
142
+ ...mutationOptions
143
+ // Note: We're not spreading onSuccess to avoid overriding our implementation
144
+ });
145
+ }
146
+ /**
147
+ * Hook for getting a vendor link token for Deck connection
148
+ * @param mutationOptions - Optional React Query mutation options
149
+ * @returns Mutation function and state for getting a vendor link token
150
+ */
151
+ function useGetBusinessVendorLinkTokenMutation(mutationOptions) {
152
+ const client = useApiClient();
153
+ const businessId = useBusinessId();
154
+ return useMutation({
155
+ mutationFn: async ({
156
+ options,
157
+ config
158
+ }) => {
159
+ return client.businesses.vendors.getLinkToken(businessId, options, config);
160
+ },
161
+ // Spread all mutation options
162
+ ...mutationOptions
163
+ });
164
+ }
165
+ /**
166
+ * Hook for connecting a vendor to Deck
167
+ * @param mutationOptions - Optional React Query mutation options
168
+ * @returns Mutation function and state for connecting vendors
169
+ */
170
+ function useConnectBusinessVendorMutation(mutationOptions) {
171
+ const queryClient = useQueryClient();
172
+ const businessId = useBusinessId();
173
+ return useMutation({
174
+ mutationFn: async ({
175
+ request,
176
+ options,
177
+ config
178
+ }) => {
179
+ const client = useApiClient();
180
+ return client.businesses.vendors.connectAsync(businessId, request, options, config);
181
+ },
182
+ onSuccess: (data, variables, context) => {
183
+ queryClient.invalidateQueries({
184
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors]
185
+ });
186
+ // Call custom onSuccess if provided
187
+ mutationOptions?.onSuccess?.(data, variables, context);
188
+ },
189
+ // Spread the rest of the mutation options
190
+ ...mutationOptions
191
+ // Note: We're not spreading onSuccess to avoid overriding our implementation
192
+ });
193
+ }
194
+ /**
195
+ * Hook for manually refreshing a vendor's data from Deck
196
+ * @param mutationOptions - Optional React Query mutation options
197
+ * @returns Mutation function and state for refreshing vendors
198
+ */
199
+ function useRefreshBusinessVendorMutation(mutationOptions) {
200
+ const queryClient = useQueryClient();
201
+ const businessId = useBusinessId();
202
+ return useMutation({
203
+ mutationFn: async ({
204
+ vendorId,
205
+ options,
206
+ config
207
+ }) => {
208
+ const client = useApiClient();
209
+ return client.businesses.vendors.manualRefresh(businessId, vendorId, options, config);
210
+ },
211
+ onSuccess: (data, variables, context) => {
212
+ queryClient.invalidateQueries({
213
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors]
214
+ });
215
+ queryClient.invalidateQueries({
216
+ queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors, variables.vendorId]
217
+ });
218
+ // Call custom onSuccess if provided
219
+ mutationOptions?.onSuccess?.(data, variables, context);
220
+ },
221
+ // Spread the rest of the mutation options
222
+ ...mutationOptions
223
+ // Note: We're not spreading onSuccess to avoid overriding our implementation
224
+ });
225
+ }
226
+
227
+ export { useConnectBusinessVendorMutation, useCreateBusinessVendorMutation, useDeleteBusinessVendorMutation, useGetBusinessVendorByIdQuery, useGetBusinessVendorLinkTokenMutation, useListBusinessVendorsInfiniteQuery, useRefreshBusinessVendorMutation, useUpdateBusinessVendorMutation };
228
+ //# sourceMappingURL=VendorsAPI.mjs.map