Update "pagesToSpreadState" during render
Gets rid of an unnecessary rendering
This commit is contained in:
@@ -132,10 +132,17 @@ const BaseReaderViewer = forwardRef(
|
|||||||
|
|
||||||
const handleClick = ReaderControls.useHandleClick(scrollElementRef.current);
|
const handleClick = ReaderControls.useHandleClick(scrollElementRef.current);
|
||||||
|
|
||||||
|
const previousTotalPages = useRef(totalPages);
|
||||||
const [pagesToSpreadState, setPagesToSpreadState] = useState<ReaderPageSpreadState[]>(
|
const [pagesToSpreadState, setPagesToSpreadState] = useState<ReaderPageSpreadState[]>(
|
||||||
pageLoadStates.map(({ url }) => ({ url, isSpread: false })),
|
pageLoadStates.map(({ url }) => ({ url, isSpread: false })),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const resetPagesSpreadState = previousTotalPages.current !== totalPages;
|
||||||
|
if (resetPagesSpreadState) {
|
||||||
|
previousTotalPages.current = totalPages;
|
||||||
|
setPagesToSpreadState(pageLoadStates.map(({ url }) => ({ url, isSpread: false })));
|
||||||
|
}
|
||||||
|
|
||||||
const imageRefs = useRef<(HTMLElement | null)[]>(pages.map(() => null));
|
const imageRefs = useRef<(HTMLElement | null)[]>(pages.map(() => null));
|
||||||
|
|
||||||
const actualPages = useMemo(() => {
|
const actualPages = useMemo(() => {
|
||||||
@@ -190,11 +197,6 @@ const BaseReaderViewer = forwardRef(
|
|||||||
});
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
// reset spread state
|
|
||||||
useLayoutEffect(() => {
|
|
||||||
setPagesToSpreadState(Array(totalPages).fill(false));
|
|
||||||
}, [totalPages]);
|
|
||||||
|
|
||||||
useReaderConvertPagesForReadingMode(
|
useReaderConvertPagesForReadingMode(
|
||||||
currentPageIndex,
|
currentPageIndex,
|
||||||
actualPages,
|
actualPages,
|
||||||
|
|||||||
Reference in New Issue
Block a user