Files
negareh-console/src/pages/invoice/hooks/useInvoiceData.ts
T
2026-07-23 18:47:48 +03:30

39 lines
1.1 KiB
TypeScript

import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import * as api from "../service/InvoiceService";
export const useGetInvoices = (params: api.GetInvoicesParams) => {
return useQuery({
queryKey: ["invoices", params.statuses?.join(",") ?? ""],
queryFn: () => api.getInvoices(params),
});
};
export const useGetInvoiceTabCounts = () => {
return useQuery({
queryKey: ["invoice-tab-counts"],
queryFn: () => api.getInvoiceTabCounts(),
refetchInterval: 20_000,
});
};
export const useGetInvoiceDetail = (id: string) => {
return useQuery({
queryKey: ["invoice", id],
queryFn: () => api.getInvoiceDetail(id),
enabled: !!id,
});
};
export const useConfirmInvoiceItem = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: api.confrimInvoiceItem,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ["invoices"] });
queryClient.invalidateQueries({ queryKey: ["invoice"] });
queryClient.invalidateQueries({ queryKey: ["invoice-tab-counts"] });
},
});
};