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

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 +594 -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 +0,0 @@
1
- {"version":3,"file":"BankTransactionAPI.mjs","sources":["../../../../../src/apis/banks/bank-transactions/BankTransactionAPI.tsx"],"sourcesContent":["import {\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tQueryKey,\n} from \"@tanstack/react-query\";\nimport {\n\tBankTransactionListRequest,\n\tSBList,\n\tSBBankTransaction,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for listing bank transactions with infinite pagination\n * @param request - Request parameters for listing bank transactions\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Infinite query result for implementing infinite scrolling with bank transaction data\n */\nexport const useListBankTransactionsInfiniteQuery = (\n\trequest: BankTransactionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBBankTransaction>,\n\t\tSBApiException,\n\t\tSBList<SBBankTransaction>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.BankTransactions, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn client.bankTransactions.listAsync(\n\t\t\t\t{\n\t\t\t\t\t...request,\n\t\t\t\t\tpage: pageParam,\n\t\t\t\t},\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 &&\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\n/**\n * Hook for retrieving a bank transaction by ID\n * @param id - The ID of the bank transaction to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the bank transaction data\n */\nexport const useGetBankTransactionByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBBankTransaction, SBApiException>({\n\t\tqueryKey: [SBApiKeys.BankTransactions, id, options],\n\t\tqueryFn: async () =>\n\t\t\tawait client.bankTransactions.getByIdAsync(id, options, config),\n\t});\n};\n"],"names":["useListBankTransactionsInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","BankTransactions","queryFn","pageParam","bankTransactions","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useGetBankTransactionByIdQuery","id","useQuery","getByIdAsync"],"mappings":";;;;AAkBA;;;;;;AAMG;AACUA,MAAAA,oCAAoC,GAAGA,CACnDC,OAAsC,GAAA;AAAEC,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;AAAI,CAAA,EAC/DC,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOC,gBAAgB,CAMrB;AACDC,IAAAA,gBAAgB,EAAET,OAAO,CAACC,IAAI,IAAI,CAAC;IACnCS,QAAQ,EAAE,CAACC,SAAS,CAACC,gBAAgB,EAAEZ,OAAO,EAAEG,OAAO,CAAC;IACxDU,OAAO,EAAE,OAAO;AAAEC,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,OAAOT,MAAM,CAACU,gBAAgB,CAACC,SAAS,CACvC;AACC,QAAA,GAAGhB,OAAO;AACVC,QAAAA,IAAI,EAAEa;AACN,OAAA,EACDX,OAAO,EACPC,MAAM,CACN;KACD;IACDa,gBAAgB,EAAGC,QAAQ,IAAI;AAC9B,MAAA,IACCA,QAAQ,CAACC,UAAU,IACnBD,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;AAEA;;;;;;AAMG;AACI,MAAMC,8BAA8B,GAAGA,CAC7CC,EAAU,EACVrB,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,OAAOkB,QAAQ,CAAoC;IAClDf,QAAQ,EAAE,CAACC,SAAS,CAACC,gBAAgB,EAAEY,EAAE,EAAErB,OAAO,CAAC;AACnDU,IAAAA,OAAO,EAAE,YACR,MAAMR,MAAM,CAACU,gBAAgB,CAACW,YAAY,CAACF,EAAE,EAAErB,OAAO,EAAEC,MAAM;AAC/D,GAAA,CAAC;AACH;;;;"}
@@ -1,165 +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 for listing business with infinite pagination
7
- * @param request - Request parameters for listing business
8
- * @param options - Optional request options
9
- * @param config - Optional Axios request configuration
10
- * @returns Infinite query result for implementing infinite scrolling with business data
11
- */
12
- function useListBusinessInfiniteQuery(request = {
13
- page: 1,
14
- pageSize: 25
15
- }, options, config) {
16
- const client = useApiClient();
17
- useQueryClient();
18
- return useInfiniteQuery({
19
- initialPageParam: request.page || 1,
20
- queryKey: [SBApiKeys.Businesses, request, options],
21
- queryFn: async ({
22
- pageParam = 1
23
- }) => {
24
- return await client.businesses.listAsync({
25
- ...request,
26
- page: pageParam
27
- }, options, config);
28
- },
29
- getNextPageParam: lastPage => {
30
- if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
31
- return lastPage.pagination.currentPage + 1;
32
- }
33
- return undefined;
34
- }
35
- });
36
- }
37
- /**
38
- * Hook for retrieving a business by ID
39
- * @param id - The ID of the business to retrieve
40
- * @param options - Optional request options
41
- * @param config - Optional Axios request configuration
42
- * @returns Query result containing the business data
43
- */
44
- const useGetBusinessByIdQuery = (id, options, config) => {
45
- const client = useApiClient();
46
- useQueryClient();
47
- const currentBusinessId = useBusinessId();
48
- return useQuery({
49
- queryKey: [SBApiKeys.Businesses, id, options],
50
- queryFn: async () => await client.businesses.getByIdAsync(id, options, config),
51
- // If we're requesting the current business, only enable when businessId is set
52
- enabled: id === currentBusinessId ? !!currentBusinessId : true
53
- });
54
- };
55
- /**
56
- * Hook for creating a new business
57
- * @returns Mutation function for creating business
58
- */
59
- const useCreateBusinessMutation = () => {
60
- const client = useApiClient();
61
- const queryClient = useQueryClient();
62
- return useMutation({
63
- mutationFn: async ({
64
- request,
65
- options,
66
- config
67
- }) => {
68
- return await client.businesses.createAsync(request, options, config);
69
- },
70
- onSuccess: () => {
71
- queryClient.invalidateQueries({
72
- queryKey: [SBApiKeys.Businesses]
73
- });
74
- }
75
- });
76
- };
77
- /**
78
- * Hook for updating an existing business
79
- * @returns Mutation function for updating business
80
- */
81
- const useUpdateBusinessMutation = () => {
82
- const client = useApiClient();
83
- const queryClient = useQueryClient();
84
- const currentBusinessId = useBusinessId();
85
- return useMutation({
86
- mutationFn: async ({
87
- businessId,
88
- request,
89
- options,
90
- config
91
- }) => {
92
- return await client.businesses.updateAsync(businessId, request, options, config);
93
- },
94
- onSuccess: (_, {
95
- businessId
96
- }) => {
97
- queryClient.invalidateQueries({
98
- queryKey: [SBApiKeys.Businesses]
99
- });
100
- queryClient.invalidateQueries({
101
- queryKey: [SBApiKeys.Businesses, businessId]
102
- });
103
- // If updating the current business, invalidate any queries that depend on it
104
- if (businessId === currentBusinessId) {
105
- queryClient.invalidateQueries();
106
- }
107
- }
108
- });
109
- };
110
- /**
111
- * Hook for deleting a business
112
- * @returns Mutation function for deleting business
113
- */
114
- const useDeleteBusinessMutation = () => {
115
- const client = useApiClient();
116
- const queryClient = useQueryClient();
117
- const currentBusinessId = useBusinessId();
118
- return useMutation({
119
- mutationFn: async ({
120
- businessId,
121
- options,
122
- config
123
- }) => {
124
- return await client.businesses.deleteAsync(businessId, options, config);
125
- },
126
- onSuccess: (_, {
127
- businessId
128
- }) => {
129
- queryClient.invalidateQueries({
130
- queryKey: [SBApiKeys.Businesses]
131
- });
132
- // If deleting the current business, invalidate all queries
133
- if (businessId === currentBusinessId) {
134
- queryClient.invalidateQueries();
135
- }
136
- }
137
- });
138
- };
139
- /**
140
- * Hook for batch inviting members to a business
141
- */
142
- const useBatchInviteMemberMutation = () => {
143
- const client = useApiClient();
144
- const queryClient = useQueryClient();
145
- return useMutation({
146
- mutationFn: async ({
147
- businessId,
148
- invitations,
149
- options,
150
- config
151
- }) => {
152
- return await client.businesses.batchInviteMemberAsync(businessId, invitations, options, config);
153
- },
154
- onSuccess: (_, {
155
- businessId
156
- }) => {
157
- queryClient.invalidateQueries({
158
- queryKey: [SBApiKeys.Businesses, businessId, "members"]
159
- });
160
- }
161
- });
162
- };
163
-
164
- export { useBatchInviteMemberMutation, useCreateBusinessMutation, useDeleteBusinessMutation, useGetBusinessByIdQuery, useListBusinessInfiniteQuery, useUpdateBusinessMutation };
165
- //# sourceMappingURL=BusinessAPI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BusinessAPI.mjs","sources":["../../../../src/apis/business/BusinessAPI.tsx"],"sourcesContent":["import {\n\tBusinessCreateRequest,\n\tBusinessListRequest,\n\tSBBusiness,\n\tBusinessUpdateRequest,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBList,\n\tBusinessInvitationRequest,\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\n/**\n * Hook for listing business with infinite pagination\n * @param request - Request parameters for listing business\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with business data\n */\nexport function useListBusinessInfiniteQuery(\n\trequest: BusinessListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<BusinessListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBBusiness>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBBusiness>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Businesses, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.listAsync(\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\n/**\n * Hook for retrieving a business by ID\n * @param id - The ID of the business to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the business data\n */\nexport const useGetBusinessByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useQuery<SBBusiness, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Businesses, id, options],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.getByIdAsync(id, options, config),\n\t\t// If we're requesting the current business, only enable when businessId is set\n\t\tenabled: id === currentBusinessId ? !!currentBusinessId : true,\n\t});\n};\n\n/**\n * Hook for creating a new business\n * @returns Mutation function for creating business\n */\nexport const useCreateBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: BusinessCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.businesses.createAsync(\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.Businesses],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for updating an existing business\n * @returns Mutation function for updating business\n */\nexport const useUpdateBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\trequest: BusinessUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<BusinessUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, request, options, config }) => {\n\t\t\treturn await client.businesses.updateAsync(\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: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId],\n\t\t\t});\n\n\t\t\t// If updating the current business, invalidate any queries that depend on it\n\t\t\tif (businessId === currentBusinessId) {\n\t\t\t\tqueryClient.invalidateQueries();\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook for deleting a business\n * @returns Mutation function for deleting business\n */\nexport const useDeleteBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst currentBusinessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBBusiness,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, options, config }) => {\n\t\t\treturn await client.businesses.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses],\n\t\t\t});\n\n\t\t\t// If deleting the current business, invalidate all queries\n\t\t\tif (businessId === currentBusinessId) {\n\t\t\t\tqueryClient.invalidateQueries();\n\t\t\t}\n\t\t},\n\t});\n};\n\n/**\n * Hook for batch inviting members to a business\n */\nexport const useBatchInviteMemberMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: number;\n\t\t\tinvitations: BusinessInvitationRequest[];\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, invitations, options, config }) => {\n\t\t\treturn await client.businesses.batchInviteMemberAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitations,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { businessId }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, \"members\"],\n\t\t\t});\n\t\t},\n\t});\n};\n"],"names":["useListBusinessInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","queryFn","pageParam","businesses","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useGetBusinessByIdQuery","id","currentBusinessId","useBusinessId","useQuery","getByIdAsync","enabled","useCreateBusinessMutation","queryClient","useMutation","mutationFn","createAsync","onSuccess","invalidateQueries","useUpdateBusinessMutation","businessId","updateAsync","_","useDeleteBusinessMutation","deleteAsync","useBatchInviteMemberMutation","invitations","batchInviteMemberAsync"],"mappings":"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"}
@@ -1,155 +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 customers 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 customers
11
- */
12
- function useListCustomersInfiniteQuery(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 customer operations");
21
- }
22
- return useInfiniteQuery({
23
- initialPageParam: request.page || 1,
24
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, request, options],
25
- queryFn: async ({
26
- pageParam = 1
27
- }) => {
28
- return await client.businesses.customers.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 customer by ID
44
- * @param id - The customer ID
45
- * @param options - Optional request options
46
- * @param config - Optional axios request config
47
- * @returns Query result containing the customer data
48
- */
49
- const useGetCustomerByIdQuery = (id, options, config) => {
50
- const client = useApiClient();
51
- useQueryClient();
52
- const businessId = useBusinessId();
53
- if (!businessId) {
54
- throw new Error("businessId is required for customer operations");
55
- }
56
- return useQuery({
57
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, id, options],
58
- queryFn: async () => {
59
- return await client.businesses.customers.getByIdAsync(businessId, id, options, config);
60
- },
61
- enabled: !!businessId
62
- });
63
- };
64
- /**
65
- * Hook to create a new customer
66
- * @returns Mutation function to create a customer
67
- */
68
- const useCreateCustomerMutation = () => {
69
- const client = useApiClient();
70
- const queryClient = useQueryClient();
71
- const businessId = useBusinessId();
72
- return useMutation({
73
- mutationFn: async ({
74
- request,
75
- options,
76
- config
77
- }) => {
78
- if (!businessId) {
79
- throw new Error("businessId is required for customer operations");
80
- }
81
- return await client.businesses.customers.createAsync(businessId, request, options, config);
82
- },
83
- onSuccess: () => {
84
- queryClient.invalidateQueries({
85
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers]
86
- });
87
- }
88
- });
89
- };
90
- /**
91
- * Hook to update a customer
92
- * @returns Mutation function for updating customers
93
- */
94
- const useUpdateCustomerMutation = () => {
95
- const client = useApiClient();
96
- const queryClient = useQueryClient();
97
- const businessId = useBusinessId();
98
- return useMutation({
99
- mutationFn: async ({
100
- id,
101
- request,
102
- options,
103
- config
104
- }) => {
105
- if (!businessId) {
106
- throw new Error("businessId is required for customer operations");
107
- }
108
- return await client.businesses.customers.updateAsync(businessId, id, request, options, config);
109
- },
110
- onSuccess: (_, {
111
- id
112
- }) => {
113
- queryClient.invalidateQueries({
114
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers]
115
- });
116
- queryClient.invalidateQueries({
117
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, id]
118
- });
119
- }
120
- });
121
- };
122
- /**
123
- * Hook to delete a customer
124
- * @returns Mutation function for deleting customers
125
- */
126
- const useDeleteCustomerMutation = () => {
127
- const client = useApiClient();
128
- const queryClient = useQueryClient();
129
- const businessId = useBusinessId();
130
- return useMutation({
131
- mutationFn: async ({
132
- id,
133
- options,
134
- config
135
- }) => {
136
- if (!businessId) {
137
- throw new Error("businessId is required for customer operations");
138
- }
139
- await client.businesses.customers.deleteAsync(businessId, id, options, config);
140
- },
141
- onSuccess: (_, {
142
- id
143
- }) => {
144
- queryClient.invalidateQueries({
145
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers]
146
- });
147
- queryClient.invalidateQueries({
148
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, id]
149
- });
150
- }
151
- });
152
- };
153
-
154
- export { useCreateCustomerMutation, useDeleteCustomerMutation, useGetCustomerByIdQuery, useListCustomersInfiniteQuery, useUpdateCustomerMutation };
155
- //# sourceMappingURL=CustomerAPI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomerAPI.mjs","sources":["../../../../../src/apis/business/customers/CustomerAPI.ts"],"sourcesContent":["import {\n\tCustomerListRequest,\n\tSBCustomer,\n\tCustomerCreateRequest,\n\tCustomerUpdateRequest,\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 { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list customers 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 customers\n */\nexport function useListCustomersInfiniteQuery(\n\trequest: CustomerListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<CustomerListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for customer operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBCustomer>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBCustomer>>,\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.Customers,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.customers.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 customer by ID\n * @param id - The customer ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the customer data\n */\nexport const useGetCustomerByIdQuery = (\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 customer operations\");\n\t}\n\n\treturn useQuery<SBCustomer, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.customers.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\n/**\n * Hook to create a new customer\n * @returns Mutation function to create a customer\n */\nexport const useCreateCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBCustomer,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: CustomerCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<CustomerCreateRequest>;\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 customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customers.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.Customers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook to update a customer\n * @returns Mutation function for updating customers\n */\nexport const useUpdateCustomerMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBCustomer,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: CustomerUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<CustomerUpdateRequest>;\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 customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn await client.businesses.customers.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.Customers,\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.Customers,\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 delete a customer\n * @returns Mutation function for deleting customers\n */\nexport const useDeleteCustomerMutation = () => {\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 customer operations\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tawait client.businesses.customers.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.Customers,\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.Customers,\n\t\t\t\t\tid,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n"],"names":["useListCustomersInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","Customers","queryFn","pageParam","businesses","customers","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetCustomerByIdQuery","id","useQuery","getByIdAsync","useCreateCustomerMutation","queryClient","useMutation","mutationFn","createAsync","onSuccess","invalidateQueries","useUpdateCustomerMutation","updateAsync","_","useDeleteCustomerMutation","deleteAsync"],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
2
- import { useQueryClient, useInfiniteQuery, useQuery } from '@tanstack/react-query';
3
- import { SBApiKeys } from '../../SBApiKeys.mjs';
4
-
5
- /**
6
- * Hook to list balance transactions for a customer with infinite scrolling
7
- * @param customerId - The customer ID
8
- * @param request - The list request parameters
9
- * @param options - Optional request options
10
- * @param config - Optional axios request config
11
- * @returns Query result containing the customer balance transactions
12
- */
13
- const useListCustomerBalanceTransactionsInfiniteQuery = (customerId, 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 customer balance transaction operations");
22
- }
23
- return useInfiniteQuery({
24
- initialPageParam: request.page || 1,
25
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, customerId, SBApiKeys.CustomerBalanceTransactions, request, options],
26
- queryFn: async ({
27
- pageParam = 1
28
- }) => {
29
- return await client.businesses.customerBalanceTransactions.listAsync(businessId, customerId, {
30
- ...request,
31
- page: pageParam
32
- }, options, config);
33
- },
34
- getNextPageParam: lastPage => {
35
- if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
36
- return lastPage.pagination.currentPage + 1;
37
- }
38
- return undefined;
39
- },
40
- enabled: !!businessId && !!customerId
41
- });
42
- };
43
- /**
44
- * Hook to get a specific balance transaction for a customer
45
- * @param customerId - The customer ID
46
- * @param transactionId - The balance transaction ID
47
- * @param options - Optional request options
48
- * @param config - Optional axios request config
49
- * @returns Query result containing the customer balance transaction
50
- */
51
- const useGetCustomerBalanceTransactionByIdQuery = (customerId, transactionId, options, config) => {
52
- const client = useApiClient();
53
- useQueryClient();
54
- const businessId = useBusinessId();
55
- if (!businessId) {
56
- throw new Error("businessId is required for customer balance transaction operations");
57
- }
58
- return useQuery({
59
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, customerId, SBApiKeys.CustomerBalanceTransactions, transactionId, options],
60
- queryFn: async () => {
61
- return await client.businesses.customerBalanceTransactions.getByIdAsync(businessId, customerId, transactionId, options, config);
62
- },
63
- enabled: !!businessId && !!customerId && !!transactionId
64
- });
65
- };
66
-
67
- export { useGetCustomerBalanceTransactionByIdQuery, useListCustomerBalanceTransactionsInfiniteQuery };
68
- //# sourceMappingURL=CustomerBalanceTransactionsAPI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomerBalanceTransactionsAPI.mjs","sources":["../../../../../src/apis/business/customers/CustomerBalanceTransactionsAPI.ts"],"sourcesContent":["import {\n\tSBList,\n\tSBRequestOptions,\n\tCustomerBalanceTransactionListRequest,\n\tSBCustomerBalanceTransaction,\n\tSBApiException,\n} from \"@smartbills/sdk\";\n\nimport { useApiClient } from \"@/context\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseQuery,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook to list balance transactions for a customer with infinite scrolling\n * @param customerId - The customer ID\n * @param request - The list request parameters\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the customer balance transactions\n */\nexport const useListCustomerBalanceTransactionsInfiniteQuery = (\n\tcustomerId: number,\n\trequest: CustomerBalanceTransactionListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<CustomerBalanceTransactionListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for customer balance transaction operations\",\n\t\t);\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBCustomerBalanceTransaction>,\n\t\tSBApiException,\n\t\tSBList<SBCustomerBalanceTransaction>,\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.Customers,\n\t\t\tcustomerId,\n\t\t\tSBApiKeys.CustomerBalanceTransactions,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.customerBalanceTransactions.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\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 && !!customerId,\n\t});\n};\n\n/**\n * Hook to get a specific balance transaction for a customer\n * @param customerId - The customer ID\n * @param transactionId - The balance transaction ID\n * @param options - Optional request options\n * @param config - Optional axios request config\n * @returns Query result containing the customer balance transaction\n */\nexport const useGetCustomerBalanceTransactionByIdQuery = (\n\tcustomerId: number,\n\ttransactionId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\n\t\t\t\"businessId is required for customer balance transaction operations\",\n\t\t);\n\t}\n\n\treturn useQuery<SBCustomerBalanceTransaction, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Customers,\n\t\t\tcustomerId,\n\t\t\tSBApiKeys.CustomerBalanceTransactions,\n\t\t\ttransactionId,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.customerBalanceTransactions.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tcustomerId,\n\t\t\t\ttransactionId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId && !!customerId && !!transactionId,\n\t});\n};\n"],"names":["useListCustomerBalanceTransactionsInfiniteQuery","customerId","request","page","pageSize","options","config","client","useApiClient","useQueryClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","Customers","CustomerBalanceTransactions","queryFn","pageParam","businesses","customerBalanceTransactions","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetCustomerBalanceTransactionByIdQuery","transactionId","useQuery","getByIdAsync"],"mappings":";;;;AAmBA;;;;;;;AAOG;MACUA,+CAA+C,GAAGA,CAC9DC,UAAkB,EAClBC,OAAiD,GAAA;AAAEC,EAAAA,IAAI,EAAE,CAAC;AAAEC,EAAAA,QAAQ,EAAE;AAAE,CAAE,EAC1EC,OAA0B,EAC1BC,MAAkE,KAC/D;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,MAAMC,UAAU,GAAGC,aAAa,EAAE;EAElC,IAAI,CAACD,UAAU,EAAE;AAChB,IAAA,MAAM,IAAIE,KAAK,CACd,oEAAoE,CACpE;AACF;AAEA,EAAA,OAAOC,gBAAgB,CAMrB;AACDC,IAAAA,gBAAgB,EAAEZ,OAAO,CAACC,IAAI,IAAI,CAAC;IACnCY,QAAQ,EAAE,CACTC,SAAS,CAACC,UAAU,EACpBP,UAAU,EACVM,SAAS,CAACE,SAAS,EACnBjB,UAAU,EACVe,SAAS,CAACG,2BAA2B,EACrCjB,OAAO,EACPG,OAAO,CACP;IACDe,OAAO,EAAE,OAAO;AAAEC,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,OAAO,MAAMd,MAAM,CAACe,UAAU,CAACC,2BAA2B,CAACC,SAAS,CACnEd,UAAU,EACVT,UAAU,EACV;AAAE,QAAA,GAAGC,OAAO;AAAEC,QAAAA,IAAI,EAAEkB;AAAW,OAAA,EAC/BhB,OAAO,EACPC,MAAM,CACN;KACD;IACDmB,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;KAChB;AACDC,IAAAA,OAAO,EAAE,CAAC,CAACrB,UAAU,IAAI,CAAC,CAACT;AAC3B,GAAA,CAAC;AACH;AAEA;;;;;;;AAOG;AACI,MAAM+B,yCAAyC,GAAGA,CACxD/B,UAAkB,EAClBgC,aAAqB,EACrB5B,OAA0B,EAC1BC,MAA2B,KACxB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAoBC,cAAc;AAClC,EAAA,MAAMC,UAAU,GAAGC,aAAa,EAAE;EAElC,IAAI,CAACD,UAAU,EAAE;AAChB,IAAA,MAAM,IAAIE,KAAK,CACd,oEAAoE,CACpE;AACF;AAEA,EAAA,OAAOsB,QAAQ,CAA+C;IAC7DnB,QAAQ,EAAE,CACTC,SAAS,CAACC,UAAU,EACpBP,UAAU,EACVM,SAAS,CAACE,SAAS,EACnBjB,UAAU,EACVe,SAAS,CAACG,2BAA2B,EACrCc,aAAa,EACb5B,OAAO,CACP;IACDe,OAAO,EAAE,YAAW;AACnB,MAAA,OAAO,MAAMb,MAAM,CAACe,UAAU,CAACC,2BAA2B,CAACY,YAAY,CACtEzB,UAAU,EACVT,UAAU,EACVgC,aAAa,EACb5B,OAAO,EACPC,MAAM,CACN;KACD;IACDyB,OAAO,EAAE,CAAC,CAACrB,UAAU,IAAI,CAAC,CAACT,UAAU,IAAI,CAAC,CAACgC;AAC3C,GAAA,CAAC;AACH;;;;"}
@@ -1,170 +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 a customer's payment methods with infinite query
7
- * @param customerId - The customer ID
8
- * @param request - Request parameters for listing payment methods
9
- * @param options - Optional request options
10
- * @param config - Optional axios request config
11
- * @returns Infinite query result containing the customer's payment methods
12
- */
13
- const useListCustomerPaymentMethodsInfiniteQuery = (customerId, 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 customer payment method operations");
22
- }
23
- return useInfiniteQuery({
24
- initialPageParam: request.page || 1,
25
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, customerId, SBApiKeys.CustomerPaymentMethods, request],
26
- queryFn: async ({
27
- pageParam = 1
28
- }) => {
29
- return await client.businesses.customerPaymentMethods.listAsync(businessId, customerId, {
30
- ...request,
31
- page: pageParam
32
- }, options, config);
33
- },
34
- getNextPageParam: lastPage => {
35
- if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
36
- return lastPage.pagination.currentPage + 1;
37
- }
38
- return undefined;
39
- },
40
- enabled: !!businessId && !!customerId
41
- });
42
- };
43
- /**
44
- * Hook to get a specific payment method for a customer
45
- * @param customerId - The customer ID
46
- * @param id - The payment method ID
47
- * @param options - Optional request options
48
- * @param config - Optional axios request config
49
- * @returns Query result containing the payment method
50
- */
51
- const useGetCustomerPaymentMethodByIdQuery = (customerId, id, options, config) => {
52
- const client = useApiClient();
53
- useQueryClient();
54
- const businessId = useBusinessId();
55
- if (!businessId) {
56
- throw new Error("businessId is required for customer payment method operations");
57
- }
58
- return useQuery({
59
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, customerId, SBApiKeys.CustomerPaymentMethods, id, options],
60
- queryFn: async () => {
61
- return await client.businesses.customerPaymentMethods.getByIdAsync(businessId, customerId, id, options, config);
62
- },
63
- enabled: !!businessId && !!customerId
64
- });
65
- };
66
- /**
67
- * Hook to create a customer payment method
68
- * @returns Mutation function and state for creating payment methods
69
- */
70
- const useCreateCustomerPaymentMethodMutation = () => {
71
- const client = useApiClient();
72
- const queryClient = useQueryClient();
73
- const businessId = useBusinessId();
74
- return useMutation({
75
- mutationFn: async ({
76
- customerId,
77
- data,
78
- options,
79
- config
80
- }) => {
81
- if (!businessId) {
82
- throw new Error("businessId is required for customer payment method operations");
83
- }
84
- return await client.businesses.customerPaymentMethods.createAsync(businessId, customerId, data, options, config);
85
- },
86
- onSuccess: (_, {
87
- customerId
88
- }) => {
89
- if (businessId) {
90
- queryClient.invalidateQueries({
91
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, customerId, SBApiKeys.CustomerPaymentMethods]
92
- });
93
- }
94
- }
95
- });
96
- };
97
- /**
98
- * Hook to update a customer payment method
99
- * @returns Mutation function and state for updating payment methods
100
- */
101
- const useUpdateCustomerPaymentMethodMutation = () => {
102
- const client = useApiClient();
103
- const queryClient = useQueryClient();
104
- const businessId = useBusinessId();
105
- return useMutation({
106
- mutationFn: async ({
107
- customerId,
108
- id,
109
- data,
110
- options,
111
- config
112
- }) => {
113
- if (!businessId) {
114
- throw new Error("businessId is required for customer payment method operations");
115
- }
116
- return await client.businesses.customerPaymentMethods.updateAsync(businessId, customerId, id, data, options, config);
117
- },
118
- onSuccess: (_, {
119
- customerId,
120
- id
121
- }) => {
122
- if (businessId) {
123
- queryClient.invalidateQueries({
124
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, customerId, SBApiKeys.CustomerPaymentMethods]
125
- });
126
- queryClient.invalidateQueries({
127
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, customerId, SBApiKeys.CustomerPaymentMethods, id]
128
- });
129
- }
130
- }
131
- });
132
- };
133
- /**
134
- * Hook to delete a customer payment method
135
- * @returns Mutation function and state for deleting payment methods
136
- */
137
- const useDeleteCustomerPaymentMethodMutation = () => {
138
- const client = useApiClient();
139
- const queryClient = useQueryClient();
140
- const businessId = useBusinessId();
141
- return useMutation({
142
- mutationFn: async ({
143
- customerId,
144
- id,
145
- options,
146
- config
147
- }) => {
148
- if (!businessId) {
149
- throw new Error("businessId is required for customer payment method operations");
150
- }
151
- return await client.businesses.customerPaymentMethods.deleteAsync(businessId, customerId, id, options, config);
152
- },
153
- onSuccess: (_, {
154
- customerId,
155
- id
156
- }) => {
157
- if (businessId) {
158
- queryClient.invalidateQueries({
159
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, customerId, SBApiKeys.CustomerPaymentMethods]
160
- });
161
- queryClient.invalidateQueries({
162
- queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Customers, customerId, SBApiKeys.CustomerPaymentMethods, id]
163
- });
164
- }
165
- }
166
- });
167
- };
168
-
169
- export { useCreateCustomerPaymentMethodMutation, useDeleteCustomerPaymentMethodMutation, useGetCustomerPaymentMethodByIdQuery, useListCustomerPaymentMethodsInfiniteQuery, useUpdateCustomerPaymentMethodMutation };
170
- //# sourceMappingURL=CustomerPaymentMethodsAPI.mjs.map