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 [currentPageIndex, setCurrentPageIndex] = useState<TContext['currentPageIndex']>(0);
|
||||||
const [pageToScrollToIndex, setPageToScrollToIndex] = useState<TContext['pageToScrollToIndex']>(0);
|
const [pageToScrollToIndex, setPageToScrollToIndex] = useState<TContext['pageToScrollToIndex']>(0);
|
||||||
const [pageUrls, setPageUrls] = useState<TContext['pageUrls']>([]);
|
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 [pages, setPages] = useState<TContext['pages']>([createPageData('', 0)]);
|
||||||
const [transitionPageMode, setTransitionPageMode] = useState<TContext['transitionPageMode']>(
|
const [transitionPageMode, setTransitionPageMode] = useState<TContext['transitionPageMode']>(
|
||||||
ReaderTransitionPageMode.NONE,
|
ReaderTransitionPageMode.NONE,
|
||||||
|
|||||||
@@ -131,6 +131,25 @@ export const Reader = () => {
|
|||||||
setManga(mangaResponse.data?.manga);
|
setManga(mangaResponse.data?.manga);
|
||||||
}, [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
|
// set pages state
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const pagesPayload = pagesResponse.data?.fetchChapterPages;
|
const pagesPayload = pagesResponse.data?.fetchChapterPages;
|
||||||
@@ -151,6 +170,7 @@ export const Reader = () => {
|
|||||||
setCurrentPageIndex(initialReaderPageIndex);
|
setCurrentPageIndex(initialReaderPageIndex);
|
||||||
setPageToScrollToIndex(initialReaderPageIndex);
|
setPageToScrollToIndex(initialReaderPageIndex);
|
||||||
} else {
|
} else {
|
||||||
|
setArePagesFetched(false);
|
||||||
setCurrentPageIndex(0);
|
setCurrentPageIndex(0);
|
||||||
setPageToScrollToIndex(0);
|
setPageToScrollToIndex(0);
|
||||||
setTotalPages(0);
|
setTotalPages(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user