1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Add key to named configuration hook

This commit is contained in:
viown 2025-03-01 21:32:15 +03:00
parent 1ab2197200
commit 7713e31b44
3 changed files with 11 additions and 9 deletions

View file

@ -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 {

View file

@ -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
});

View file

@ -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
});