From c7ed7ed48fb3e07f5d80c01283fb5f64521ee001 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Tue, 27 Aug 2024 09:27:33 -0400 Subject: [PATCH] Fix activity log hooks --- src/apps/dashboard/routes/activity.tsx | 2 -- src/hooks/useLogEntries.tsx | 21 ++++++++++++--------- src/hooks/useUsers.tsx | 19 +++++++++++-------- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/apps/dashboard/routes/activity.tsx b/src/apps/dashboard/routes/activity.tsx index 21a7dfd446..39ae92272b 100644 --- a/src/apps/dashboard/routes/activity.tsx +++ b/src/apps/dashboard/routes/activity.tsx @@ -1,6 +1,4 @@ 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 { LogLevel } from '@jellyfin/sdk/lib/generated-client/models/log-level'; import type { UserDto } from '@jellyfin/sdk/lib/generated-client/models/user-dto'; diff --git a/src/hooks/useLogEntries.tsx b/src/hooks/useLogEntries.tsx index 748b8f656b..9f548087bf 100644 --- a/src/hooks/useLogEntries.tsx +++ b/src/hooks/useLogEntries.tsx @@ -1,18 +1,20 @@ import type { ActivityLogApiGetLogEntriesRequest } from '@jellyfin/sdk/lib/generated-client'; import type { AxiosRequestConfig } from 'axios'; +import type { Api } from '@jellyfin/sdk'; import { getActivityLogApi } from '@jellyfin/sdk/lib/utils/api/activity-log-api'; import { useQuery } from '@tanstack/react-query'; -import { JellyfinApiContext, useApi } from './useApi'; +import { useApi } from './useApi'; -const fetchGetLogEntries = async ( - currentApi: JellyfinApiContext, - requestParams: ActivityLogApiGetLogEntriesRequest, +const fetchLogEntries = async ( + api?: Api, + requestParams?: ActivityLogApiGetLogEntriesRequest, options?: AxiosRequestConfig ) => { - const { api } = currentApi; - - if (!api) return; + if (!api) { + console.warn('[fetchLogEntries] No API instance available'); + return; + } const response = await getActivityLogApi(api).getLogEntries(requestParams, { signal: options?.signal @@ -24,10 +26,11 @@ const fetchGetLogEntries = async ( export const useLogEntires = ( requestParams: ActivityLogApiGetLogEntriesRequest ) => { - const currentApi = useApi(); + const { api } = useApi(); return useQuery({ queryKey: ['LogEntries', requestParams], queryFn: ({ signal }) => - fetchGetLogEntries(currentApi, requestParams, { signal }) + fetchLogEntries(api, requestParams, { signal }), + enabled: !!api }); }; diff --git a/src/hooks/useUsers.tsx b/src/hooks/useUsers.tsx index 0a49c76d71..cc62d6b2c3 100644 --- a/src/hooks/useUsers.tsx +++ b/src/hooks/useUsers.tsx @@ -1,18 +1,20 @@ import type { AxiosRequestConfig } from 'axios'; +import type { Api } from '@jellyfin/sdk'; import type { UserApiGetUsersRequest } from '@jellyfin/sdk/lib/generated-client'; import { getUserApi } from '@jellyfin/sdk/lib/utils/api/user-api'; import { useQuery } from '@tanstack/react-query'; -import { type JellyfinApiContext, useApi } from './useApi'; +import { useApi } from './useApi'; -export const fetchGetUsers = async ( - currentApi: JellyfinApiContext, +const fetchUsers = async ( + api?: Api, requestParams?: UserApiGetUsersRequest, options?: AxiosRequestConfig ) => { - const { api } = currentApi; - - if (!api) return; + if (!api) { + console.warn('[fetchUsers] No API instance available'); + return; + } const response = await getUserApi(api).getUsers(requestParams, { signal: options?.signal @@ -22,10 +24,11 @@ export const fetchGetUsers = async ( }; export const useUsers = (requestParams?: UserApiGetUsersRequest) => { - const currentApi = useApi(); + const { api } = useApi(); return useQuery({ queryKey: ['Users'], queryFn: ({ signal }) => - fetchGetUsers(currentApi, requestParams, { signal }) + fetchUsers(api, requestParams, { signal }), + enabled: !!api }); };