diff --git a/src/apps/dashboard/routes/libraries/display.tsx b/src/apps/dashboard/routes/libraries/display.tsx index 8b99942805..3c958bcb33 100644 --- a/src/apps/dashboard/routes/libraries/display.tsx +++ b/src/apps/dashboard/routes/libraries/display.tsx @@ -15,7 +15,7 @@ import Page from 'components/Page'; import ServerConnections from 'components/ServerConnections'; import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; import { QUERY_KEY as CONFIG_QUERY_KEY, useConfiguration } from 'hooks/useConfiguration'; -import { fetchNamedConfiguration, QUERY_KEY as NAMED_CONFIG_QUERY_KEY, useNamedConfiguration } from 'hooks/useNamedConfiguration'; +import { QUERY_KEY as NAMED_CONFIG_QUERY_KEY, NamedConfiguration, useNamedConfiguration } from 'hooks/useNamedConfiguration'; import globalize from 'lib/globalize'; import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom'; import { ActionData } from 'types/actionData'; @@ -29,9 +29,11 @@ export const action = async ({ request }: ActionFunctionArgs) => { const data = Object.fromEntries(formData); const { data: config } = await getConfigurationApi(api).getConfiguration(); - const namedConfig = await fetchNamedConfiguration(api, 'metadata'); - namedConfig.UseFileCreationTimeForDateAdded = data.DateAddedBehavior.toString() === '1'; + const metadataConfig: NamedConfiguration = { + UseFileCreationTimeForDateAdded: data.DateAddedBehavior.toString() === '1' + }; + config.EnableFolderView = data.DisplayFolderView?.toString() === 'on'; config.DisplaySpecialsWithinSeasons = data.DisplaySpecialsWithinSeasons?.toString() === 'on'; config.EnableGroupingIntoCollections = data.GroupMoviesIntoCollections?.toString() === 'on'; @@ -41,13 +43,13 @@ export const action = async ({ request }: ActionFunctionArgs) => { .updateConfiguration({ serverConfiguration: config }); await getConfigurationApi(api) - .updateNamedConfiguration({ key: 'metadata', body: namedConfig }); + .updateNamedConfiguration({ key: 'metadata', body: metadataConfig }); void queryClient.invalidateQueries({ queryKey: [ CONFIG_QUERY_KEY ] }); void queryClient.invalidateQueries({ - queryKey: [ NAMED_CONFIG_QUERY_KEY ] + queryKey: [ NAMED_CONFIG_QUERY_KEY, 'metadata' ] }); return { diff --git a/src/hooks/useConfiguration.ts b/src/hooks/useConfiguration.ts index ea6d865c92..81ddb79f03 100644 --- a/src/hooks/useConfiguration.ts +++ b/src/hooks/useConfiguration.ts @@ -16,7 +16,7 @@ export const useConfiguration = () => { const { api } = useApi(); return useQuery({ - queryKey: [QUERY_KEY], + queryKey: [ QUERY_KEY ], queryFn: ({ signal }) => fetchConfiguration(api!, { signal }), enabled: !!api }); diff --git a/src/hooks/useNamedConfiguration.ts b/src/hooks/useNamedConfiguration.ts index 66652b510a..138355b608 100644 --- a/src/hooks/useNamedConfiguration.ts +++ b/src/hooks/useNamedConfiguration.ts @@ -6,11 +6,11 @@ import type { AxiosRequestConfig } from 'axios'; export const QUERY_KEY = 'NamedConfiguration'; -interface NamedConfiguration { +export interface NamedConfiguration { [key: string]: unknown; } -export const fetchNamedConfiguration = async (api: Api, key: string, options?: AxiosRequestConfig) => { +const fetchNamedConfiguration = async (api: Api, key: string, options?: AxiosRequestConfig) => { const response = await getConfigurationApi(api).getNamedConfiguration({ key }, options); return response.data as unknown as NamedConfiguration; @@ -20,7 +20,7 @@ export const useNamedConfiguration = (key: string) => { const { api } = useApi(); return useQuery({ - queryKey: [ QUERY_KEY ], + queryKey: [ QUERY_KEY, key ], queryFn: ({ signal }) => fetchNamedConfiguration(api!, key, { signal }), enabled: !!api });