@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 @@
1
+ {"version":3,"file":"VendorsAPI.mjs","sources":["../../../../../src/apis/business/vendors/VendorsAPI.ts"],"sourcesContent":["import {\n\tSBList,\n\tSBRequestOptions,\n\tSBApiException,\n\tSBVendor,\n\tVendorListRequest,\n\tVendorCreateRequest,\n\tVendorUpdateRequest,\n\tVendorConnectRequest,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { InfiniteData, useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tUseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { useBusinessId } from \"@/context\";\n\n/**\n * Hook for listing vendors with infinite pagination\n * @param request - Request parameters for listing vendors\n * @param options - Optional request options including businessId and userId\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with vendor data\n */\nexport function useListBusinessVendorsInfiniteQuery(\n\trequest: ListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useInfiniteQuery<\n\t\tSBList<SBVendor>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBVendor>>,\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.Vendors,\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 client.businesses.vendors.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tpaginatedRequest as VendorListRequest,\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 vendor by ID\n * @param id - The ID of the vendor to retrieve\n * @param options - Optional request options including businessId and userId\n * @param config - Optional Axios request configuration\n * @returns Query result containing the vendor data, loading state, and error information\n */\nexport function useGetBusinessVendorByIdQuery(\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Vendors,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn client.businesses.vendors.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook for deleting a vendor\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for deleting vendors\n */\nexport function useDeleteBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tvendorId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for creating a new vendor\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for creating vendors\n */\nexport function useCreateBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\trequest: VendorCreateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\trequest: VendorCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.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: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for updating a vendor\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for updating vendors\n */\nexport function useUpdateBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\trequest: VendorUpdateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\trequest: VendorUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tvendorId,\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: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\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.Vendors,\n\t\t\t\t\tvariables.vendorId,\n\t\t\t\t],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for getting a vendor link token for Deck connection\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for getting a vendor link token\n */\nexport function useGetBusinessVendorLinkTokenMutation(\n\tmutationOptions?: UseMutationOptions<\n\t\tany, // Replace with the actual return type\n\t\tSBApiException,\n\t\t{\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\treturn client.businesses.vendors.getLinkToken(\n\t\t\t\tbusinessId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\t// Spread all mutation options\n\t\t...mutationOptions,\n\t});\n}\n\n/**\n * Hook for connecting a vendor to Deck\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for connecting vendors\n */\nexport function useConnectBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBVendor,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\trequest: VendorConnectRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\trequest: VendorConnectRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.connectAsync(\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: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n\n/**\n * Hook for manually refreshing a vendor's data from Deck\n * @param mutationOptions - Optional React Query mutation options\n * @returns Mutation function and state for refreshing vendors\n */\nexport function useRefreshBusinessVendorMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tvoid,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tvendorId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation({\n\t\tmutationFn: async ({\n\t\t\tvendorId,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: {\n\t\t\tvendorId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}) => {\n\t\t\tconst client = useApiClient();\n\t\t\treturn client.businesses.vendors.manualRefresh(\n\t\t\t\tbusinessId,\n\t\t\t\tvendorId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors],\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.Vendors,\n\t\t\t\t\tvariables.vendorId,\n\t\t\t\t],\n\t\t\t});\n\n\t\t\t// Call custom onSuccess if provided\n\t\t\tmutationOptions?.onSuccess?.(data, variables, context);\n\t\t},\n\t\t// Spread the rest of the mutation options\n\t\t...mutationOptions,\n\t\t// Note: We're not spreading onSuccess to avoid overriding our implementation\n\t});\n}\n"],"names":["useListBusinessVendorsInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","businessId","useBusinessId","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","Vendors","queryFn","pageParam","paginatedRequest","businesses","vendors","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useGetBusinessVendorByIdQuery","id","useQuery","getByIdAsync","useDeleteBusinessVendorMutation","mutationOptions","queryClient","useQueryClient","useMutation","mutationFn","vendorId","deleteAsync","onSuccess","data","variables","context","invalidateQueries","useCreateBusinessVendorMutation","createAsync","useUpdateBusinessVendorMutation","updateAsync","useGetBusinessVendorLinkTokenMutation","getLinkToken","useConnectBusinessVendorMutation","connectAsync","useRefreshBusinessVendorMutation","manualRefresh"],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { useApiClient } from '../../context/ApiContext.mjs';
2
+ import { useQueryClient, useInfiniteQuery, useQuery, useMutation } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../SBApiKeys.mjs';
4
+
5
+ function useListDocumentsInfiniteQuery(request = {
6
+ page: 1,
7
+ pageSize: 25
8
+ }, options, config) {
9
+ const client = useApiClient();
10
+ useQueryClient();
11
+ return useInfiniteQuery({
12
+ initialPageParam: request.page || 1,
13
+ queryKey: [SBApiKeys.Documents, request, options],
14
+ queryFn: async ({
15
+ pageParam = 1
16
+ }) => {
17
+ const paginatedRequest = {
18
+ ...request,
19
+ page: pageParam
20
+ };
21
+ return await client.documents.listAsync(paginatedRequest, options, config);
22
+ },
23
+ getNextPageParam: lastPage => {
24
+ if (lastPage.pagination && lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
25
+ return lastPage.pagination.currentPage + 1;
26
+ }
27
+ return undefined;
28
+ }
29
+ });
30
+ }
31
+ const useGetDocumentByIdQuery = (id, options, config) => {
32
+ const client = useApiClient();
33
+ useQueryClient();
34
+ return useQuery({
35
+ queryKey: [SBApiKeys.Documents, id, options],
36
+ queryFn: async () => {
37
+ return await client.documents.getByIdAsync(id, options, config);
38
+ }
39
+ });
40
+ };
41
+ const useUploadDocumentMutation = () => {
42
+ const client = useApiClient();
43
+ const queryClient = useQueryClient();
44
+ return useMutation({
45
+ mutationFn: async ({
46
+ request,
47
+ options,
48
+ config
49
+ }) => {
50
+ return await client.documents.upload(request, options);
51
+ },
52
+ onSuccess: () => {
53
+ queryClient.invalidateQueries({
54
+ queryKey: [SBApiKeys.Documents]
55
+ });
56
+ }
57
+ });
58
+ };
59
+ const useDeleteDocumentMutation = () => {
60
+ const client = useApiClient();
61
+ const queryClient = useQueryClient();
62
+ return useMutation({
63
+ mutationFn: async ({
64
+ id,
65
+ options,
66
+ config
67
+ }) => {
68
+ await client.documents.deleteAsync(id, options, config);
69
+ },
70
+ onSuccess: (_, variables) => {
71
+ queryClient.invalidateQueries({
72
+ queryKey: [SBApiKeys.Documents]
73
+ });
74
+ queryClient.invalidateQueries({
75
+ queryKey: [SBApiKeys.Documents, variables.id]
76
+ });
77
+ }
78
+ });
79
+ };
80
+
81
+ export { useDeleteDocumentMutation, useGetDocumentByIdQuery, useListDocumentsInfiniteQuery, useUploadDocumentMutation };
82
+ //# sourceMappingURL=DocumentsAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentsAPI.mjs","sources":["../../../../src/apis/documents/DocumentsAPI.tsx"],"sourcesContent":["import {\n\tDocumentListRequest,\n\tSBList,\n\tSBDocument,\n\tDocumentUploadRequest,\n\tSBRequestOptions,\n\tSBApiException,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport function useListDocumentsInfiniteQuery(\n\trequest: DocumentListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<DocumentListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBDocument>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBDocument>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Documents, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.documents.listAsync(\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 &&\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\nexport const useGetDocumentByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBDocument, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Documents, id, options],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.documents.getByIdAsync(id, options, config);\n\t\t},\n\t});\n};\n\nexport const useUploadDocumentMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBDocument,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: DocumentUploadRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<DocumentUploadRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\treturn await client.documents.upload(request, options);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [SBApiKeys.Documents] });\n\t\t},\n\t});\n};\n\nexport const useDeleteDocumentMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\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\tawait client.documents.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, variables) => {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [SBApiKeys.Documents] });\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Documents, variables.id],\n\t\t\t});\n\t\t},\n\t});\n};\n"],"names":["useListDocumentsInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Documents","queryFn","pageParam","paginatedRequest","documents","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useGetDocumentByIdQuery","id","useQuery","getByIdAsync","useUploadDocumentMutation","queryClient","useMutation","mutationFn","upload","onSuccess","invalidateQueries","useDeleteDocumentMutation","deleteAsync","_","variables"],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { useApiClient } from '../../context/ApiContext.mjs';
2
+ import { useMutation, useInfiniteQuery } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../SBApiKeys.mjs';
4
+
5
+ function useUploadMutation() {
6
+ const client = useApiClient();
7
+ return useMutation({
8
+ mutationKey: [SBApiKeys.Expenses, "upload"],
9
+ mutationFn: async ({
10
+ data,
11
+ options,
12
+ config
13
+ }) => {
14
+ return await client.expenses.uploadAsync(data, options, config);
15
+ }
16
+ });
17
+ }
18
+ function useValidateExpenseFilesMutation() {
19
+ const client = useApiClient();
20
+ return useMutation({
21
+ mutationKey: [SBApiKeys.Expenses, "validate"],
22
+ mutationFn: async ({
23
+ data,
24
+ options,
25
+ config
26
+ }) => {
27
+ return await client.expenses.validateAsync(data, options, config);
28
+ }
29
+ });
30
+ }
31
+ function useListJobInfiniteQuery(page = 1, pageSize = 150) {
32
+ const client = useApiClient();
33
+ return useInfiniteQuery({
34
+ queryKey: [SBApiKeys.Expenses, "jobs", {
35
+ page,
36
+ pageSize
37
+ }],
38
+ queryFn: async ({
39
+ pageParam = 1
40
+ }) => {
41
+ const request = {
42
+ page: pageParam,
43
+ pageSize
44
+ };
45
+ return await client.expenses.getProcessingJobsAsync(request);
46
+ },
47
+ getNextPageParam: lastPage => {
48
+ if (lastPage?.pagination?.currentPage === lastPage?.pagination?.pageCount) {
49
+ return undefined;
50
+ }
51
+ return lastPage?.pagination?.currentPage + 1;
52
+ },
53
+ initialPageParam: 1
54
+ });
55
+ }
56
+
57
+ export { useListJobInfiniteQuery, useUploadMutation, useValidateExpenseFilesMutation };
58
+ //# sourceMappingURL=ExpensesAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpensesAPI.mjs","sources":["../../../../src/apis/expenses/ExpensesAPI.tsx"],"sourcesContent":["import {\n\tExpenseUploadRequest,\n\tSBApiException,\n\tSBRequestOptions,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tuseMutation,\n\tuseInfiniteQuery,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport function useUploadMutation() {\n\tconst client = useApiClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: ExpenseUploadRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationKey: [SBApiKeys.Expenses, \"upload\"],\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.expenses.uploadAsync(data, options, config);\n\t\t},\n\t});\n}\n\nexport function useValidateExpenseFilesMutation() {\n\tconst client = useApiClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: ExpenseUploadRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationKey: [SBApiKeys.Expenses, \"validate\"],\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.expenses.validateAsync(data, options, config);\n\t\t},\n\t});\n}\n\nexport function useListJobInfiniteQuery(\n\tpage: number = 1,\n\tpageSize: number = 150,\n) {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery({\n\t\tqueryKey: [SBApiKeys.Expenses, \"jobs\", { page, pageSize }],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst request: ListRequest = {\n\t\t\t\tpage: pageParam,\n\t\t\t\tpageSize,\n\t\t\t};\n\t\t\treturn await client.expenses.getProcessingJobsAsync(request);\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\tinitialPageParam: 1,\n\t});\n}\n"],"names":["useUploadMutation","client","useApiClient","useMutation","mutationKey","SBApiKeys","Expenses","mutationFn","data","options","config","expenses","uploadAsync","useValidateExpenseFilesMutation","validateAsync","useListJobInfiniteQuery","page","pageSize","useInfiniteQuery","queryKey","queryFn","pageParam","request","getProcessingJobsAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","initialPageParam"],"mappings":";;;;SAegBA,iBAAiBA,GAAA;AAChC,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,OAAOC,WAAW,CAQhB;AACDC,IAAAA,WAAW,EAAE,CAACC,SAAS,CAACC,QAAQ,EAAE,QAAQ,CAAC;IAC3CC,UAAU,EAAE,OAAO;MAAEC,IAAI;MAAEC,OAAO;AAAEC,MAAAA;AAAQ,KAAA,KAAI;AAC/C,MAAA,OAAO,MAAMT,MAAM,CAACU,QAAQ,CAACC,WAAW,CAACJ,IAAI,EAAEC,OAAO,EAAEC,MAAM,CAAC;AAChE;AACA,GAAA,CAAC;AACH;SAEgBG,+BAA+BA,GAAA;AAC9C,EAAA,MAAMZ,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,OAAOC,WAAW,CAQhB;AACDC,IAAAA,WAAW,EAAE,CAACC,SAAS,CAACC,QAAQ,EAAE,UAAU,CAAC;IAC7CC,UAAU,EAAE,OAAO;MAAEC,IAAI;MAAEC,OAAO;AAAEC,MAAAA;AAAQ,KAAA,KAAI;AAC/C,MAAA,OAAO,MAAMT,MAAM,CAACU,QAAQ,CAACG,aAAa,CAACN,IAAI,EAAEC,OAAO,EAAEC,MAAM,CAAC;AAClE;AACA,GAAA,CAAC;AACH;SAEgBK,uBAAuBA,CACtCC,OAAe,CAAC,EAChBC,WAAmB,GAAG,EAAA;AAEtB,EAAA,MAAMhB,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,OAAOgB,gBAAgB,CAAC;AACvBC,IAAAA,QAAQ,EAAE,CAACd,SAAS,CAACC,QAAQ,EAAE,MAAM,EAAE;MAAEU,IAAI;AAAEC,MAAAA;KAAU,CAAC;IAC1DG,OAAO,EAAE,OAAO;AAAEC,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,MAAMC,OAAO,GAAgB;AAC5BN,QAAAA,IAAI,EAAEK,SAAS;AACfJ,QAAAA;OACA;MACD,OAAO,MAAMhB,MAAM,CAACU,QAAQ,CAACY,sBAAsB,CAACD,OAAO,CAAC;KAC5D;IACDE,gBAAgB,EAAGC,QAAQ,IAAI;MAC9B,IACCA,QAAQ,EAAEC,UAAU,EAAEC,WAAW,KACjCF,QAAQ,EAAEC,UAAU,EAAEE,SAAS,EAC9B;AACD,QAAA,OAAOC,SAAS;AACjB;AACA,MAAA,OAAOJ,QAAQ,EAAEC,UAAU,EAAEC,WAAW,GAAG,CAAC;KAC5C;AACDG,IAAAA,gBAAgB,EAAE;AAClB,GAAA,CAAC;AACH;;;;"}
@@ -0,0 +1,144 @@
1
+ import { useApiClient } 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 friends with infinite pagination
7
+ * @param request - Request parameters for listing friends
8
+ * @param options - Optional request options
9
+ * @param config - Optional Axios request configuration
10
+ * @returns Infinite query result for implementing infinite scrolling with friends data
11
+ */
12
+ const useListFriendsInfiniteQuery = (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.Friends, request, options],
21
+ queryFn: async ({
22
+ pageParam = 1
23
+ }) => {
24
+ const paginatedRequest = {
25
+ ...request,
26
+ page: pageParam
27
+ };
28
+ return await client.friends.listAsync(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 listing recommended friends with infinite pagination
40
+ * @param request - Request parameters for listing recommended friends
41
+ * @param options - Optional request options
42
+ * @param config - Optional Axios request configuration
43
+ * @returns Infinite query result for implementing infinite scrolling with recommended friends data
44
+ */
45
+ const useListRecommendedFriendsInfiniteQuery = (request = {
46
+ page: 1,
47
+ pageSize: 25
48
+ }, options, config) => {
49
+ const client = useApiClient();
50
+ useQueryClient();
51
+ return useInfiniteQuery({
52
+ initialPageParam: request.page || 1,
53
+ queryKey: [SBApiKeys.Friends, "recommended", request, options],
54
+ queryFn: async ({
55
+ pageParam = 1
56
+ }) => {
57
+ const paginatedRequest = {
58
+ ...request,
59
+ page: pageParam
60
+ };
61
+ return await client.friends.listRecommanded(paginatedRequest, options, config);
62
+ },
63
+ getNextPageParam: lastPage => {
64
+ if (lastPage.pagination && lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
65
+ return lastPage.pagination.currentPage + 1;
66
+ }
67
+ return undefined;
68
+ }
69
+ });
70
+ };
71
+ /**
72
+ * Hook for retrieving a friend by ID
73
+ * @param id - The ID of the friend to retrieve
74
+ * @param options - Optional request options
75
+ * @param config - Optional Axios request configuration
76
+ * @returns Query result containing the friend data
77
+ */
78
+ const useGetFriendByIdQuery = (id, options, config) => {
79
+ const client = useApiClient();
80
+ useQueryClient();
81
+ return useQuery({
82
+ queryKey: [SBApiKeys.Friends, id],
83
+ queryFn: async () => {
84
+ return await client.friends.getByIdAsync(id, options, config);
85
+ }
86
+ });
87
+ };
88
+ /**
89
+ * Hook for deleting a friend
90
+ * @returns Mutation function for deleting friends
91
+ */
92
+ const useDeleteFriendMutation = () => {
93
+ const client = useApiClient();
94
+ const queryClient = useQueryClient();
95
+ return useMutation({
96
+ mutationFn: async ({
97
+ id,
98
+ options,
99
+ config
100
+ }) => {
101
+ return await client.friends.deleteAsync(id, options, config);
102
+ },
103
+ onSuccess: (_, variables) => {
104
+ queryClient.invalidateQueries({
105
+ queryKey: [SBApiKeys.Friends, variables.id]
106
+ });
107
+ queryClient.invalidateQueries({
108
+ queryKey: [SBApiKeys.Friends, "list"]
109
+ });
110
+ queryClient.invalidateQueries({
111
+ queryKey: [SBApiKeys.Friends, "recommended"]
112
+ });
113
+ }
114
+ });
115
+ };
116
+ function useListFriendRequestsInfiniteQuery(request = {
117
+ page: 1,
118
+ pageSize: 25
119
+ }, options, config) {
120
+ const client = useApiClient();
121
+ useQueryClient();
122
+ return useInfiniteQuery({
123
+ initialPageParam: request.page || 1,
124
+ queryKey: [SBApiKeys.Friends, SBApiKeys.Friends, request, options],
125
+ queryFn: async ({
126
+ pageParam = 1
127
+ }) => {
128
+ const paginatedRequest = {
129
+ ...request,
130
+ page: pageParam
131
+ };
132
+ return await client.friends.listAsync(paginatedRequest, options, config);
133
+ },
134
+ getNextPageParam: lastPage => {
135
+ if (lastPage.pagination && lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
136
+ return lastPage.pagination.currentPage + 1;
137
+ }
138
+ return undefined;
139
+ }
140
+ });
141
+ }
142
+
143
+ export { useDeleteFriendMutation, useGetFriendByIdQuery, useListFriendRequestsInfiniteQuery, useListFriendsInfiniteQuery, useListRecommendedFriendsInfiniteQuery };
144
+ //# sourceMappingURL=FriendsAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FriendsAPI.mjs","sources":["../../../../src/apis/friends/FriendsAPI.ts"],"sourcesContent":["import {\n\tSBList,\n\tSBFriend,\n\tFriendListRequest,\n\tSBApiException,\n\tSBRequestOptions,\n\tSBFriendRequest,\n\tListRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tQueryKey,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\n/**\n * Hook for listing friends with infinite pagination\n * @param request - Request parameters for listing friends\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with friends data\n */\nexport const useListFriendsInfiniteQuery = (\n\trequest: FriendListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<FriendListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBFriend>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBFriend>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Friends, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.friends.listAsync(\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 &&\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 listing recommended friends with infinite pagination\n * @param request - Request parameters for listing recommended friends\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with recommended friends data\n */\nexport const useListRecommendedFriendsInfiniteQuery = (\n\trequest: FriendListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<FriendListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBFriend>,\n\t\tSBApiException,\n\t\tSBList<SBFriend>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Friends, \"recommended\", request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.friends.listRecommanded(\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 &&\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 friend by ID\n * @param id - The ID of the friend to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Query result containing the friend data\n */\nexport const useGetFriendByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useQuery<SBFriend, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Friends, id],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.friends.getByIdAsync(id, options, config);\n\t\t},\n\t});\n};\n\n/**\n * Hook for deleting a friend\n * @returns Mutation function for deleting friends\n */\nexport const useDeleteFriendMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tSBFriend,\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\treturn await client.friends.deleteAsync(id, options, config);\n\t\t},\n\t\tonSuccess: (_, variables) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Friends, variables.id],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Friends, \"list\"],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Friends, \"recommended\"],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport function useListFriendRequestsInfiniteQuery(\n\trequest: ListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<ListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBFriendRequest>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBFriendRequest>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [SBApiKeys.Friends, SBApiKeys.Friends, request, options],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.friends.listAsync(\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 &&\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":["useListFriendsInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Friends","queryFn","pageParam","paginatedRequest","friends","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useListRecommendedFriendsInfiniteQuery","listRecommanded","useGetFriendByIdQuery","id","useQuery","getByIdAsync","useDeleteFriendMutation","queryClient","useMutation","mutationFn","deleteAsync","onSuccess","_","variables","invalidateQueries","useListFriendRequestsInfiniteQuery"],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { useApiClient } from '../../context/ApiContext.mjs';
2
+ import { useInfiniteQuery, useQueryClient, useMutation } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../SBApiKeys.mjs';
4
+
5
+ const useListIntegrationsInfiniteQuery = (businessId, page = 1, pageSize = 10) => {
6
+ const client = useApiClient();
7
+ return useInfiniteQuery({
8
+ queryKey: [SBApiKeys.Integrations, businessId, page, pageSize],
9
+ queryFn: async ({
10
+ pageParam = 1
11
+ }) => {
12
+ const request = {
13
+ businessId,
14
+ page: pageParam,
15
+ pageSize
16
+ };
17
+ return await client.integrations.getAsync(request);
18
+ },
19
+ getNextPageParam: (lastPage, allPages) => {
20
+ // Assuming the API returns pagination info
21
+ if (lastPage && Array.isArray(lastPage) && lastPage.length === pageSize) {
22
+ return allPages.length + 1;
23
+ }
24
+ return undefined;
25
+ },
26
+ initialPageParam: 1
27
+ });
28
+ };
29
+ const useInstallIntegrationMutation = () => {
30
+ const client = useApiClient();
31
+ const queryClient = useQueryClient();
32
+ return useMutation({
33
+ mutationFn: async ({
34
+ businessId,
35
+ slug,
36
+ options,
37
+ config
38
+ }) => {
39
+ return await client.integrations.installAsync(businessId, slug, options, config);
40
+ },
41
+ onSuccess: (_, {
42
+ businessId
43
+ }) => {
44
+ queryClient.invalidateQueries({
45
+ queryKey: [SBApiKeys.Integrations, businessId]
46
+ });
47
+ }
48
+ });
49
+ };
50
+
51
+ export { useInstallIntegrationMutation, useListIntegrationsInfiniteQuery };
52
+ //# sourceMappingURL=IntegrationsAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntegrationsAPI.mjs","sources":["../../../../src/apis/integrations/IntegrationsAPI.tsx"],"sourcesContent":["import {\n\tIntegrationListRequest,\n\tSBIntegration,\n\tSBApiException,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport {\n\tuseMutation,\n\tuseInfiniteQuery,\n\tuseQueryClient,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport const useListIntegrationsInfiniteQuery = (\n\tbusinessId: string | number,\n\tpage: number = 1,\n\tpageSize: number = 10,\n) => {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery({\n\t\tqueryKey: [SBApiKeys.Integrations, businessId, page, pageSize],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst request: IntegrationListRequest = {\n\t\t\t\tbusinessId,\n\t\t\t\tpage: pageParam,\n\t\t\t\tpageSize,\n\t\t\t};\n\t\t\treturn await client.integrations.getAsync(request);\n\t\t},\n\t\tgetNextPageParam: (lastPage, allPages) => {\n\t\t\t// Assuming the API returns pagination info\n\t\t\tif (\n\t\t\t\tlastPage &&\n\t\t\t\tArray.isArray(lastPage) &&\n\t\t\t\tlastPage.length === pageSize\n\t\t\t) {\n\t\t\t\treturn allPages.length + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tinitialPageParam: 1,\n\t});\n};\n\nexport const useInstallIntegrationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\treturn useMutation<\n\t\tany,\n\t\tSBApiException,\n\t\t{\n\t\t\tbusinessId: string | number;\n\t\t\tslug: string;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ businessId, slug, options, config }) => {\n\t\t\treturn await client.integrations.installAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tslug,\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.Integrations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n"],"names":["useListIntegrationsInfiniteQuery","businessId","page","pageSize","client","useApiClient","useInfiniteQuery","queryKey","SBApiKeys","Integrations","queryFn","pageParam","request","integrations","getAsync","getNextPageParam","lastPage","allPages","Array","isArray","length","undefined","initialPageParam","useInstallIntegrationMutation","queryClient","useQueryClient","useMutation","mutationFn","slug","options","config","installAsync","onSuccess","_","invalidateQueries"],"mappings":";;;;AAeaA,MAAAA,gCAAgC,GAAGA,CAC/CC,UAA2B,EAC3BC,IAAA,GAAe,CAAC,EAChBC,QAAmB,GAAA,EAAE,KAClB;AACH,EAAA,MAAMC,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,OAAOC,gBAAgB,CAAC;IACvBC,QAAQ,EAAE,CAACC,SAAS,CAACC,YAAY,EAAER,UAAU,EAAEC,IAAI,EAAEC,QAAQ,CAAC;IAC9DO,OAAO,EAAE,OAAO;AAAEC,MAAAA,SAAS,GAAG;AAAG,KAAA,KAAI;AACpC,MAAA,MAAMC,OAAO,GAA2B;QACvCX,UAAU;AACVC,QAAAA,IAAI,EAAES,SAAS;AACfR,QAAAA;OACA;MACD,OAAO,MAAMC,MAAM,CAACS,YAAY,CAACC,QAAQ,CAACF,OAAO,CAAC;KAClD;AACDG,IAAAA,gBAAgB,EAAEA,CAACC,QAAQ,EAAEC,QAAQ,KAAI;AACxC;AACA,MAAA,IACCD,QAAQ,IACRE,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,IACvBA,QAAQ,CAACI,MAAM,KAAKjB,QAAQ,EAC3B;AACD,QAAA,OAAOc,QAAQ,CAACG,MAAM,GAAG,CAAC;AAC3B;AACA,MAAA,OAAOC,SAAS;KAChB;AACDC,IAAAA,gBAAgB,EAAE;AAClB,GAAA,CAAC;AACH;AAEaC,MAAAA,6BAA6B,GAAGA,MAAK;AACjD,EAAA,MAAMnB,MAAM,GAAGC,YAAY,EAAE;AAC7B,EAAA,MAAMmB,WAAW,GAAGC,cAAc,EAAE;AACpC,EAAA,OAAOC,WAAW,CAShB;IACDC,UAAU,EAAE,OAAO;MAAE1B,UAAU;MAAE2B,IAAI;MAAEC,OAAO;AAAEC,MAAAA;AAAM,KAAE,KAAI;AAC3D,MAAA,OAAO,MAAM1B,MAAM,CAACS,YAAY,CAACkB,YAAY,CAC5C9B,UAAU,EACV2B,IAAI,EACJC,OAAO,EACPC,MAAM,CACN;KACD;IACDE,SAAS,EAAEA,CAACC,CAAC,EAAE;AAAEhC,MAAAA;AAAU,KAAE,KAAI;MAChCuB,WAAW,CAACU,iBAAiB,CAAC;AAC7B3B,QAAAA,QAAQ,EAAE,CAACC,SAAS,CAACC,YAAY,EAAER,UAAU;AAC7C,OAAA,CAAC;AACH;AACA,GAAA,CAAC;AACH;;;;"}
@@ -0,0 +1,161 @@
1
+ import { useApiClient } from '../../context/ApiContext.mjs';
2
+ import { useQueryClient, useInfiniteQuery, useQuery, useMutation } from '@tanstack/react-query';
3
+ import { SBApiKeys } from '../SBApiKeys.mjs';
4
+
5
+ /**
6
+ * Hook to fetch a list of invoices using infinite query
7
+ * @param request - The pagination request parameters
8
+ * @param options - Optional request options
9
+ * @param config - Optional Axios request configuration
10
+ * @returns An infinite query result containing paginated invoices data
11
+ */
12
+ function useListInvoicesInfiniteQuery(request = {
13
+ page: 0,
14
+ pageSize: 25
15
+ }, options, config) {
16
+ const client = useApiClient();
17
+ useQueryClient();
18
+ return useInfiniteQuery({
19
+ initialPageParam: request.page || 0,
20
+ queryKey: [SBApiKeys.Invoices, request, options],
21
+ queryFn: async ({
22
+ pageParam = 0
23
+ }) => {
24
+ return await client.invoices.listAsync({
25
+ ...request,
26
+ page: pageParam
27
+ }, options, config);
28
+ },
29
+ getNextPageParam: lastPage => {
30
+ if (lastPage.pagination.currentPage < lastPage.pagination.pageCount - 1) {
31
+ return lastPage.pagination.currentPage + 1;
32
+ }
33
+ return undefined;
34
+ }
35
+ });
36
+ }
37
+ /**
38
+ * Hook to fetch a list of invoices
39
+ * @param request - The pagination request parameters
40
+ * @param options - Optional request options
41
+ * @param config - Optional Axios request configuration
42
+ * @returns A query result containing paginated invoices data
43
+ */
44
+ function useListInvoicesQuery(request = {
45
+ page: 0,
46
+ pageSize: 25
47
+ }, options, config) {
48
+ const client = useApiClient();
49
+ useQueryClient();
50
+ return useQuery({
51
+ queryKey: [SBApiKeys.Invoices, request],
52
+ queryFn: async () => {
53
+ return await client.invoices.listAsync(request, options, config);
54
+ }
55
+ });
56
+ }
57
+ /**
58
+ * Hook to fetch a specific invoice by ID
59
+ * @param invoiceId - The ID of the invoice to retrieve
60
+ * @param options - Optional request options
61
+ * @param config - Optional Axios request configuration
62
+ * @returns A query result containing the invoice data
63
+ */
64
+ function useGetInvoiceByIdQuery(invoiceId, options, config) {
65
+ const client = useApiClient();
66
+ useQueryClient();
67
+ return useQuery({
68
+ queryKey: [SBApiKeys.Invoices, invoiceId, options],
69
+ queryFn: async () => {
70
+ return await client.invoices.getByIdAsync(invoiceId, options, config);
71
+ }
72
+ });
73
+ }
74
+ /**
75
+ * Hook to create a new invoice
76
+ * @param mutationOptions - Optional mutation configuration
77
+ * @returns A mutation result for creating an invoice
78
+ */
79
+ function useCreateInvoiceMutation(mutationOptions) {
80
+ const client = useApiClient();
81
+ const queryClient = useQueryClient();
82
+ return useMutation({
83
+ mutationFn: async ({
84
+ data,
85
+ options,
86
+ config
87
+ }) => {
88
+ return await client.invoices.createAsync(data, options, config);
89
+ },
90
+ onSuccess: (data, variables, context) => {
91
+ queryClient.invalidateQueries({
92
+ queryKey: [SBApiKeys.Invoices]
93
+ });
94
+ if (mutationOptions?.onSuccess) {
95
+ mutationOptions.onSuccess(data, variables, context);
96
+ }
97
+ },
98
+ ...mutationOptions
99
+ });
100
+ }
101
+ /**
102
+ * Hook to update an existing invoice
103
+ * @param mutationOptions - Optional mutation configuration
104
+ * @returns A mutation result for updating an invoice
105
+ */
106
+ function useUpdateInvoiceMutation(mutationOptions) {
107
+ const client = useApiClient();
108
+ const queryClient = useQueryClient();
109
+ return useMutation({
110
+ mutationFn: async ({
111
+ invoiceId,
112
+ data,
113
+ options,
114
+ config
115
+ }) => {
116
+ return await client.invoices.updateAsync(invoiceId, data, options, config);
117
+ },
118
+ onSuccess: (data, variables, context) => {
119
+ queryClient.invalidateQueries({
120
+ queryKey: [SBApiKeys.Invoices]
121
+ });
122
+ queryClient.invalidateQueries({
123
+ queryKey: [SBApiKeys.Invoices, variables.invoiceId]
124
+ });
125
+ if (mutationOptions?.onSuccess) {
126
+ mutationOptions.onSuccess(data, variables, context);
127
+ }
128
+ },
129
+ ...mutationOptions
130
+ });
131
+ }
132
+ /**
133
+ * Hook to delete an invoice
134
+ * @param mutationOptions - Optional mutation configuration
135
+ * @returns A mutation result for deleting an invoice
136
+ */
137
+ function useDeleteInvoiceMutation(mutationOptions) {
138
+ const client = useApiClient();
139
+ const queryClient = useQueryClient();
140
+ return useMutation({
141
+ mutationFn: async ({
142
+ invoiceId,
143
+ options,
144
+ config
145
+ }) => {
146
+ return await client.invoices.deleteAsync(invoiceId, options, config);
147
+ },
148
+ onSuccess: (data, variables, context) => {
149
+ queryClient.invalidateQueries({
150
+ queryKey: [SBApiKeys.Invoices]
151
+ });
152
+ if (mutationOptions?.onSuccess) {
153
+ mutationOptions.onSuccess(data, variables, context);
154
+ }
155
+ },
156
+ ...mutationOptions
157
+ });
158
+ }
159
+
160
+ export { useCreateInvoiceMutation, useDeleteInvoiceMutation, useGetInvoiceByIdQuery, useListInvoicesInfiniteQuery, useListInvoicesQuery, useUpdateInvoiceMutation };
161
+ //# sourceMappingURL=InvoicesAPI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoicesAPI.mjs","sources":["../../../../src/apis/invoices/InvoicesAPI.tsx"],"sourcesContent":["import {\n\tSBRequestOptions,\n\tSBApiException,\n\tSBInvoice,\n\tSBList,\n\tInvoiceUpdateRequest,\n\tInvoiceCreateRequest,\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\tUseMutationOptions,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\n\n/**\n * Type for invoice list request\n */\nexport interface InvoiceListRequest {\n\t/** Page number (0-indexed) */\n\tpage?: number;\n\t/** Number of items per page */\n\tpageSize?: number;\n\t/** Search term for filtering invoices */\n\tsearch?: string;\n}\n\n/**\n * Hook to fetch a list of invoices using infinite query\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns An infinite query result containing paginated invoices data\n */\nexport function useListInvoicesInfiniteQuery(\n\trequest: InvoiceListRequest = { page: 0, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBInvoice>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBInvoice>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 0,\n\t\tqueryKey: [SBApiKeys.Invoices, request, options],\n\t\tqueryFn: async ({ pageParam = 0 }) => {\n\t\t\treturn await client.invoices.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 <\n\t\t\t\tlastPage.pagination.pageCount - 1\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 to fetch a list of invoices\n * @param request - The pagination request parameters\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing paginated invoices data\n */\nexport function useListInvoicesQuery(\n\trequest: InvoiceListRequest = { page: 0, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useQuery<SBList<SBInvoice>, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Invoices, request],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.invoices.listAsync(request, options, config);\n\t\t},\n\t});\n}\n\n/**\n * Hook to fetch a specific invoice by ID\n * @param invoiceId - The ID of the invoice to retrieve\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns A query result containing the invoice data\n */\nexport function useGetInvoiceByIdQuery(\n\tinvoiceId: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useQuery<SBInvoice, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Invoices, invoiceId, options],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.invoices.getByIdAsync(\n\t\t\t\tinvoiceId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t});\n}\n\n/**\n * Hook to create a new invoice\n * @param mutationOptions - Optional mutation configuration\n * @returns A mutation result for creating an invoice\n */\nexport function useCreateInvoiceMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBInvoice,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tdata: InvoiceCreateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBInvoice,\n\t\tSBApiException,\n\t\t{\n\t\t\tdata: InvoiceCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ data, options, config }) => {\n\t\t\treturn await client.invoices.createAsync(data, options, config);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices],\n\t\t\t});\n\t\t\tif (mutationOptions?.onSuccess) {\n\t\t\t\tmutationOptions.onSuccess(data, variables, context);\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\n/**\n * Hook to update an existing invoice\n * @param mutationOptions - Optional mutation configuration\n * @returns A mutation result for updating an invoice\n */\nexport function useUpdateInvoiceMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBInvoice,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tinvoiceId: number;\n\t\t\t\tdata: InvoiceUpdateRequest;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBInvoice,\n\t\tSBApiException,\n\t\t{\n\t\t\tinvoiceId: number;\n\t\t\tdata: InvoiceUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ invoiceId, data, options, config }) => {\n\t\t\treturn await client.invoices.updateAsync(\n\t\t\t\tinvoiceId,\n\t\t\t\tdata,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices, variables.invoiceId],\n\t\t\t});\n\t\t\tif (mutationOptions?.onSuccess) {\n\t\t\t\tmutationOptions.onSuccess(data, variables, context);\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n\n/**\n * Hook to delete an invoice\n * @param mutationOptions - Optional mutation configuration\n * @returns A mutation result for deleting an invoice\n */\nexport function useDeleteInvoiceMutation(\n\tmutationOptions?: Omit<\n\t\tUseMutationOptions<\n\t\t\tSBInvoice,\n\t\t\tSBApiException,\n\t\t\t{\n\t\t\t\tinvoiceId: number;\n\t\t\t\toptions?: SBRequestOptions;\n\t\t\t\tconfig?: AxiosRequestConfig;\n\t\t\t}\n\t\t>,\n\t\t\"mutationFn\"\n\t>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\n\treturn useMutation<\n\t\tSBInvoice,\n\t\tSBApiException,\n\t\t{\n\t\t\tinvoiceId: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ invoiceId, options, config }) => {\n\t\t\treturn await client.invoices.deleteAsync(\n\t\t\t\tinvoiceId,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (data, variables, context) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Invoices],\n\t\t\t});\n\t\t\tif (mutationOptions?.onSuccess) {\n\t\t\t\tmutationOptions.onSuccess(data, variables, context);\n\t\t\t}\n\t\t},\n\t\t...mutationOptions,\n\t});\n}\n"],"names":["useListInvoicesInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","useQueryClient","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Invoices","queryFn","pageParam","invoices","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","useListInvoicesQuery","useQuery","useGetInvoiceByIdQuery","invoiceId","getByIdAsync","useCreateInvoiceMutation","mutationOptions","queryClient","useMutation","mutationFn","data","createAsync","onSuccess","variables","context","invalidateQueries","useUpdateInvoiceMutation","updateAsync","useDeleteInvoiceMutation","deleteAsync"],"mappings":"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"}