From fab5f0b860305fc37884badcda1e50478fd0cda4 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Wed, 18 Sep 2024 12:50:04 +0200 Subject: [PATCH] Update downloadable check in chapter list Check for single chapter card was never updated and the downloadable condition was incorrectly changed with 6c01c222c367b72dfffc68afcea263c8b75aff4a --- src/components/chapter/ChapterCard.tsx | 6 +++++- src/lib/data/ChaptersWithMeta.ts | 9 +++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/components/chapter/ChapterCard.tsx b/src/components/chapter/ChapterCard.tsx index b5eda427..e1c96c70 100644 --- a/src/components/chapter/ChapterCard.tsx +++ b/src/components/chapter/ChapterCard.tsx @@ -38,6 +38,7 @@ import { ChapterReadInfo, ChapterScanlatorInfo, } from '@/lib/data/Chapters.ts'; +import { ChaptersWithMeta } from '@/lib/data/ChaptersWithMeta.ts'; type TChapter = ChapterIdInfo & ChapterMangaInfo & @@ -182,7 +183,10 @@ export const ChapterCard: React.FC = (props: IProps) => { chapter={chapter} allChapters={allChapters} handleSelection={() => onSelect(true)} - canBeDownloaded={!chapter.isDownloaded && !dc} + canBeDownloaded={ChaptersWithMeta.isDownloadable({ + chapter, + downloadChapter: dc, + })} /> )} diff --git a/src/lib/data/ChaptersWithMeta.ts b/src/lib/data/ChaptersWithMeta.ts index a543f4a0..1e3fd460 100644 --- a/src/lib/data/ChaptersWithMeta.ts +++ b/src/lib/data/ChaptersWithMeta.ts @@ -50,11 +50,12 @@ export class ChaptersWithMeta { return chapters.filter(({ chapter }) => !Chapters.isDownloaded(chapter)); } + static isDownloadable({ chapter, downloadChapter }: Chapter): boolean { + return !Chapters.isDownloaded(chapter) && (!downloadChapter || downloadChapter?.state === DownloadState.Error); + } + static getDownloadable(chapters: Chapter[]): Chapter[] { - return chapters.filter( - ({ chapter, downloadChapter }) => - !Chapters.isDownloaded(chapter) && (!downloadChapter || downloadChapter?.state === DownloadState.Error), - ); + return chapters.filter(this.isDownloadable); } static getBookmarked(chapters: Chapter[]): Chapter[] {