diff --git a/src/components/manga/CategorySelect.tsx b/src/components/manga/CategorySelect.tsx index a2735217..4347621e 100644 --- a/src/components/manga/CategorySelect.tsx +++ b/src/components/manga/CategorySelect.tsx @@ -107,6 +107,7 @@ export default function CategorySelect(props: IProps) { /> )} label={categoryInfo.category.name} + key={categoryInfo.category.id} /> ))} diff --git a/src/screens/manga/Manga.tsx b/src/screens/manga/Manga.tsx index 043f5bcc..3cb9e3ca 100644 --- a/src/screens/manga/Manga.tsx +++ b/src/screens/manga/Manga.tsx @@ -58,9 +58,10 @@ export default function Manga() { const [manga, setManga] = useState(); const [chapters, setChapters] = useState([]); - const [fetchedChapters, setFetchedChapters] = useState(false); const [noChaptersFound, setNoChaptersFound] = useState(false); const [chapterUpdateTriggerer, setChapterUpdateTriggerer] = useState(0); + const [fetchedOnline, setFetchedOnline] = useState(false); + const [fetchedOffline, setFetchedOffline] = useState(false); const [, setWsClient] = useState(); const [{ queue }, setQueueState] = useState(initialQueue); @@ -110,18 +111,19 @@ export default function Manga() { }, [manga]); useEffect(() => { - const shouldFetchOnline = fetchedChapters && chapterUpdateTriggerer === 0; + const shouldFetchOnline = fetchedOffline && !fetchedOnline; + client.get(`/api/v1/manga/${id}/chapters?onlineFetch=${shouldFetchOnline}`) .then((response) => response.data) .then((data) => { - if (data.length === 0 && fetchedChapters) { + if (data.length === 0 && fetchedOffline) { makeToast('No chapters found', 'warning'); setNoChaptersFound(true); } setChapters(data); }) - .then(() => setFetchedChapters(true)); - }, [chapters.length, fetchedChapters, chapterUpdateTriggerer]); + .then(() => { setFetchedOffline(true); setFetchedOnline(shouldFetchOnline); }); + }, [chapters.length, fetchedOffline, chapterUpdateTriggerer]); return (