diff --git a/src/modules/reader/contexts/state/ReaderStatePagesContextProvider.tsx b/src/modules/reader/contexts/state/ReaderStatePagesContextProvider.tsx index 80cbd2ed..a078f582 100644 --- a/src/modules/reader/contexts/state/ReaderStatePagesContextProvider.tsx +++ b/src/modules/reader/contexts/state/ReaderStatePagesContextProvider.tsx @@ -18,7 +18,7 @@ export const ReaderStatePagesContextProvider = ({ children }: { children: ReactN const [currentPageIndex, setCurrentPageIndex] = useState(0); const [pageToScrollToIndex, setPageToScrollToIndex] = useState(0); const [pageUrls, setPageUrls] = useState([]); - const [pageLoadStates, setPageLoadStates] = useState([]); + const [pageLoadStates, setPageLoadStates] = useState([{ loaded: false }]); const [pages, setPages] = useState([createPageData('', 0)]); const [transitionPageMode, setTransitionPageMode] = useState( ReaderTransitionPageMode.NONE, diff --git a/src/modules/reader/screens/Reader.tsx b/src/modules/reader/screens/Reader.tsx index 1187a85e..dc09bd26 100644 --- a/src/modules/reader/screens/Reader.tsx +++ b/src/modules/reader/screens/Reader.tsx @@ -131,6 +131,25 @@ export const Reader = () => { setManga(mangaResponse.data?.manga); }, [mangaResponse.data?.manga]); + // reset states + useEffect( + () => () => { + setManga(undefined); + setReaderStateChapters({ + mangaChapters: [], + chapters: [], + }); + + setCurrentPageIndex(0); + setPageToScrollToIndex(0); + setTotalPages(0); + setPages([createPageData('', 0)]); + setPageUrls([]); + setPageLoadStates([{ loaded: false }]); + }, + [], + ); + // set pages state useEffect(() => { const pagesPayload = pagesResponse.data?.fetchChapterPages; @@ -151,6 +170,7 @@ export const Reader = () => { setCurrentPageIndex(initialReaderPageIndex); setPageToScrollToIndex(initialReaderPageIndex); } else { + setArePagesFetched(false); setCurrentPageIndex(0); setPageToScrollToIndex(0); setTotalPages(0);