@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.
- package/dist/@types/index.d.ts +1447 -0
- package/dist/@types/index.d.ts.map +1 -0
- package/dist/cjs/apis/SBApiKeys.cjs +56 -0
- package/dist/cjs/apis/SBApiKeys.cjs.map +1 -0
- package/dist/cjs/apis/api-logs/LogsAPI.cjs +42 -0
- package/dist/cjs/apis/api-logs/LogsAPI.cjs.map +1 -0
- package/dist/cjs/apis/attachments/AttachmentsAPI.cjs +147 -0
- package/dist/cjs/apis/attachments/AttachmentsAPI.cjs.map +1 -0
- package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs +88 -0
- package/dist/cjs/apis/banks/accounts/BankAccountAPI.cjs.map +1 -0
- package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs +58 -0
- package/dist/cjs/apis/banks/bank-institutions/BankInstitutionsAPI.cjs.map +1 -0
- package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs +57 -0
- package/dist/cjs/apis/banks/bank-transactions/BankTransactionAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/BusinessAPI.cjs +172 -0
- package/dist/cjs/apis/business/BusinessAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/customers/CustomerAPI.cjs +161 -0
- package/dist/cjs/apis/business/customers/CustomerAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs +71 -0
- package/dist/cjs/apis/business/customers/CustomerBalanceTransactionsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs +176 -0
- package/dist/cjs/apis/business/customers/CustomerPaymentMethodsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/departments/DepartmentApi.cjs +168 -0
- package/dist/cjs/apis/business/departments/DepartmentApi.cjs.map +1 -0
- package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs +137 -0
- package/dist/cjs/apis/business/departments/employees/DepartmentEmployeesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/fees/FeesAPI.cjs +167 -0
- package/dist/cjs/apis/business/fees/FeesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/locations/LocationsAPI.cjs +133 -0
- package/dist/cjs/apis/business/locations/LocationsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/ProductsAPI.cjs +184 -0
- package/dist/cjs/apis/business/products/ProductsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs +195 -0
- package/dist/cjs/apis/business/products/images/ProductImagesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs +169 -0
- package/dist/cjs/apis/business/products/modifiers/ModifiersAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs +183 -0
- package/dist/cjs/apis/business/products/options/ProductOptionsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs +185 -0
- package/dist/cjs/apis/business/products/variants/ProductVariantsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs +139 -0
- package/dist/cjs/apis/business/promo-codes/PromoCodesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs +143 -0
- package/dist/cjs/apis/business/reviews/ReviewsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/tables/TablesAPI.cjs +75 -0
- package/dist/cjs/apis/business/tables/TablesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/taxes/TaxesAPI.cjs +140 -0
- package/dist/cjs/apis/business/taxes/TaxesAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs +161 -0
- package/dist/cjs/apis/business/team/TeamMemberInvitationsAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/team/TeamMembersAPI.cjs +93 -0
- package/dist/cjs/apis/business/team/TeamMembersAPI.cjs.map +1 -0
- package/dist/cjs/apis/business/vendors/VendorsAPI.cjs +237 -0
- package/dist/cjs/apis/business/vendors/VendorsAPI.cjs.map +1 -0
- package/dist/cjs/apis/documents/DocumentsAPI.cjs +87 -0
- package/dist/cjs/apis/documents/DocumentsAPI.cjs.map +1 -0
- package/dist/cjs/apis/expenses/ExpensesAPI.cjs +62 -0
- package/dist/cjs/apis/expenses/ExpensesAPI.cjs.map +1 -0
- package/dist/cjs/apis/friends/FriendsAPI.cjs +150 -0
- package/dist/cjs/apis/friends/FriendsAPI.cjs.map +1 -0
- package/dist/cjs/apis/integrations/IntegrationsAPI.cjs +55 -0
- package/dist/cjs/apis/integrations/IntegrationsAPI.cjs.map +1 -0
- package/dist/cjs/apis/invoices/InvoicesAPI.cjs +168 -0
- package/dist/cjs/apis/invoices/InvoicesAPI.cjs.map +1 -0
- package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs +484 -0
- package/dist/cjs/apis/loyalty/LoyaltyProgramAPI.cjs.map +1 -0
- package/dist/cjs/apis/notifications/NotificationAPI.cjs +103 -0
- package/dist/cjs/apis/notifications/NotificationAPI.cjs.map +1 -0
- package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs +125 -0
- package/dist/cjs/apis/payment-methods/PaymentMethodsAPI.cjs.map +1 -0
- package/dist/cjs/apis/receipts/ReceiptAPI.cjs +135 -0
- package/dist/cjs/apis/receipts/ReceiptAPI.cjs.map +1 -0
- package/dist/cjs/apis/user/UserAPI.cjs +130 -0
- package/dist/cjs/apis/user/UserAPI.cjs.map +1 -0
- package/dist/cjs/apis/vendors/VendorsAPI.cjs +215 -0
- package/dist/cjs/apis/vendors/VendorsAPI.cjs.map +1 -0
- package/dist/cjs/context/ApiContext.cjs +94 -0
- package/dist/cjs/context/ApiContext.cjs.map +1 -0
- package/dist/cjs/index.cjs +224 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/apis/SBApiKeys.mjs +56 -0
- package/dist/esm/apis/SBApiKeys.mjs.map +1 -0
- package/dist/esm/apis/api-logs/LogsAPI.mjs +39 -0
- package/dist/esm/apis/api-logs/LogsAPI.mjs.map +1 -0
- package/dist/esm/apis/attachments/AttachmentsAPI.mjs +142 -0
- package/dist/esm/apis/attachments/AttachmentsAPI.mjs.map +1 -0
- package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs +84 -0
- package/dist/esm/apis/banks/accounts/BankAccountAPI.mjs.map +1 -0
- package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs +55 -0
- package/dist/esm/apis/banks/bank-institutions/BankInstitutionsAPI.mjs.map +1 -0
- package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs +54 -0
- package/dist/esm/apis/banks/bank-transactions/BankTransactionAPI.mjs.map +1 -0
- package/dist/esm/apis/business/BusinessAPI.mjs +165 -0
- package/dist/esm/apis/business/BusinessAPI.mjs.map +1 -0
- package/dist/esm/apis/business/customers/CustomerAPI.mjs +155 -0
- package/dist/esm/apis/business/customers/CustomerAPI.mjs.map +1 -0
- package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs +68 -0
- package/dist/esm/apis/business/customers/CustomerBalanceTransactionsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs +170 -0
- package/dist/esm/apis/business/customers/CustomerPaymentMethodsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/departments/DepartmentApi.mjs +161 -0
- package/dist/esm/apis/business/departments/DepartmentApi.mjs.map +1 -0
- package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs +132 -0
- package/dist/esm/apis/business/departments/employees/DepartmentEmployeesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/fees/FeesAPI.mjs +161 -0
- package/dist/esm/apis/business/fees/FeesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/locations/LocationsAPI.mjs +127 -0
- package/dist/esm/apis/business/locations/LocationsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/ProductsAPI.mjs +177 -0
- package/dist/esm/apis/business/products/ProductsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs +188 -0
- package/dist/esm/apis/business/products/images/ProductImagesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs +163 -0
- package/dist/esm/apis/business/products/modifiers/ModifiersAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs +177 -0
- package/dist/esm/apis/business/products/options/ProductOptionsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs +179 -0
- package/dist/esm/apis/business/products/variants/ProductVariantsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs +133 -0
- package/dist/esm/apis/business/promo-codes/PromoCodesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/reviews/ReviewsAPI.mjs +137 -0
- package/dist/esm/apis/business/reviews/ReviewsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/tables/TablesAPI.mjs +70 -0
- package/dist/esm/apis/business/tables/TablesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/taxes/TaxesAPI.mjs +134 -0
- package/dist/esm/apis/business/taxes/TaxesAPI.mjs.map +1 -0
- package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs +153 -0
- package/dist/esm/apis/business/team/TeamMemberInvitationsAPI.mjs.map +1 -0
- package/dist/esm/apis/business/team/TeamMembersAPI.mjs +88 -0
- package/dist/esm/apis/business/team/TeamMembersAPI.mjs.map +1 -0
- package/dist/esm/apis/business/vendors/VendorsAPI.mjs +228 -0
- package/dist/esm/apis/business/vendors/VendorsAPI.mjs.map +1 -0
- package/dist/esm/apis/documents/DocumentsAPI.mjs +82 -0
- package/dist/esm/apis/documents/DocumentsAPI.mjs.map +1 -0
- package/dist/esm/apis/expenses/ExpensesAPI.mjs +58 -0
- package/dist/esm/apis/expenses/ExpensesAPI.mjs.map +1 -0
- package/dist/esm/apis/friends/FriendsAPI.mjs +144 -0
- package/dist/esm/apis/friends/FriendsAPI.mjs.map +1 -0
- package/dist/esm/apis/integrations/IntegrationsAPI.mjs +52 -0
- package/dist/esm/apis/integrations/IntegrationsAPI.mjs.map +1 -0
- package/dist/esm/apis/invoices/InvoicesAPI.mjs +161 -0
- package/dist/esm/apis/invoices/InvoicesAPI.mjs.map +1 -0
- package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs +482 -0
- package/dist/esm/apis/loyalty/LoyaltyProgramAPI.mjs.map +1 -0
- package/dist/esm/apis/notifications/NotificationAPI.mjs +98 -0
- package/dist/esm/apis/notifications/NotificationAPI.mjs.map +1 -0
- package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs +117 -0
- package/dist/esm/apis/payment-methods/PaymentMethodsAPI.mjs.map +1 -0
- package/dist/esm/apis/receipts/ReceiptAPI.mjs +129 -0
- package/dist/esm/apis/receipts/ReceiptAPI.mjs.map +1 -0
- package/dist/esm/apis/user/UserAPI.mjs +123 -0
- package/dist/esm/apis/user/UserAPI.mjs.map +1 -0
- package/dist/esm/apis/vendors/VendorsAPI.mjs +204 -0
- package/dist/esm/apis/vendors/VendorsAPI.mjs.map +1 -0
- package/dist/esm/context/ApiContext.mjs +86 -0
- package/dist/esm/context/ApiContext.mjs.map +1 -0
- package/dist/esm/index.mjs +39 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/umd/index.js +5099 -0
- package/dist/umd/index.js.map +1 -0
- 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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"}
|