31 lines
918 B
TypeScript
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;
|
|
}
|