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

38 lines
930 B
TypeScript
Raw Normal View History

2024-06-06 11:05:54 +00:00
import {
QueryFunction,
QueryKey,
UseQueryResult,
useQuery,
} from '@tanstack/react-query';
export interface IUseManyQueryOptions<
TUseManyQueryData = unknown,
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;
}