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"] }); }, }); };