Reader settings
This commit is contained in:
@@ -12,10 +12,6 @@ import { ReaderPageScaleMode, ReadingMode } from '@/modules/reader/types/Reader.
|
||||
export const APP_METADATA_KEY_PREFIX = 'webUI_';
|
||||
|
||||
const APP_METADATA_OBJECT: Record<AppMetadataKeys, undefined> = {
|
||||
staticNav: undefined,
|
||||
showPageNumber: undefined,
|
||||
loadNextOnEnding: undefined,
|
||||
skipDupChapters: undefined,
|
||||
migration: undefined,
|
||||
deleteChaptersManuallyMarkedRead: undefined,
|
||||
deleteChaptersWhileReading: undefined,
|
||||
@@ -60,8 +56,16 @@ const APP_METADATA_OBJECT: Record<AppMetadataKeys, undefined> = {
|
||||
progressBarPosition: undefined,
|
||||
readingMode: undefined,
|
||||
pageScaleMode: undefined,
|
||||
shouldScalePage: undefined,
|
||||
shouldOffsetDoubleSpreads: undefined,
|
||||
exitMode: undefined,
|
||||
customFilter: undefined,
|
||||
shouldSkipDupChapters: undefined,
|
||||
isStaticNav: undefined,
|
||||
overlayMode: undefined,
|
||||
shouldStretchPage: undefined,
|
||||
shouldShowPageNumber: undefined,
|
||||
backgroundColor: undefined,
|
||||
pageGap: undefined,
|
||||
};
|
||||
|
||||
export const VALID_APP_METADATA_KEYS = Object.keys(APP_METADATA_OBJECT);
|
||||
@@ -122,6 +126,11 @@ export const GLOBAL_METADATA_KEYS: AppMetadataKeys[] = [
|
||||
// themes
|
||||
'customThemes',
|
||||
'mangaThumbnailBackdrop',
|
||||
|
||||
// reader
|
||||
'exitMode',
|
||||
'customFilter',
|
||||
'shouldSkipDupChapters',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -203,7 +212,19 @@ export const METADATA_MIGRATIONS: IMetadataMigration[] = [
|
||||
},
|
||||
{
|
||||
oldKey: 'scalePage',
|
||||
newKey: 'shouldScalePage',
|
||||
newKey: 'shouldStretchPage',
|
||||
},
|
||||
{
|
||||
oldKey: 'skipDupChapters',
|
||||
newKey: 'shouldSkipDupChapters',
|
||||
},
|
||||
{
|
||||
oldKey: 'showPageNumber',
|
||||
newKey: 'shouldShowPageNumber',
|
||||
},
|
||||
{
|
||||
oldKey: 'staticNav',
|
||||
newKey: 'isStaticNav',
|
||||
},
|
||||
],
|
||||
values: [
|
||||
|
||||
@@ -31,14 +31,19 @@ export const convertValueFromMetadata = <T extends AllowedMetadataValueTypes = A
|
||||
return value as T;
|
||||
};
|
||||
|
||||
export const convertFromGqlMeta = (gqlMetadata?: MetaType[]): Metadata | undefined => {
|
||||
export const convertFromGqlMeta = (
|
||||
gqlMetadata?: MetaType[],
|
||||
filter: (key: string) => boolean = () => true,
|
||||
): Metadata | undefined => {
|
||||
if (!gqlMetadata) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const metadata: Metadata = {};
|
||||
gqlMetadata.forEach(({ key, value }) => {
|
||||
metadata[key] = value;
|
||||
if (filter(key)) {
|
||||
metadata[key] = value;
|
||||
}
|
||||
});
|
||||
|
||||
return metadata;
|
||||
|
||||
@@ -42,7 +42,7 @@ import { ChapterIdInfo } from '@/modules/chapter/services/Chapters.ts';
|
||||
import { CategoryIdInfo } from '@/modules/category/Category.types.ts';
|
||||
import { SourceType } from '@/lib/graphql/generated/graphql.ts';
|
||||
|
||||
export const extractOriginalKey = (key: string): string => key.split('_').slice(-1)[0];
|
||||
export const extractOriginalKey = (key: string) => key.split('_').slice(-1)[0];
|
||||
|
||||
export const getMetadataKey = (key: string, appPrefix: string = APP_METADATA_KEY_PREFIX) => {
|
||||
const isGlobalMetadataKey = GLOBAL_METADATA_KEYS.includes(key as AppMetadataKeys);
|
||||
|
||||
Reference in New Issue
Block a user