Presupuestador_web/client/src/lib/hooks/useDataSource/useMany.tsx
2024-07-09 18:21:12 +02:00

31 lines
918 B
TypeScript

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