27 lines
503 B
TypeScript
27 lines
503 B
TypeScript
|
|
import { useQuery } from '@tanstack/react-query';
|
||
|
|
import axios from 'axios';
|
||
|
|
|
||
|
|
type QueryDataOptions<T> = {
|
||
|
|
queryKey: string[];
|
||
|
|
url: string;
|
||
|
|
params?: Record<string, any>;
|
||
|
|
select?: (data: any) => T;
|
||
|
|
enabled?: boolean;
|
||
|
|
}
|
||
|
|
|
||
|
|
export function useQueryData<T = any>({
|
||
|
|
queryKey,
|
||
|
|
url,
|
||
|
|
params,
|
||
|
|
select,
|
||
|
|
enabled = true,
|
||
|
|
}: QueryDataOptions<T>) {
|
||
|
|
return useQuery<T>({
|
||
|
|
queryKey,
|
||
|
|
queryFn: () => axios.get(url, { params }).then((res) => res.data),
|
||
|
|
select,
|
||
|
|
enabled,
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|