fix: fix: Display Loading Animation on Novel Screen
This commit is contained in:
@@ -336,6 +336,9 @@ export const useNovel = (novelPath: string, pluginId: string) => {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
setNovel(novel);
|
||||
|
||||
let pages: string[];
|
||||
if (novel.totalPages > 0) {
|
||||
pages = Array(novel.totalPages)
|
||||
@@ -344,49 +347,38 @@ export const useNovel = (novelPath: string, pluginId: string) => {
|
||||
} else {
|
||||
pages = (await getCustomPages(novel.id)).map(c => c.page);
|
||||
}
|
||||
if (pages.length) {
|
||||
setPages(pages);
|
||||
} else {
|
||||
setPages(['1']);
|
||||
}
|
||||
setNovel(novel);
|
||||
}, []);
|
||||
|
||||
const getChapters = useCallback(async () => {
|
||||
const page = pages[pageIndex];
|
||||
if (novel && page) {
|
||||
let chapters = await _getPageChapters(
|
||||
setPages(pages.length ? pages : ['1']);
|
||||
|
||||
const page = pages[pageIndex] || '1';
|
||||
let chapters = await _getPageChapters(
|
||||
novel.id,
|
||||
sort,
|
||||
novelSettings.filter,
|
||||
page,
|
||||
);
|
||||
|
||||
if (!chapters.length && Number(page)) {
|
||||
const sourcePage = await fetchPage(pluginId, novelPath, page);
|
||||
const sourceChapters = sourcePage.chapters.map(ch => ({
|
||||
...ch,
|
||||
page,
|
||||
}));
|
||||
await insertChapters(novel.id, sourceChapters);
|
||||
chapters = await _getPageChapters(
|
||||
novel.id,
|
||||
sort,
|
||||
novelSettings.filter,
|
||||
page,
|
||||
);
|
||||
if (!chapters.length && Number(page)) {
|
||||
const sourcePage = await fetchPage(pluginId, novelPath, page);
|
||||
const sourceChapters = sourcePage.chapters.map(ch => {
|
||||
return {
|
||||
...ch,
|
||||
page,
|
||||
};
|
||||
});
|
||||
await insertChapters(novel.id, sourceChapters);
|
||||
chapters = await _getPageChapters(
|
||||
novel.id,
|
||||
sort,
|
||||
novelSettings.filter,
|
||||
page,
|
||||
);
|
||||
}
|
||||
setChapters(chapters);
|
||||
}
|
||||
setChapters(chapters);
|
||||
setLoading(false);
|
||||
}, [novel, novelSettings, pageIndex]);
|
||||
}, [novelPath, pluginId, pageIndex, sort, novelSettings.filter]);
|
||||
|
||||
useEffect(() => {
|
||||
getNovel();
|
||||
}, []);
|
||||
useEffect(() => {
|
||||
getChapters().catch(e => showToast(e.message));
|
||||
}, [getChapters]);
|
||||
}, [getNovel]);
|
||||
|
||||
return {
|
||||
loading,
|
||||
|
||||
Reference in New Issue
Block a user