Files
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

33 lines
846 B
TypeScript
Executable File

import {useQuery} from '@tanstack/react-query';
import {BackendResponse} from '../../http/backend-response/backend-response';
import {User} from '../user';
import {apiClient} from '../../http/query-client';
export interface FetchUseUserResponse extends BackendResponse {
user: User;
}
interface Params {
with: string[];
}
type UserId = number | string | 'me';
const queryKey = (id: UserId, params?: Params) => {
const key: any[] = ['users', `${id}`];
if (params) {
key.push(params);
}
return key;
};
export function useUser(id: UserId, params?: Params) {
return useQuery({
queryKey: queryKey(id, params),
queryFn: () => fetchUser(id, params),
});
}
function fetchUser(id: UserId, params?: Params): Promise<FetchUseUserResponse> {
return apiClient.get(`users/${id}`, {params}).then(response => response.data);
}