Update "pagesToSpreadState" during render

Gets rid of an unnecessary rendering
This commit is contained in:
schroda
2024-12-31 13:25:18 +01:00
parent 3bab657c52
commit 17cf8ec9d0

View File

@@ -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,