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 previousTotalPages = useRef(totalPages);
|
||||
const [pagesToSpreadState, setPagesToSpreadState] = useState<ReaderPageSpreadState[]>(
|
||||
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 actualPages = useMemo(() => {
|
||||
@@ -190,11 +197,6 @@ const BaseReaderViewer = forwardRef(
|
||||
});
|
||||
}, []);
|
||||
|
||||
// reset spread state
|
||||
useLayoutEffect(() => {
|
||||
setPagesToSpreadState(Array(totalPages).fill(false));
|
||||
}, [totalPages]);
|
||||
|
||||
useReaderConvertPagesForReadingMode(
|
||||
currentPageIndex,
|
||||
actualPages,
|
||||
|
||||
Reference in New Issue
Block a user