Use gql for "global metadata"

This commit is contained in:
schroda
2023-09-01 20:24:40 +02:00
parent b9480736c3
commit 80cb06dfd5
4 changed files with 48 additions and 13 deletions

View File

@@ -20,6 +20,7 @@ import {
MetadataKeyValuePair,
} from '@/typings';
import requestManager, { RequestManager } from '@/lib/requests/RequestManager.ts';
import { MetaType } from '@/lib/graphql/generated/graphql.ts';
const APP_METADATA_KEY_PREFIX = 'webUI_';
@@ -362,3 +363,16 @@ export const requestUpdateCategoryMetadata = async (
category: ICategory,
keysToValues: MetadataKeyValuePair[],
): Promise<void[]> => requestUpdateMetadata(category, 'category', keysToValues);
export const convertGqlMetadata = (gqlMetadata?: MetaType[]): Metadata | undefined => {
if (!gqlMetadata) {
return undefined;
}
const metadata: Metadata = {};
gqlMetadata.forEach(({ key, value }) => {
metadata[key] = value;
});
return metadata;
};

View File

@@ -8,7 +8,12 @@
import { IManga, Metadata, MetadataHolder, IReaderSettings, MetadataKeyValuePair } from '@/typings';
import requestManager from '@/lib/requests/RequestManager.ts';
import { getMetadataFrom, requestUpdateMangaMetadata, requestUpdateServerMetadata } from '@/util/metadata';
import {
convertGqlMetadata,
getMetadataFrom,
requestUpdateMangaMetadata,
requestUpdateServerMetadata,
} from '@/util/metadata';
type UndefinedReaderSettings = {
[setting in keyof IReaderSettings]: IReaderSettings[setting] | undefined;
@@ -47,10 +52,11 @@ export const useDefaultReaderSettings = (): {
settings: IReaderSettings;
loading: boolean;
} => {
const { data: meta, isLoading } = requestManager.useGetGlobalMeta();
const settings = getReaderSettingsWithDefaultValueFallback<IReaderSettings>(meta);
const { data, loading } = requestManager.useGetGlobalMeta();
const metadata = convertGqlMetadata(data?.metas.nodes);
const settings = getReaderSettingsWithDefaultValueFallback<IReaderSettings>(metadata);
return { metadata: meta, settings, loading: isLoading };
return { metadata, settings, loading };
};
/**

View File

@@ -8,7 +8,7 @@
import { Metadata, ISearchSettings } from '@/typings';
import requestManager from '@/lib/requests/RequestManager.ts';
import { getMetadataFrom } from '@/util/metadata';
import { convertGqlMetadata, getMetadataFrom } from '@/util/metadata';
export const getDefaultSettings = (): ISearchSettings => ({
ignoreFilters: false,
@@ -24,8 +24,9 @@ export const useSearchSettings = (): {
settings: ISearchSettings;
loading: boolean;
} => {
const { data: meta, isLoading } = requestManager.useGetGlobalMeta();
const settings = getSearchSettingsWithDefaultValueFallback(meta);
const { data, loading } = requestManager.useGetGlobalMeta();
const metadata = convertGqlMetadata(data?.metas.nodes);
const settings = getSearchSettingsWithDefaultValueFallback(metadata);
return { metadata: meta, settings, loading: isLoading };
return { metadata, settings, loading };
};