diff --git a/src/apps/dashboard/features/tasks/api/queryKey.ts b/src/apps/dashboard/features/tasks/api/queryKey.ts new file mode 100644 index 0000000000..83d23b3568 --- /dev/null +++ b/src/apps/dashboard/features/tasks/api/queryKey.ts @@ -0,0 +1,4 @@ +export enum QueryKey { + Task = 'Task', + Tasks = 'Tasks' +}; diff --git a/src/apps/dashboard/features/tasks/api/useStartTask.ts b/src/apps/dashboard/features/tasks/api/useStartTask.ts index ef37b7e6e8..5258904ae3 100644 --- a/src/apps/dashboard/features/tasks/api/useStartTask.ts +++ b/src/apps/dashboard/features/tasks/api/useStartTask.ts @@ -3,7 +3,7 @@ import { getScheduledTasksApi } from '@jellyfin/sdk/lib/utils/api/scheduled-task import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import { queryClient } from 'utils/query/queryClient'; -import { QUERY_KEY } from './useTasks'; +import { QueryKey } from './queryKey'; export const useStartTask = () => { const { api } = useApi(); @@ -15,7 +15,7 @@ export const useStartTask = () => { ), onSuccess: () => { void queryClient.invalidateQueries({ - queryKey: [ QUERY_KEY ] + queryKey: [ QueryKey.Tasks ] }); } }); diff --git a/src/apps/dashboard/features/tasks/api/useStopTask.ts b/src/apps/dashboard/features/tasks/api/useStopTask.ts index 30421ee6af..49ce910c7f 100644 --- a/src/apps/dashboard/features/tasks/api/useStopTask.ts +++ b/src/apps/dashboard/features/tasks/api/useStopTask.ts @@ -3,7 +3,7 @@ import { getScheduledTasksApi } from '@jellyfin/sdk/lib/utils/api/scheduled-task import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import { queryClient } from 'utils/query/queryClient'; -import { QUERY_KEY } from './useTasks'; +import { QueryKey } from './queryKey'; export const useStopTask = () => { const { api } = useApi(); @@ -15,7 +15,7 @@ export const useStopTask = () => { ), onSuccess: () => { void queryClient.invalidateQueries({ - queryKey: [ QUERY_KEY ] + queryKey: [ QueryKey.Tasks ] }); } }); diff --git a/src/apps/dashboard/features/tasks/api/useTask.ts b/src/apps/dashboard/features/tasks/api/useTask.ts index 78a430cb57..9ced51614b 100644 --- a/src/apps/dashboard/features/tasks/api/useTask.ts +++ b/src/apps/dashboard/features/tasks/api/useTask.ts @@ -5,8 +5,7 @@ import { getScheduledTasksApi } from '@jellyfin/sdk/lib/utils/api/scheduled-task import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; - -export const QUERY_KEY = 'Task'; +import { QueryKey } from './queryKey'; const fetchTask = async ( api: Api, @@ -22,7 +21,7 @@ export const useTask = (params: ScheduledTasksApiGetTaskRequest) => { const { api } = useApi(); return useQuery({ - queryKey: [ QUERY_KEY, params.taskId ], + queryKey: [ QueryKey.Task, params.taskId ], queryFn: ({ signal }) => fetchTask(api!, params, { signal }), enabled: !!api diff --git a/src/apps/dashboard/features/tasks/api/useTasks.ts b/src/apps/dashboard/features/tasks/api/useTasks.ts index 7a4b6e1c4d..592d4c4c94 100644 --- a/src/apps/dashboard/features/tasks/api/useTasks.ts +++ b/src/apps/dashboard/features/tasks/api/useTasks.ts @@ -5,8 +5,7 @@ import { getScheduledTasksApi } from '@jellyfin/sdk/lib/utils/api/scheduled-task import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; - -export const QUERY_KEY = 'Tasks'; +import { QueryKey } from './queryKey'; const fetchTasks = async ( api: Api, @@ -22,7 +21,7 @@ export const useTasks = (params?: ScheduledTasksApiGetTasksRequest) => { const { api } = useApi(); return useQuery({ - queryKey: [ QUERY_KEY ], + queryKey: [ QueryKey.Tasks ], queryFn: ({ signal }) => fetchTasks(api!, params, { signal }), enabled: !!api diff --git a/src/apps/dashboard/features/tasks/api/useUpdateTask.ts b/src/apps/dashboard/features/tasks/api/useUpdateTask.ts index 6bc92eacad..4d3f7c87c0 100644 --- a/src/apps/dashboard/features/tasks/api/useUpdateTask.ts +++ b/src/apps/dashboard/features/tasks/api/useUpdateTask.ts @@ -3,7 +3,7 @@ import { getScheduledTasksApi } from '@jellyfin/sdk/lib/utils/api/scheduled-task import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import { queryClient } from 'utils/query/queryClient'; -import { QUERY_KEY } from './useTask'; +import { QueryKey } from './queryKey'; export const useUpdateTask = () => { const { api } = useApi(); @@ -15,7 +15,7 @@ export const useUpdateTask = () => { ), onSuccess: (_data, params) => { void queryClient.invalidateQueries({ - queryKey: [ QUERY_KEY, params.taskId ] + queryKey: [ QueryKey.Task, params.taskId ] }); } }); diff --git a/src/apps/dashboard/routes/tasks/index.tsx b/src/apps/dashboard/routes/tasks/index.tsx index 232fb34950..7dd66224d4 100644 --- a/src/apps/dashboard/routes/tasks/index.tsx +++ b/src/apps/dashboard/routes/tasks/index.tsx @@ -3,7 +3,7 @@ import Page from 'components/Page'; import globalize from 'lib/globalize'; import Box from '@mui/material/Box'; import Stack from '@mui/material/Stack'; -import { QUERY_KEY, useTasks } from '../../features/tasks/api/useTasks'; +import { useTasks } from '../../features/tasks/api/useTasks'; import { getCategories, getTasksByCategory } from '../../features/tasks/utils/tasks'; import Loading from 'components/loading/LoadingComponent'; import Tasks from '../../features/tasks/components/Tasks'; @@ -14,6 +14,7 @@ import Events, { Event } from 'utils/events'; import { ApiClient } from 'jellyfin-apiclient'; import { useApi } from 'hooks/useApi'; import { queryClient } from 'utils/query/queryClient'; +import { QueryKey } from 'apps/dashboard/features/tasks/api/queryKey'; export const Component = () => { const { __legacyApiClient__ } = useApi(); @@ -22,13 +23,13 @@ export const Component = () => { // TODO: Replace usage of the legacy apiclient when websocket support is added to the TS SDK. useEffect(() => { const onScheduledTasksUpdate = (_e: Event, _apiClient: ApiClient, info: TaskInfo[]) => { - queryClient.setQueryData([ QUERY_KEY ], info); + queryClient.setQueryData([ QueryKey.Tasks ], info); }; const fallbackInterval = setInterval(() => { if (!__legacyApiClient__?.isMessageChannelOpen()) { void queryClient.invalidateQueries({ - queryKey: [ QUERY_KEY ] + queryKey: [ QueryKey.Tasks ] }); } }, 1e4);