Uecko_ERP/modules/customer-invoices/src/web/hooks/use-customer-invoices-query.tsx

32 lines
1.1 KiB
TypeScript
Raw Normal View History

2025-10-18 19:57:52 +00:00
import { CriteriaDTO } from '@erp/core';
import { useDataSource } from "@erp/core/hooks";
import { DefaultError, QueryKey, useQuery } from "@tanstack/react-query";
import { CustomerInvoicesPage } from '../schemas';
export const CUSTOMER_INVOICES_QUERY_KEY = (criteria?: CriteriaDTO): QueryKey =>
["customer_invoices", criteria] as const;
type InvoicesQueryOptions = {
enabled?: boolean;
criteria?: CriteriaDTO
};
2025-06-24 18:38:57 +00:00
// Obtener todas las facturas
2025-10-18 19:57:52 +00:00
export const useInvoicesQuery = (options?: InvoicesQueryOptions) => {
2025-06-24 18:38:57 +00:00
const dataSource = useDataSource();
2025-10-18 19:57:52 +00:00
const enabled = options?.enabled ?? true;
const criteria = options?.criteria ?? {};
2025-06-24 18:38:57 +00:00
2025-10-18 19:57:52 +00:00
return useQuery<CustomerInvoicesPage, DefaultError>({
queryKey: CUSTOMER_INVOICES_QUERY_KEY(criteria),
queryFn: async ({ signal }) => {
return await dataSource.getList<CustomerInvoicesPage>("customer-invoices", {
2025-10-18 20:33:01 +00:00
...criteria,
2025-07-02 08:57:09 +00:00
signal,
});
2025-06-24 18:38:57 +00:00
},
2025-10-18 20:33:01 +00:00
enabled,
placeholderData: (previousData, previousQuery) => previousData, // Mantener datos previos mientras se carga nueva datos (antiguo `keepPreviousData`)
2025-06-24 18:38:57 +00:00
});
};