Fix preserving scroll position on leading page render
4f10cb06e3 didn't fix it properly
This commit is contained in:
@@ -233,7 +233,6 @@ const BaseReaderViewer = ({
|
|||||||
pageScaleMode,
|
pageScaleMode,
|
||||||
shouldStretchPage,
|
shouldStretchPage,
|
||||||
readerWidth,
|
readerWidth,
|
||||||
themeDirection,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
useLayoutEffect(() => {
|
useLayoutEffect(() => {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user