Presupuestador_web/client/src/lib/hooks/useDataSource/useMany.tsx

31 lines
918 B
TypeScript
Raw Normal View History

2024-07-09 16:21:12 +00:00
import { QueryFunction, QueryKey, UseQueryResult, useQuery } from "@tanstack/react-query";
2024-06-06 11:05:54 +00:00
export interface IUseManyQueryOptions<
2024-07-09 16:21:12 +00:00
TUseManyQueryData = unknown,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
TUseManyQueryError = unknown
2024-06-06 11:05:54 +00:00
> {
2024-07-09 16:21:12 +00:00
queryKey: QueryKey;
queryFn: QueryFunction<TUseManyQueryData, QueryKey>;
enabled?: boolean;
select?: (data: TUseManyQueryData) => TUseManyQueryData;
queryOptions?: any;
2024-06-06 11:05:54 +00:00
}
export function useMany<TUseManyQueryData, TUseManyQueryError>(
2024-07-09 16:21:12 +00:00
options: IUseManyQueryOptions<TUseManyQueryData, TUseManyQueryError>
2024-06-06 11:05:54 +00:00
): UseQueryResult<TUseManyQueryData, TUseManyQueryError> {
2024-07-09 16:21:12 +00:00
const { queryKey, queryFn, enabled, select, queryOptions } = options;
2024-06-06 11:05:54 +00:00
2024-07-09 16:21:12 +00:00
const queryResponse = useQuery<TUseManyQueryData, TUseManyQueryError>({
queryKey,
queryFn,
keepPreviousData: true,
...queryOptions,
enabled,
select,
});
2024-06-06 11:05:54 +00:00
2024-07-09 16:21:12 +00:00
return queryResponse;
2024-06-06 11:05:54 +00:00
}