@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,134 @@
|
|
|
1
|
+
import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
|
|
2
|
+
import { useInfiniteQuery, useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
3
|
+
import { SBApiKeys } from '../../SBApiKeys.mjs';
|
|
4
|
+
|
|
5
|
+
const useListTaxesInfiniteQuery = (request = {
|
|
6
|
+
page: 1,
|
|
7
|
+
pageSize: 25
|
|
8
|
+
}, options, config) => {
|
|
9
|
+
const client = useApiClient();
|
|
10
|
+
const businessId = useBusinessId();
|
|
11
|
+
if (!businessId) {
|
|
12
|
+
throw new Error("businessId is required for tax operations");
|
|
13
|
+
}
|
|
14
|
+
return useInfiniteQuery({
|
|
15
|
+
initialPageParam: request.page || 1,
|
|
16
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes, request, options],
|
|
17
|
+
queryFn: async ({
|
|
18
|
+
pageParam = 1
|
|
19
|
+
}) => {
|
|
20
|
+
const paginatedRequest = {
|
|
21
|
+
...request,
|
|
22
|
+
page: pageParam
|
|
23
|
+
};
|
|
24
|
+
return await client.businesses.taxes.listAsync(businessId, paginatedRequest, options, config);
|
|
25
|
+
},
|
|
26
|
+
getNextPageParam: lastPage => {
|
|
27
|
+
if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
28
|
+
return lastPage.pagination.currentPage + 1;
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
},
|
|
32
|
+
enabled: !!businessId
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
const useGetTaxByIdQuery = (id, options, config) => {
|
|
36
|
+
const client = useApiClient();
|
|
37
|
+
const businessId = useBusinessId();
|
|
38
|
+
if (!businessId) {
|
|
39
|
+
throw new Error("businessId is required for tax operations");
|
|
40
|
+
}
|
|
41
|
+
return useQuery({
|
|
42
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes, id, options],
|
|
43
|
+
queryFn: async () => {
|
|
44
|
+
return await client.businesses.taxes.getByIdAsync(businessId, id, options, config);
|
|
45
|
+
},
|
|
46
|
+
enabled: !!businessId
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
const useCreateTaxMutation = () => {
|
|
50
|
+
const client = useApiClient();
|
|
51
|
+
const queryClient = useQueryClient();
|
|
52
|
+
const businessId = useBusinessId();
|
|
53
|
+
return useMutation({
|
|
54
|
+
mutationFn: async ({
|
|
55
|
+
request,
|
|
56
|
+
options,
|
|
57
|
+
config
|
|
58
|
+
}) => {
|
|
59
|
+
if (!businessId) {
|
|
60
|
+
throw new Error("businessId is required for tax operations");
|
|
61
|
+
}
|
|
62
|
+
return await client.businesses.taxes.createAsync(businessId, request, options, config);
|
|
63
|
+
},
|
|
64
|
+
onSuccess: () => {
|
|
65
|
+
if (businessId) {
|
|
66
|
+
queryClient.invalidateQueries({
|
|
67
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
const useUpdateTaxMutation = () => {
|
|
74
|
+
const client = useApiClient();
|
|
75
|
+
const queryClient = useQueryClient();
|
|
76
|
+
const businessId = useBusinessId();
|
|
77
|
+
return useMutation({
|
|
78
|
+
mutationFn: async ({
|
|
79
|
+
id,
|
|
80
|
+
request,
|
|
81
|
+
options,
|
|
82
|
+
config
|
|
83
|
+
}) => {
|
|
84
|
+
if (!businessId) {
|
|
85
|
+
throw new Error("businessId is required for tax operations");
|
|
86
|
+
}
|
|
87
|
+
return await client.businesses.taxes.updateAsync(businessId, id, request, options, config);
|
|
88
|
+
},
|
|
89
|
+
onSuccess: (_, {
|
|
90
|
+
id
|
|
91
|
+
}) => {
|
|
92
|
+
if (businessId) {
|
|
93
|
+
queryClient.invalidateQueries({
|
|
94
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes]
|
|
95
|
+
});
|
|
96
|
+
queryClient.invalidateQueries({
|
|
97
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes, id]
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
const useDeleteTaxMutation = () => {
|
|
104
|
+
const client = useApiClient();
|
|
105
|
+
const queryClient = useQueryClient();
|
|
106
|
+
const businessId = useBusinessId();
|
|
107
|
+
return useMutation({
|
|
108
|
+
mutationFn: async ({
|
|
109
|
+
id,
|
|
110
|
+
options,
|
|
111
|
+
config
|
|
112
|
+
}) => {
|
|
113
|
+
if (!businessId) {
|
|
114
|
+
throw new Error("businessId is required for tax operations");
|
|
115
|
+
}
|
|
116
|
+
await client.businesses.taxes.deleteAsync(businessId, id, options, config);
|
|
117
|
+
},
|
|
118
|
+
onSuccess: (_, {
|
|
119
|
+
id
|
|
120
|
+
}) => {
|
|
121
|
+
if (businessId) {
|
|
122
|
+
queryClient.invalidateQueries({
|
|
123
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes]
|
|
124
|
+
});
|
|
125
|
+
queryClient.invalidateQueries({
|
|
126
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Taxes, id]
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export { useCreateTaxMutation, useDeleteTaxMutation, useGetTaxByIdQuery, useListTaxesInfiniteQuery, useUpdateTaxMutation };
|
|
134
|
+
//# sourceMappingURL=TaxesAPI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaxesAPI.mjs","sources":["../../../../../src/apis/business/taxes/TaxesAPI.tsx"],"sourcesContent":["import {\n\tSBList,\n\tSBApiException,\n\tSBRequestOptions,\n\tSBTax,\n\tTaxCreateRequest,\n\tTaxListRequest,\n\tTaxUpdateRequest,\n} from \"@smartbills/sdk\";\nimport { useApiClient } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useBusinessId } from \"@/context\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\n\nexport const useListTaxesInfiniteQuery = (\n\trequest: TaxListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TaxListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for tax operations\");\n\t}\n\n\treturn useInfiniteQuery<\n\t\tSBList<SBTax>,\n\t\tSBApiException,\n\t\tSBList<SBTax>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Taxes,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\tconst paginatedRequest = { ...request, page: pageParam };\n\t\t\treturn await client.businesses.taxes.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tpaginatedRequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useGetTaxByIdQuery = (\n\tid: number,\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TaxListRequest>,\n) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\n\tif (!businessId) {\n\t\tthrow new Error(\"businessId is required for tax operations\");\n\t}\n\n\treturn useQuery<SBTax, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.Taxes,\n\t\t\tid,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn await client.businesses.taxes.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tenabled: !!businessId,\n\t});\n};\n\nexport const useCreateTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTax,\n\t\tSBApiException,\n\t\t{\n\t\t\trequest: TaxCreateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<TaxCreateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.taxes.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: () => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useUpdateTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTax,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\trequest: TaxUpdateRequest;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig<TaxUpdateRequest>;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, request, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\treturn await client.businesses.taxes.updateAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n\nexport const useDeleteTaxMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tvoid,\n\t\tSBApiException,\n\t\t{\n\t\t\tid: number;\n\t\t\toptions?: SBRequestOptions;\n\t\t\tconfig?: AxiosRequestConfig;\n\t\t}\n\t>({\n\t\tmutationFn: async ({ id, options, config }) => {\n\t\t\tif (!businessId) {\n\t\t\t\tthrow new Error(\"businessId is required for tax operations\");\n\t\t\t}\n\t\t\tawait client.businesses.taxes.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tid,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tif (businessId) {\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t\tqueryClient.invalidateQueries({\n\t\t\t\t\tqueryKey: [\n\t\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\t\tbusinessId,\n\t\t\t\t\t\tSBApiKeys.Taxes,\n\t\t\t\t\t\tid,\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t});\n};\n"],"names":["useListTaxesInfiniteQuery","request","page","pageSize","options","config","client","useApiClient","businessId","useBusinessId","Error","useInfiniteQuery","initialPageParam","queryKey","SBApiKeys","Businesses","Taxes","queryFn","pageParam","paginatedRequest","businesses","taxes","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined","enabled","useGetTaxByIdQuery","id","useQuery","getByIdAsync","useCreateTaxMutation","queryClient","useQueryClient","useMutation","mutationFn","createAsync","onSuccess","invalidateQueries","useUpdateTaxMutation","updateAsync","_","useDeleteTaxMutation","deleteAsync"],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
|
|
2
|
+
import { useQueryClient, useMutation, useQuery, useInfiniteQuery } from '@tanstack/react-query';
|
|
3
|
+
import { SBApiKeys } from '../../SBApiKeys.mjs';
|
|
4
|
+
|
|
5
|
+
const useInviteMemberToBusinessMutation = () => {
|
|
6
|
+
const client = useApiClient();
|
|
7
|
+
const queryClient = useQueryClient();
|
|
8
|
+
const businessId = useBusinessId();
|
|
9
|
+
return useMutation({
|
|
10
|
+
mutationFn: async ({
|
|
11
|
+
request
|
|
12
|
+
}) => {
|
|
13
|
+
return client.businesses.teamMembers.invitations.createAsync(businessId, request);
|
|
14
|
+
},
|
|
15
|
+
onSuccess: (_, {}) => {
|
|
16
|
+
queryClient.invalidateQueries({
|
|
17
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMemberInvitations]
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
const useCancelTeamMemberInvitation = () => {
|
|
23
|
+
const client = useApiClient();
|
|
24
|
+
const queryClient = useQueryClient();
|
|
25
|
+
const businessId = useBusinessId();
|
|
26
|
+
return useMutation({
|
|
27
|
+
mutationFn: async ({
|
|
28
|
+
invitationId
|
|
29
|
+
}) => {
|
|
30
|
+
return await client.businesses.teamMembers.invitations.deleteAsync(businessId, invitationId);
|
|
31
|
+
},
|
|
32
|
+
onSuccess: _ => {
|
|
33
|
+
queryClient.invalidateQueries({
|
|
34
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMemberInvitations]
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
const useGetTeamMemberInvitationById = ({
|
|
40
|
+
invitationId
|
|
41
|
+
}) => {
|
|
42
|
+
const client = useApiClient();
|
|
43
|
+
useQueryClient();
|
|
44
|
+
const businessId = useBusinessId();
|
|
45
|
+
return useQuery({
|
|
46
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMemberInvitations, invitationId],
|
|
47
|
+
queryFn: async () => {
|
|
48
|
+
return client.businesses.teamMembers.invitations.getByIdAsync(businessId, invitationId);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Hook for creating an business invitation
|
|
54
|
+
* @returns Mutation function for creating business invitations
|
|
55
|
+
*/
|
|
56
|
+
const useCreateTeamMemberInvitationMutation = () => {
|
|
57
|
+
const client = useApiClient();
|
|
58
|
+
const queryClient = useQueryClient();
|
|
59
|
+
const businessId = useBusinessId();
|
|
60
|
+
return useMutation({
|
|
61
|
+
mutationFn: async ({
|
|
62
|
+
request,
|
|
63
|
+
options,
|
|
64
|
+
config
|
|
65
|
+
}) => {
|
|
66
|
+
return client.businesses.teamMembers.invitations.createAsync(businessId, request, options, config);
|
|
67
|
+
},
|
|
68
|
+
onSuccess: (_, {}) => {
|
|
69
|
+
queryClient.invalidateQueries({
|
|
70
|
+
queryKey: [SBApiKeys.TeamMemberInvitations, businessId]
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Hook for accepting an business invitation
|
|
77
|
+
* @returns Mutation function for accepting business invitations
|
|
78
|
+
*/
|
|
79
|
+
const useAcceptTeamMemberInvitationMutation = () => {
|
|
80
|
+
const client = useApiClient();
|
|
81
|
+
const queryClient = useQueryClient();
|
|
82
|
+
const businessId = useBusinessId();
|
|
83
|
+
return useMutation({
|
|
84
|
+
mutationFn: async ({
|
|
85
|
+
invitationId,
|
|
86
|
+
request
|
|
87
|
+
}) => {
|
|
88
|
+
return client.businesses.teamMembers.invitations.accept(businessId, invitationId, request);
|
|
89
|
+
},
|
|
90
|
+
onSuccess: (_, {}) => {
|
|
91
|
+
queryClient.invalidateQueries({
|
|
92
|
+
queryKey: [SBApiKeys.TeamMemberInvitations, businessId]
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Hook for refusing an business invitation
|
|
99
|
+
* @returns Mutation function for refusing business invitations
|
|
100
|
+
*/
|
|
101
|
+
const useRefuseTeamMemberInvitationMutation = () => {
|
|
102
|
+
const client = useApiClient();
|
|
103
|
+
const queryClient = useQueryClient();
|
|
104
|
+
const businessId = useBusinessId();
|
|
105
|
+
return useMutation({
|
|
106
|
+
mutationFn: async ({
|
|
107
|
+
invitationId,
|
|
108
|
+
request
|
|
109
|
+
}) => {
|
|
110
|
+
return client.businesses.teamMembers.invitations.accept(businessId, invitationId, request);
|
|
111
|
+
},
|
|
112
|
+
onSuccess: (_, {}) => {
|
|
113
|
+
queryClient.invalidateQueries({
|
|
114
|
+
queryKey: [SBApiKeys.TeamMemberInvitations, businessId]
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Hook for listing business invitations with infinite pagination
|
|
121
|
+
* @param businessId - The ID of the business
|
|
122
|
+
* @param request - Request parameters for listing invitations
|
|
123
|
+
* @param options - Optional request options
|
|
124
|
+
* @param config - Optional Axios request configuration
|
|
125
|
+
* @returns Infinite query result for implementing infinite scrolling with business invitations data
|
|
126
|
+
*/
|
|
127
|
+
function useListTeamMemberInvitationsInfiniteQuery(businessId, request = {
|
|
128
|
+
page: 1,
|
|
129
|
+
pageSize: 25
|
|
130
|
+
}, options, config) {
|
|
131
|
+
const client = useApiClient();
|
|
132
|
+
return useInfiniteQuery({
|
|
133
|
+
initialPageParam: request.page || 1,
|
|
134
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMemberInvitations, request, options],
|
|
135
|
+
queryFn: async ({
|
|
136
|
+
pageParam = 1
|
|
137
|
+
}) => {
|
|
138
|
+
return await client.businesses.teamMembers.invitations.listAsync(businessId, {
|
|
139
|
+
...request,
|
|
140
|
+
page: pageParam
|
|
141
|
+
}, options, config);
|
|
142
|
+
},
|
|
143
|
+
getNextPageParam: lastPage => {
|
|
144
|
+
if (lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
145
|
+
return lastPage.pagination.currentPage + 1;
|
|
146
|
+
}
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export { useAcceptTeamMemberInvitationMutation, useCancelTeamMemberInvitation, useCreateTeamMemberInvitationMutation, useGetTeamMemberInvitationById, useInviteMemberToBusinessMutation, useListTeamMemberInvitationsInfiniteQuery, useRefuseTeamMemberInvitationMutation };
|
|
153
|
+
//# sourceMappingURL=TeamMemberInvitationsAPI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TeamMemberInvitationsAPI.mjs","sources":["../../../../../src/apis/business/team/TeamMemberInvitationsAPI.tsx"],"sourcesContent":["import { useApiClient, useBusinessId } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tTeamMemberInvitationListRequest,\n\tTeamMemberInvitationRequest,\n\tTeamMemberInvitationResponseRequest,\n\tSBApiException,\n\tSBList,\n\tSBTeamMemberInvitation,\n\tSBRequestOptions,\n} from \"@smartbills/sdk\";\nimport { QueryKey, useMutation, useQuery } from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\nimport { useInfiniteQuery, InfiniteData } from \"@tanstack/react-query\";\n\ninterface TeamMemberInvitationRequestMutation {\n\trequest: TeamMemberInvitationRequest;\n}\n\nexport const useInviteMemberToBusinessMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationRequestMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t}: TeamMemberInvitationRequestMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationCancelMutation {\n\tinvitationId: number;\n}\n\nexport const useCancelTeamMemberInvitation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationCancelMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t}: TeamMemberInvitationCancelMutation) => {\n\t\t\treturn await client.businesses.teamMembers.invitations.deleteAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationAcceptMutation {\n\tinvitationId: number;\n\trequest: TeamMemberInvitationResponseRequest;\n\toptions?: SBRequestOptions;\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationResponseRequest>;\n}\n\ninterface TeamMemberInvitationRefuseMutation {\n\tinvitationId: number;\n\trequest: TeamMemberInvitationResponseRequest;\n}\n\ninterface GetTeamMemberInvitationQuery {\n\tinvitationId: number;\n}\n\nexport const useGetTeamMemberInvitationById = ({\n\tinvitationId,\n}: GetTeamMemberInvitationQuery) => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTeamMemberInvitation, SBApiException>({\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\tinvitationId,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\treturn client.businesses.teamMembers.invitations.getByIdAsync(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t);\n\t\t},\n\t});\n};\n\ninterface TeamMemberInvitationCreateMutation {\n\trequest: TeamMemberInvitationRequest;\n\toptions?: SBRequestOptions;\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationRequest>;\n}\n\n/**\n * Hook for creating an business invitation\n * @returns Mutation function for creating business invitations\n */\nexport const useCreateTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationCreateMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\trequest,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t}: TeamMemberInvitationCreateMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.createAsync(\n\t\t\t\tbusinessId,\n\t\t\t\trequest,\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for accepting an business invitation\n * @returns Mutation function for accepting business invitations\n */\nexport const useAcceptTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationAcceptMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t\trequest,\n\t\t}: TeamMemberInvitationAcceptMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.accept(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for refusing an business invitation\n * @returns Mutation function for refusing business invitations\n */\nexport const useRefuseTeamMemberInvitationMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useMutation<\n\t\tSBTeamMemberInvitation,\n\t\tSBApiException,\n\t\tTeamMemberInvitationRefuseMutation\n\t>({\n\t\tmutationFn: async ({\n\t\t\tinvitationId,\n\t\t\trequest,\n\t\t}: TeamMemberInvitationRefuseMutation) => {\n\t\t\treturn client.businesses.teamMembers.invitations.accept(\n\t\t\t\tbusinessId,\n\t\t\t\tinvitationId,\n\t\t\t\trequest,\n\t\t\t);\n\t\t},\n\t\tonSuccess: (_, {}) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.TeamMemberInvitations, businessId],\n\t\t\t});\n\t\t},\n\t});\n};\n\n/**\n * Hook for listing business invitations with infinite pagination\n * @param businessId - The ID of the business\n * @param request - Request parameters for listing invitations\n * @param options - Optional request options\n * @param config - Optional Axios request configuration\n * @returns Infinite query result for implementing infinite scrolling with business invitations data\n */\nexport function useListTeamMemberInvitationsInfiniteQuery(\n\tbusinessId: number,\n\trequest: TeamMemberInvitationListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TeamMemberInvitationListRequest>,\n) {\n\tconst client = useApiClient();\n\treturn useInfiniteQuery<\n\t\tSBList<SBTeamMemberInvitation>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBTeamMemberInvitation>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.TeamMemberInvitations,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.teamMembers.invitations.listAsync(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage < lastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t});\n}\n"],"names":["useInviteMemberToBusinessMutation","client","useApiClient","queryClient","useQueryClient","businessId","useBusinessId","useMutation","mutationFn","request","businesses","teamMembers","invitations","createAsync","onSuccess","_","invalidateQueries","queryKey","SBApiKeys","Businesses","TeamMemberInvitations","useCancelTeamMemberInvitation","invitationId","deleteAsync","useGetTeamMemberInvitationById","useQuery","queryFn","getByIdAsync","useCreateTeamMemberInvitationMutation","options","config","useAcceptTeamMemberInvitationMutation","accept","useRefuseTeamMemberInvitationMutation","useListTeamMemberInvitationsInfiniteQuery","page","pageSize","useInfiniteQuery","initialPageParam","pageParam","listAsync","getNextPageParam","lastPage","pagination","currentPage","pageCount","undefined"],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
|
|
2
|
+
import { useQueryClient, useMutation, useInfiniteQuery, useQuery } from '@tanstack/react-query';
|
|
3
|
+
import { SBApiKeys } from '../../SBApiKeys.mjs';
|
|
4
|
+
|
|
5
|
+
const useChangeTeamMemberRoleMutation = () => {
|
|
6
|
+
const client = useApiClient();
|
|
7
|
+
const queryClient = useQueryClient();
|
|
8
|
+
const businessId = useBusinessId();
|
|
9
|
+
return useMutation({
|
|
10
|
+
mutationFn: async ({
|
|
11
|
+
id
|
|
12
|
+
}) => {
|
|
13
|
+
return client.businesses.deleteMember(businessId, id);
|
|
14
|
+
},
|
|
15
|
+
onSuccess: (_, {
|
|
16
|
+
id
|
|
17
|
+
}) => {
|
|
18
|
+
queryClient.invalidateQueries({
|
|
19
|
+
queryKey: [SBApiKeys.Businesses, businessId]
|
|
20
|
+
});
|
|
21
|
+
queryClient.invalidateQueries({
|
|
22
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers]
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
const useDeleteTeamMemberMutation = () => {
|
|
28
|
+
const client = useApiClient();
|
|
29
|
+
const queryClient = useQueryClient();
|
|
30
|
+
const businessId = useBusinessId();
|
|
31
|
+
return useMutation({
|
|
32
|
+
mutationFn: async ({
|
|
33
|
+
id
|
|
34
|
+
}) => {
|
|
35
|
+
return client.businesses.deleteMember(businessId, id);
|
|
36
|
+
},
|
|
37
|
+
onSuccess: (_, {
|
|
38
|
+
id
|
|
39
|
+
}) => {
|
|
40
|
+
queryClient.invalidateQueries({
|
|
41
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers]
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
function useListTeamMembersInfiniteQuery(request = {
|
|
47
|
+
page: 1,
|
|
48
|
+
pageSize: 25
|
|
49
|
+
}, options, config) {
|
|
50
|
+
const client = useApiClient();
|
|
51
|
+
useQueryClient();
|
|
52
|
+
const businessId = useBusinessId();
|
|
53
|
+
return useInfiniteQuery({
|
|
54
|
+
initialPageParam: request.page || 1,
|
|
55
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers, request, options],
|
|
56
|
+
queryFn: async ({
|
|
57
|
+
pageParam = 1
|
|
58
|
+
}) => {
|
|
59
|
+
return await client.businesses.listMembers(businessId, {
|
|
60
|
+
...request,
|
|
61
|
+
page: pageParam
|
|
62
|
+
}, options, config);
|
|
63
|
+
},
|
|
64
|
+
getPreviousPageParam: firstPage => {
|
|
65
|
+
if (firstPage.pagination.currentPage === 1) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
return firstPage.pagination.currentPage - 1;
|
|
69
|
+
},
|
|
70
|
+
getNextPageParam: lastPage => {
|
|
71
|
+
if (lastPage.pagination.currentPage === lastPage.pagination.pageCount) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
return lastPage.pagination.currentPage + 1;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
const useGetTeamMemberByIdQuery = id => {
|
|
79
|
+
const client = useApiClient();
|
|
80
|
+
const businessId = useBusinessId();
|
|
81
|
+
return useQuery({
|
|
82
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers, id],
|
|
83
|
+
queryFn: async () => await client.businesses.getMemberById(businessId, id)
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export { useChangeTeamMemberRoleMutation, useDeleteTeamMemberMutation, useGetTeamMemberByIdQuery, useListTeamMembersInfiniteQuery };
|
|
88
|
+
//# sourceMappingURL=TeamMembersAPI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TeamMembersAPI.mjs","sources":["../../../../../src/apis/business/team/TeamMembersAPI.tsx"],"sourcesContent":["import { useApiClient, useBusinessId } from \"@/context\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport {\n\tTeamMemberListRequest,\n\tSBApiException,\n\tSBTeamMember,\n\tSBTeamMemberRole,\n\tSBRequestOptions,\n\tSBList,\n} from \"@smartbills/sdk\";\nimport {\n\tQueryKey,\n\tuseInfiniteQuery,\n\tuseMutation,\n\tuseQuery,\n\tInfiniteData,\n} from \"@tanstack/react-query\";\nimport { SBApiKeys } from \"@/apis/SBApiKeys\";\nimport { AxiosRequestConfig } from \"axios\";\n\nexport const useChangeTeamMemberRoleMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBTeamMember, SBApiException, { id: number }>({\n\t\tmutationFn: async ({ id }) => {\n\t\t\treturn client.businesses.deleteMember(businessId, id);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [SBApiKeys.Businesses, businessId],\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMembers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport const useDeleteTeamMemberMutation = () => {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\n\treturn useMutation<SBTeamMember, SBApiException, { id: number }>({\n\t\tmutationFn: async ({ id }) => {\n\t\t\treturn client.businesses.deleteMember(businessId, id);\n\t\t},\n\t\tonSuccess: (_, { id }) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: [\n\t\t\t\t\tSBApiKeys.Businesses,\n\t\t\t\t\tbusinessId,\n\t\t\t\t\tSBApiKeys.TeamMembers,\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t});\n};\n\nexport function useListTeamMembersInfiniteQuery(\n\trequest: TeamMemberListRequest = { page: 1, pageSize: 25 },\n\toptions?: SBRequestOptions,\n\tconfig?: AxiosRequestConfig<TeamMemberListRequest>,\n) {\n\tconst client = useApiClient();\n\tconst queryClient = useQueryClient();\n\tconst businessId = useBusinessId();\n\treturn useInfiniteQuery<\n\t\tSBList<SBTeamMember>,\n\t\tSBApiException,\n\t\tInfiniteData<SBList<SBTeamMember>>,\n\t\tQueryKey,\n\t\tnumber\n\t>({\n\t\tinitialPageParam: request.page || 1,\n\t\tqueryKey: [\n\t\t\tSBApiKeys.Businesses,\n\t\t\tbusinessId,\n\t\t\tSBApiKeys.TeamMembers,\n\t\t\trequest,\n\t\t\toptions,\n\t\t],\n\t\tqueryFn: async ({ pageParam = 1 }) => {\n\t\t\treturn await client.businesses.listMembers(\n\t\t\t\tbusinessId,\n\t\t\t\t{ ...request, page: pageParam },\n\t\t\t\toptions,\n\t\t\t\tconfig,\n\t\t\t);\n\t\t},\n\t\tgetPreviousPageParam: (firstPage) => {\n\t\t\tif (firstPage.pagination.currentPage === 1) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn firstPage.pagination.currentPage - 1;\n\t\t},\n\t\tgetNextPageParam: (lastPage) => {\n\t\t\tif (\n\t\t\t\tlastPage.pagination.currentPage ===\n\t\t\t\tlastPage.pagination.pageCount\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\treturn lastPage.pagination.currentPage + 1;\n\t\t},\n\t});\n}\n\nexport const useGetTeamMemberByIdQuery = (id: number) => {\n\tconst client = useApiClient();\n\tconst businessId = useBusinessId();\n\treturn useQuery<SBTeamMember, SBApiException>({\n\t\tqueryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.TeamMembers, id],\n\t\tqueryFn: async () =>\n\t\t\tawait client.businesses.getMemberById(businessId, id),\n\t});\n};\n"],"names":["useChangeTeamMemberRoleMutation","client","useApiClient","queryClient","useQueryClient","businessId","useBusinessId","useMutation","mutationFn","id","businesses","deleteMember","onSuccess","_","invalidateQueries","queryKey","SBApiKeys","Businesses","TeamMembers","useDeleteTeamMemberMutation","useListTeamMembersInfiniteQuery","request","page","pageSize","options","config","useInfiniteQuery","initialPageParam","queryFn","pageParam","listMembers","getPreviousPageParam","firstPage","pagination","currentPage","undefined","getNextPageParam","lastPage","pageCount","useGetTeamMemberByIdQuery","useQuery","getMemberById"],"mappings":"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"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { useApiClient, useBusinessId } from '../../../context/ApiContext.mjs';
|
|
2
|
+
import { useInfiniteQuery, useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
3
|
+
import { SBApiKeys } from '../../SBApiKeys.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Hook for listing vendors with infinite pagination
|
|
7
|
+
* @param request - Request parameters for listing vendors
|
|
8
|
+
* @param options - Optional request options including businessId and userId
|
|
9
|
+
* @param config - Optional Axios request configuration
|
|
10
|
+
* @returns Infinite query result for implementing infinite scrolling with vendor data
|
|
11
|
+
*/
|
|
12
|
+
function useListBusinessVendorsInfiniteQuery(request = {
|
|
13
|
+
page: 1,
|
|
14
|
+
pageSize: 25
|
|
15
|
+
}, options, config) {
|
|
16
|
+
const client = useApiClient();
|
|
17
|
+
const businessId = useBusinessId();
|
|
18
|
+
return useInfiniteQuery({
|
|
19
|
+
initialPageParam: request.page || 1,
|
|
20
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors, request, options],
|
|
21
|
+
queryFn: async ({
|
|
22
|
+
pageParam = 1
|
|
23
|
+
}) => {
|
|
24
|
+
const paginatedRequest = {
|
|
25
|
+
...request,
|
|
26
|
+
page: pageParam
|
|
27
|
+
};
|
|
28
|
+
return client.businesses.vendors.listAsync(businessId, paginatedRequest, options, config);
|
|
29
|
+
},
|
|
30
|
+
getNextPageParam: lastPage => {
|
|
31
|
+
if (lastPage.pagination && lastPage.pagination.currentPage < lastPage.pagination.pageCount) {
|
|
32
|
+
return lastPage.pagination.currentPage + 1;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Hook for retrieving a vendor by ID
|
|
40
|
+
* @param id - The ID of the vendor to retrieve
|
|
41
|
+
* @param options - Optional request options including businessId and userId
|
|
42
|
+
* @param config - Optional Axios request configuration
|
|
43
|
+
* @returns Query result containing the vendor data, loading state, and error information
|
|
44
|
+
*/
|
|
45
|
+
function useGetBusinessVendorByIdQuery(id, options, config) {
|
|
46
|
+
const client = useApiClient();
|
|
47
|
+
const businessId = useBusinessId();
|
|
48
|
+
return useQuery({
|
|
49
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors, id, options],
|
|
50
|
+
queryFn: async () => {
|
|
51
|
+
return client.businesses.vendors.getByIdAsync(businessId, id, options, config);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Hook for deleting a vendor
|
|
57
|
+
* @param mutationOptions - Optional React Query mutation options
|
|
58
|
+
* @returns Mutation function and state for deleting vendors
|
|
59
|
+
*/
|
|
60
|
+
function useDeleteBusinessVendorMutation(mutationOptions) {
|
|
61
|
+
const queryClient = useQueryClient();
|
|
62
|
+
const businessId = useBusinessId();
|
|
63
|
+
return useMutation({
|
|
64
|
+
mutationFn: async ({
|
|
65
|
+
vendorId,
|
|
66
|
+
options,
|
|
67
|
+
config
|
|
68
|
+
}) => {
|
|
69
|
+
const client = useApiClient();
|
|
70
|
+
return client.businesses.vendors.deleteAsync(businessId, vendorId, options, config);
|
|
71
|
+
},
|
|
72
|
+
onSuccess: (data, variables, context) => {
|
|
73
|
+
queryClient.invalidateQueries({
|
|
74
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors]
|
|
75
|
+
});
|
|
76
|
+
// Call custom onSuccess if provided
|
|
77
|
+
mutationOptions?.onSuccess?.(data, variables, context);
|
|
78
|
+
},
|
|
79
|
+
// Spread the rest of the mutation options
|
|
80
|
+
...mutationOptions
|
|
81
|
+
// Note: We're not spreading onSuccess to avoid overriding our implementation
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Hook for creating a new vendor
|
|
86
|
+
* @param mutationOptions - Optional React Query mutation options
|
|
87
|
+
* @returns Mutation function and state for creating vendors
|
|
88
|
+
*/
|
|
89
|
+
function useCreateBusinessVendorMutation(mutationOptions) {
|
|
90
|
+
const queryClient = useQueryClient();
|
|
91
|
+
const businessId = useBusinessId();
|
|
92
|
+
return useMutation({
|
|
93
|
+
mutationFn: async ({
|
|
94
|
+
request,
|
|
95
|
+
options,
|
|
96
|
+
config
|
|
97
|
+
}) => {
|
|
98
|
+
const client = useApiClient();
|
|
99
|
+
return client.businesses.vendors.createAsync(businessId, request, options, config);
|
|
100
|
+
},
|
|
101
|
+
onSuccess: (data, variables, context) => {
|
|
102
|
+
queryClient.invalidateQueries({
|
|
103
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors]
|
|
104
|
+
});
|
|
105
|
+
// Call custom onSuccess if provided
|
|
106
|
+
mutationOptions?.onSuccess?.(data, variables, context);
|
|
107
|
+
},
|
|
108
|
+
// Spread the rest of the mutation options
|
|
109
|
+
...mutationOptions
|
|
110
|
+
// Note: We're not spreading onSuccess to avoid overriding our implementation
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Hook for updating a vendor
|
|
115
|
+
* @param mutationOptions - Optional React Query mutation options
|
|
116
|
+
* @returns Mutation function and state for updating vendors
|
|
117
|
+
*/
|
|
118
|
+
function useUpdateBusinessVendorMutation(mutationOptions) {
|
|
119
|
+
const queryClient = useQueryClient();
|
|
120
|
+
const businessId = useBusinessId();
|
|
121
|
+
return useMutation({
|
|
122
|
+
mutationFn: async ({
|
|
123
|
+
vendorId,
|
|
124
|
+
request,
|
|
125
|
+
options,
|
|
126
|
+
config
|
|
127
|
+
}) => {
|
|
128
|
+
const client = useApiClient();
|
|
129
|
+
return client.businesses.vendors.updateAsync(businessId, vendorId, request, options, config);
|
|
130
|
+
},
|
|
131
|
+
onSuccess: (data, variables, context) => {
|
|
132
|
+
queryClient.invalidateQueries({
|
|
133
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors]
|
|
134
|
+
});
|
|
135
|
+
queryClient.invalidateQueries({
|
|
136
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors, variables.vendorId]
|
|
137
|
+
});
|
|
138
|
+
// Call custom onSuccess if provided
|
|
139
|
+
mutationOptions?.onSuccess?.(data, variables, context);
|
|
140
|
+
},
|
|
141
|
+
// Spread the rest of the mutation options
|
|
142
|
+
...mutationOptions
|
|
143
|
+
// Note: We're not spreading onSuccess to avoid overriding our implementation
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Hook for getting a vendor link token for Deck connection
|
|
148
|
+
* @param mutationOptions - Optional React Query mutation options
|
|
149
|
+
* @returns Mutation function and state for getting a vendor link token
|
|
150
|
+
*/
|
|
151
|
+
function useGetBusinessVendorLinkTokenMutation(mutationOptions) {
|
|
152
|
+
const client = useApiClient();
|
|
153
|
+
const businessId = useBusinessId();
|
|
154
|
+
return useMutation({
|
|
155
|
+
mutationFn: async ({
|
|
156
|
+
options,
|
|
157
|
+
config
|
|
158
|
+
}) => {
|
|
159
|
+
return client.businesses.vendors.getLinkToken(businessId, options, config);
|
|
160
|
+
},
|
|
161
|
+
// Spread all mutation options
|
|
162
|
+
...mutationOptions
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Hook for connecting a vendor to Deck
|
|
167
|
+
* @param mutationOptions - Optional React Query mutation options
|
|
168
|
+
* @returns Mutation function and state for connecting vendors
|
|
169
|
+
*/
|
|
170
|
+
function useConnectBusinessVendorMutation(mutationOptions) {
|
|
171
|
+
const queryClient = useQueryClient();
|
|
172
|
+
const businessId = useBusinessId();
|
|
173
|
+
return useMutation({
|
|
174
|
+
mutationFn: async ({
|
|
175
|
+
request,
|
|
176
|
+
options,
|
|
177
|
+
config
|
|
178
|
+
}) => {
|
|
179
|
+
const client = useApiClient();
|
|
180
|
+
return client.businesses.vendors.connectAsync(businessId, request, options, config);
|
|
181
|
+
},
|
|
182
|
+
onSuccess: (data, variables, context) => {
|
|
183
|
+
queryClient.invalidateQueries({
|
|
184
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors]
|
|
185
|
+
});
|
|
186
|
+
// Call custom onSuccess if provided
|
|
187
|
+
mutationOptions?.onSuccess?.(data, variables, context);
|
|
188
|
+
},
|
|
189
|
+
// Spread the rest of the mutation options
|
|
190
|
+
...mutationOptions
|
|
191
|
+
// Note: We're not spreading onSuccess to avoid overriding our implementation
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Hook for manually refreshing a vendor's data from Deck
|
|
196
|
+
* @param mutationOptions - Optional React Query mutation options
|
|
197
|
+
* @returns Mutation function and state for refreshing vendors
|
|
198
|
+
*/
|
|
199
|
+
function useRefreshBusinessVendorMutation(mutationOptions) {
|
|
200
|
+
const queryClient = useQueryClient();
|
|
201
|
+
const businessId = useBusinessId();
|
|
202
|
+
return useMutation({
|
|
203
|
+
mutationFn: async ({
|
|
204
|
+
vendorId,
|
|
205
|
+
options,
|
|
206
|
+
config
|
|
207
|
+
}) => {
|
|
208
|
+
const client = useApiClient();
|
|
209
|
+
return client.businesses.vendors.manualRefresh(businessId, vendorId, options, config);
|
|
210
|
+
},
|
|
211
|
+
onSuccess: (data, variables, context) => {
|
|
212
|
+
queryClient.invalidateQueries({
|
|
213
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors]
|
|
214
|
+
});
|
|
215
|
+
queryClient.invalidateQueries({
|
|
216
|
+
queryKey: [SBApiKeys.Businesses, businessId, SBApiKeys.Vendors, variables.vendorId]
|
|
217
|
+
});
|
|
218
|
+
// Call custom onSuccess if provided
|
|
219
|
+
mutationOptions?.onSuccess?.(data, variables, context);
|
|
220
|
+
},
|
|
221
|
+
// Spread the rest of the mutation options
|
|
222
|
+
...mutationOptions
|
|
223
|
+
// Note: We're not spreading onSuccess to avoid overriding our implementation
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export { useConnectBusinessVendorMutation, useCreateBusinessVendorMutation, useDeleteBusinessVendorMutation, useGetBusinessVendorByIdQuery, useGetBusinessVendorLinkTokenMutation, useListBusinessVendorsInfiniteQuery, useRefreshBusinessVendorMutation, useUpdateBusinessVendorMutation };
|
|
228
|
+
//# sourceMappingURL=VendorsAPI.mjs.map
|