From 32c9bd76c74a0f19d6b2afb4bdef0ad0f2a3010a Mon Sep 17 00:00:00 2001 From: Aria Moradi Date: Fri, 17 Sep 2021 01:26:26 +0430 Subject: [PATCH] show a Delete button for downloaded chapters --- src/components/manga/ChapterCard.tsx | 17 +++++++++++++---- src/screens/manga/Manga.tsx | 18 ++++++------------ 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/components/manga/ChapterCard.tsx b/src/components/manga/ChapterCard.tsx index a9b5345d..007a1d4f 100644 --- a/src/components/manga/ChapterCard.tsx +++ b/src/components/manga/ChapterCard.tsx @@ -59,13 +59,13 @@ const useStyles = makeStyles((theme) => ({ interface IProps{ chapter: IChapter triggerChaptersUpdate: () => void - downloadingString: string + downloadStatusString: string } export default function ChapterCard(props: IProps) { const classes = useStyles(); const theme = useTheme(); - const { chapter, triggerChaptersUpdate, downloadingString } = props; + const { chapter, triggerChaptersUpdate, downloadStatusString } = props; const dateStr = chapter.uploadDate && new Date(chapter.uploadDate).toISOString().slice(0, 10); @@ -93,6 +93,13 @@ export default function ChapterCard(props: IProps) { handleClose(); }; + const deleteChapter = () => { + client.delete(`/api/v1/manga/${chapter.mangaId}/chapter/${chapter.index}`) + .then(() => triggerChaptersUpdate()); + + handleClose(); + }; + const readChapterColor = theme.palette.mode === 'dark' ? '#acacac' : '#b0b0b0'; return ( <> @@ -119,7 +126,7 @@ export default function ChapterCard(props: IProps) { {chapter.scanlator} {chapter.scanlator && ' '} {dateStr} - {downloadingString} + {downloadStatusString} @@ -134,7 +141,9 @@ export default function ChapterCard(props: IProps) { open={Boolean(anchorEl)} onClose={handleClose} > - {downloadingString.length === 0 + {downloadStatusString.endsWith('Downloaded') + && Delete} + {downloadStatusString.length === 0 && Download } sendChange('bookmarked', !chapter.bookmarked)}> {chapter.bookmarked && 'Remove bookmark'} diff --git a/src/screens/manga/Manga.tsx b/src/screens/manga/Manga.tsx index ff77cf78..043f5bcc 100644 --- a/src/screens/manga/Manga.tsx +++ b/src/screens/manga/Manga.tsx @@ -74,24 +74,18 @@ export default function Manga() { wsc.onmessage = (e) => { const data = JSON.parse(e.data) as IQueue; setQueueState(data); - - let shouldUpdate = false; - data.queue.forEach((q) => { - if (q.mangaId === manga?.id && q.state === 'Finished') { - shouldUpdate = true; - } - }); - if (shouldUpdate) { - triggerChaptersUpdate(); - } }; setWsClient(wsc); return () => wsc.close(); + }, []); + + useEffect(() => { + triggerChaptersUpdate(); }, [queue.length]); - const downloadingStringFor = (chapter: IChapter) => { + const downloadStatusStringFor = (chapter: IChapter) => { let rtn = ''; if (chapter.downloaded) { rtn = ' • Downloaded'; @@ -150,7 +144,7 @@ export default function Manga() { itemContent={(index:number) => ( )}