Reset state on unmount
Prevent TypeErrors due to invalid previous state
This commit is contained in:
@@ -18,7 +18,7 @@ export const ReaderStatePagesContextProvider = ({ children }: { children: ReactN
|
||||
const [currentPageIndex, setCurrentPageIndex] = useState<TContext['currentPageIndex']>(0);
|
||||
const [pageToScrollToIndex, setPageToScrollToIndex] = useState<TContext['pageToScrollToIndex']>(0);
|
||||
const [pageUrls, setPageUrls] = useState<TContext['pageUrls']>([]);
|
||||
const [pageLoadStates, setPageLoadStates] = useState<TContext['pageLoadStates']>([]);
|
||||
const [pageLoadStates, setPageLoadStates] = useState<TContext['pageLoadStates']>([{ loaded: false }]);
|
||||
const [pages, setPages] = useState<TContext['pages']>([createPageData('', 0)]);
|
||||
const [transitionPageMode, setTransitionPageMode] = useState<TContext['transitionPageMode']>(
|
||||
ReaderTransitionPageMode.NONE,
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user