Files
mtdb_movie/common/resources/client/users/queries/use-normalized-models.ts
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

39 lines
985 B
TypeScript
Executable File

import {
keepPreviousData,
useQuery,
UseQueryOptions,
} from '@tanstack/react-query';
import {NormalizedModel} from '../../datatable/filters/normalized-model';
import {apiClient} from '../../http/query-client';
import {BackendResponse} from '../../http/backend-response/backend-response';
interface Response extends BackendResponse {
results: NormalizedModel[];
}
interface Params {
query?: string;
perPage?: number;
with?: string;
}
export function useNormalizedModels(
endpoint: string,
queryParams: Params,
queryOptions?: Omit<
UseQueryOptions<Response, unknown, Response, [string, Params]>,
'queryKey' | 'queryFn'
> | null,
) {
return useQuery({
queryKey: [endpoint, queryParams],
queryFn: () => fetchModels(endpoint, queryParams),
placeholderData: keepPreviousData,
...queryOptions,
});
}
async function fetchModels(endpoint: string, params: Params) {
return apiClient.get<Response>(endpoint, {params}).then(r => r.data);
}