mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Fix activity log hooks
This commit is contained in:
parent
694ba9718d
commit
c7ed7ed48f
3 changed files with 23 additions and 19 deletions
|
@ -1,6 +1,4 @@
|
||||||
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
||||||
import { getActivityLogApi } from '@jellyfin/sdk/lib/utils/api/activity-log-api';
|
|
||||||
import { getUserApi } from '@jellyfin/sdk/lib/utils/api/user-api';
|
|
||||||
import type { ActivityLogEntry } from '@jellyfin/sdk/lib/generated-client/models/activity-log-entry';
|
import type { ActivityLogEntry } from '@jellyfin/sdk/lib/generated-client/models/activity-log-entry';
|
||||||
import { LogLevel } from '@jellyfin/sdk/lib/generated-client/models/log-level';
|
import { LogLevel } from '@jellyfin/sdk/lib/generated-client/models/log-level';
|
||||||
import type { UserDto } from '@jellyfin/sdk/lib/generated-client/models/user-dto';
|
import type { UserDto } from '@jellyfin/sdk/lib/generated-client/models/user-dto';
|
||||||
|
|
|
@ -1,18 +1,20 @@
|
||||||
import type { ActivityLogApiGetLogEntriesRequest } from '@jellyfin/sdk/lib/generated-client';
|
import type { ActivityLogApiGetLogEntriesRequest } from '@jellyfin/sdk/lib/generated-client';
|
||||||
import type { AxiosRequestConfig } from 'axios';
|
import type { AxiosRequestConfig } from 'axios';
|
||||||
|
import type { Api } from '@jellyfin/sdk';
|
||||||
import { getActivityLogApi } from '@jellyfin/sdk/lib/utils/api/activity-log-api';
|
import { getActivityLogApi } from '@jellyfin/sdk/lib/utils/api/activity-log-api';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
|
||||||
import { JellyfinApiContext, useApi } from './useApi';
|
import { useApi } from './useApi';
|
||||||
|
|
||||||
const fetchGetLogEntries = async (
|
const fetchLogEntries = async (
|
||||||
currentApi: JellyfinApiContext,
|
api?: Api,
|
||||||
requestParams: ActivityLogApiGetLogEntriesRequest,
|
requestParams?: ActivityLogApiGetLogEntriesRequest,
|
||||||
options?: AxiosRequestConfig
|
options?: AxiosRequestConfig
|
||||||
) => {
|
) => {
|
||||||
const { api } = currentApi;
|
if (!api) {
|
||||||
|
console.warn('[fetchLogEntries] No API instance available');
|
||||||
if (!api) return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const response = await getActivityLogApi(api).getLogEntries(requestParams, {
|
const response = await getActivityLogApi(api).getLogEntries(requestParams, {
|
||||||
signal: options?.signal
|
signal: options?.signal
|
||||||
|
@ -24,10 +26,11 @@ const fetchGetLogEntries = async (
|
||||||
export const useLogEntires = (
|
export const useLogEntires = (
|
||||||
requestParams: ActivityLogApiGetLogEntriesRequest
|
requestParams: ActivityLogApiGetLogEntriesRequest
|
||||||
) => {
|
) => {
|
||||||
const currentApi = useApi();
|
const { api } = useApi();
|
||||||
return useQuery({
|
return useQuery({
|
||||||
queryKey: ['LogEntries', requestParams],
|
queryKey: ['LogEntries', requestParams],
|
||||||
queryFn: ({ signal }) =>
|
queryFn: ({ signal }) =>
|
||||||
fetchGetLogEntries(currentApi, requestParams, { signal })
|
fetchLogEntries(api, requestParams, { signal }),
|
||||||
|
enabled: !!api
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,18 +1,20 @@
|
||||||
import type { AxiosRequestConfig } from 'axios';
|
import type { AxiosRequestConfig } from 'axios';
|
||||||
|
import type { Api } from '@jellyfin/sdk';
|
||||||
import type { UserApiGetUsersRequest } from '@jellyfin/sdk/lib/generated-client';
|
import type { UserApiGetUsersRequest } from '@jellyfin/sdk/lib/generated-client';
|
||||||
import { getUserApi } from '@jellyfin/sdk/lib/utils/api/user-api';
|
import { getUserApi } from '@jellyfin/sdk/lib/utils/api/user-api';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
|
||||||
import { type JellyfinApiContext, useApi } from './useApi';
|
import { useApi } from './useApi';
|
||||||
|
|
||||||
export const fetchGetUsers = async (
|
const fetchUsers = async (
|
||||||
currentApi: JellyfinApiContext,
|
api?: Api,
|
||||||
requestParams?: UserApiGetUsersRequest,
|
requestParams?: UserApiGetUsersRequest,
|
||||||
options?: AxiosRequestConfig
|
options?: AxiosRequestConfig
|
||||||
) => {
|
) => {
|
||||||
const { api } = currentApi;
|
if (!api) {
|
||||||
|
console.warn('[fetchUsers] No API instance available');
|
||||||
if (!api) return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const response = await getUserApi(api).getUsers(requestParams, {
|
const response = await getUserApi(api).getUsers(requestParams, {
|
||||||
signal: options?.signal
|
signal: options?.signal
|
||||||
|
@ -22,10 +24,11 @@ export const fetchGetUsers = async (
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useUsers = (requestParams?: UserApiGetUsersRequest) => {
|
export const useUsers = (requestParams?: UserApiGetUsersRequest) => {
|
||||||
const currentApi = useApi();
|
const { api } = useApi();
|
||||||
return useQuery({
|
return useQuery({
|
||||||
queryKey: ['Users'],
|
queryKey: ['Users'],
|
||||||
queryFn: ({ signal }) =>
|
queryFn: ({ signal }) =>
|
||||||
fetchGetUsers(currentApi, requestParams, { signal })
|
fetchUsers(api, requestParams, { signal }),
|
||||||
|
enabled: !!api
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue