Fix preserving scroll position on leading page render

4f10cb06e3 didn't fix it properly
This commit is contained in:
schroda
2026-06-15 15:29:58 +02:00
parent 0016d6d83a
commit ecd628a1d5
2 changed files with 2 additions and 10 deletions

View File

@@ -233,7 +233,6 @@ const BaseReaderViewer = ({
pageScaleMode, pageScaleMode,
shouldStretchPage, shouldStretchPage,
readerWidth, readerWidth,
themeDirection,
); );
useLayoutEffect(() => { useLayoutEffect(() => {

View File

@@ -24,7 +24,6 @@ import {
import { getPreviousNextChapterVisibility } from '@/features/reader/Reader.utils.ts'; import { getPreviousNextChapterVisibility } from '@/features/reader/Reader.utils.ts';
import type { ChapterIdInfo, TChapterReader } from '@/features/chapter/Chapter.types.ts'; import type { ChapterIdInfo, TChapterReader } from '@/features/chapter/Chapter.types.ts';
import { getReaderPagesStore, getReaderSettingsStore } from '@/features/reader/stores/ReaderStore.ts'; import { getReaderPagesStore, getReaderSettingsStore } from '@/features/reader/stores/ReaderStore.ts';
import type { Direction } from '@mui/material/styles';
const shouldPreserveOnResizeChange = ( const shouldPreserveOnResizeChange = (
readingMode: ReadingMode, readingMode: ReadingMode,
@@ -182,7 +181,6 @@ const usePreserveOnLeadingPageRender = (
scrollElementRef: RefObject<HTMLElement | null>, scrollElementRef: RefObject<HTMLElement | null>,
readingMode: ReadingMode, readingMode: ReadingMode,
readingDirection: ReadingDirection, readingDirection: ReadingDirection,
themeDirection: Direction,
) => { ) => {
const preservationDataRef = useScrollPreservationData(scrollElementRef); const preservationDataRef = useScrollPreservationData(scrollElementRef);
@@ -218,10 +216,6 @@ const usePreserveOnLeadingPageRender = (
return entry.target.offsetTop < top; return entry.target.offsetTop < top;
} }
if (themeDirection === 'rtl') {
return entry.target.offsetLeft < left;
}
return readingDirection === ReadingDirection.LTR return readingDirection === ReadingDirection.LTR
? entry.target.offsetLeft < left ? entry.target.offsetLeft < left
: entry.target.offsetLeft > left; : entry.target.offsetLeft > left;
@@ -263,7 +257,7 @@ const usePreserveOnLeadingPageRender = (
mutationObserver.disconnect(); mutationObserver.disconnect();
resizeObserver.disconnect(); resizeObserver.disconnect();
}; };
}, [isContinuousReadingModeActive, isContinuousVerticalReadingModeActive]); }, [isContinuousReadingModeActive, isContinuousVerticalReadingModeActive, readingDirection]);
}; };
const usePreserveOnInfiniteScrollPreviousChapterInitialRender = ( const usePreserveOnInfiniteScrollPreviousChapterInitialRender = (
@@ -376,7 +370,6 @@ export const useReaderPreserveScrollPosition = (
pageScaleMode: ReaderPageScaleMode, pageScaleMode: ReaderPageScaleMode,
shouldStretchPage: boolean, shouldStretchPage: boolean,
readerWidth: IReaderSettingsManga['readerWidth'], readerWidth: IReaderSettingsManga['readerWidth'],
themeDirection: Direction,
) => { ) => {
usePreserveOnInfiniteScrollPreviousChapterInitialRender( usePreserveOnInfiniteScrollPreviousChapterInitialRender(
scrollElementRef, scrollElementRef,
@@ -387,7 +380,7 @@ export const useReaderPreserveScrollPosition = (
visibleChapters, visibleChapters,
isContinuousReadingMode(readingMode), isContinuousReadingMode(readingMode),
); );
usePreserveOnLeadingPageRender(scrollElementRef, readingMode, readingDirection, themeDirection); usePreserveOnLeadingPageRender(scrollElementRef, readingMode, readingDirection);
usePreserveOnWindowResize(readingMode, pageScaleMode, currentPageIndex); usePreserveOnWindowResize(readingMode, pageScaleMode, currentPageIndex);
usePreserveOnValueChange(readingDirection, currentPageIndex); usePreserveOnValueChange(readingDirection, currentPageIndex);
usePreserveOnValueChange(readingMode, currentPageIndex); usePreserveOnValueChange(readingMode, currentPageIndex);