Use new "metas" mutations

This commit is contained in:
schroda
2026-01-24 21:04:06 +01:00
parent 14d7ec0ae5
commit 474b98abb5
16 changed files with 791 additions and 347 deletions

View File

@@ -289,6 +289,7 @@ export class ReaderService {
return;
}
const key = getMetadataKey(setting, profile !== undefined ? [profile?.toString()] : undefined);
const metaValue = JSON.stringify(value);
const { cache } = requestManager.graphQLClient.client;
@@ -299,7 +300,7 @@ export class ReaderService {
data: {
__typename: 'GlobalMetaType',
key,
value: JSON.stringify(value),
value: metaValue,
},
});
cache.modify({
@@ -307,7 +308,12 @@ export class ReaderService {
metas(existingMetas, { readField }) {
return {
...existingMetas,
nodes: updateMetadataList(key, existingMetas?.nodes, readField, () => reference),
nodes: updateMetadataList(
[{ key, value: metaValue }],
existingMetas?.nodes,
readField,
() => reference,
),
};
},
},
@@ -319,14 +325,19 @@ export class ReaderService {
__typename: 'MangaMetaType',
mangaId: manga.id,
key,
value: JSON.stringify(value),
value: metaValue,
},
});
cache.modify({
id: cache.identify({ __typename: 'MangaType', id: manga.id }),
fields: {
meta(existingMetas, { readField }) {
return updateMetadataList(key, existingMetas, readField, () => reference);
return updateMetadataList(
[{ key, value: metaValue }],
existingMetas,
readField,
() => reference,
);
},
},
});
@@ -363,8 +374,8 @@ export class ReaderService {
}
const deleteSetting = isGlobalSetting
? () => requestManager.deleteGlobalMeta(key).response
: () => requestManager.deleteMangaMeta(manga.id, key).response;
? () => requestManager.deleteGlobalMeta({ keys: [key] }).response
: () => requestManager.deleteMangaMeta({ items: [{ mangaIds: [manga.id], keys: [key] }] }).response;
deleteSetting().catch((e) =>
makeToast(t`Could not save the reader settings to the server`, 'error', getErrorMessage(e)),
);

View File

@@ -224,7 +224,7 @@ export const updateReaderSettings = async <Setting extends keyof IReaderSettings
value: IReaderSettings[Setting],
isGlobal: boolean = false,
profile?: ReadingMode,
): Promise<void[]> => {
): Promise<void> => {
const isGlobalSetting = isGlobal || GLOBAL_READER_SETTING_KEYS.includes(setting);
if (isGlobalSetting) {
return requestUpdateServerMetadata(
@@ -244,6 +244,6 @@ export const createUpdateReaderSettings =
manga: Pick<MangaType, 'id'> & GqlMetaHolder,
handleError: (error: any) => void = defaultPromiseErrorHandler('createUpdateReaderSettings'),
profile?: ReadingMode,
): ((...args: OmitFirst<Parameters<typeof updateReaderSettings<Settings>>>) => Promise<void | void[]>) =>
): ((...args: OmitFirst<Parameters<typeof updateReaderSettings<Settings>>>) => Promise<void>) =>
(setting, value, isGlobal) =>
updateReaderSettings(manga, setting, value, isGlobal, profile).catch(handleError);