From 2297f36efb9aed7cf234cec1ed79d730b0f81102 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Thu, 19 Oct 2023 20:48:43 +0200 Subject: [PATCH] Add manga to default categories when adding to library --- src/components/manga/MangaDetails.tsx | 22 ++++++++++++++++++++-- src/i18n/locale/en.json | 10 +++++++++- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/components/manga/MangaDetails.tsx b/src/components/manga/MangaDetails.tsx index 19cbc91d..0e783644 100644 --- a/src/components/manga/MangaDetails.tsx +++ b/src/components/manga/MangaDetails.tsx @@ -167,6 +167,10 @@ function getValueOrUnknown(val?: string | null) { const MangaDetails: React.FC = ({ manga }) => { const { t } = useTranslation(); + const { data: categoriesData, loading: areCategoriesLoading } = requestManager.useGetCategories(); + const categories = categoriesData?.categories.nodes ?? []; + const defaultCategoryIds = categories.filter((category) => category.default).map((category) => category.id); + const [updateMangaCategories] = requestManager.useUpdateMangaCategories(); useEffect(() => { if (!manga.source) { @@ -175,11 +179,24 @@ const MangaDetails: React.FC = ({ manga }) => { }, [manga.source]); const addToLibrary = () => { - requestManager.updateManga(manga.id, { inLibrary: true }); + Promise.all([ + requestManager.updateManga(manga.id, { inLibrary: true }).response, + updateMangaCategories({ + variables: { input: { id: manga.id, patch: { addToCategories: defaultCategoryIds } } }, + }), + ]) + .then(() => makeToast(t('library.info.label.added_to_library'), 'success')) + .catch(() => { + makeToast(t('library.error.label.add_to_library'), 'error'); + }); }; const removeFromLibrary = () => { - requestManager.updateManga(manga.id, { inLibrary: false }); + Promise.all([requestManager.updateManga(manga.id, { inLibrary: false }).response]) + .then(() => makeToast(t('library.info.label.removed_from_library'), 'success')) + .catch(() => { + makeToast(t('library.error.label.remove_from_library'), 'error'); + }); }; return ( @@ -208,6 +225,7 @@ const MangaDetails: React.FC = ({ manga }) => {