Files
jellyfin-web/src/apps/dashboard/features/users/api/useUser.ts
T
2025-10-18 00:28:44 +03:00

34 lines
942 B
TypeScript

import { Api } from '@jellyfin/sdk';
import { UserApiGetUserByIdRequest } from '@jellyfin/sdk/lib/generated-client';
import { getUserApi } from '@jellyfin/sdk/lib/utils/api/user-api';
import { useQuery } from '@tanstack/react-query';
import { useApi } from 'hooks/useApi';
export const QUERY_KEY = 'User';
const fetchUser = async (api?: Api, params?: UserApiGetUserByIdRequest) => {
if (!api) {
console.error('[useUser] No Api instance available');
return;
}
if (!params) {
console.error('[useUser] Missing request params');
return;
}
const response = await getUserApi(api).getUserById(params);
return response.data;
};
export const useUser = (params?: UserApiGetUserByIdRequest) => {
const { api } = useApi();
return useQuery({
queryKey: [ QUERY_KEY, params?.userId ],
queryFn: () => fetchUser(api, params),
enabled: !!api && !!params
});
};