Improve scroll preservation data naming

This commit is contained in:
schroda
2026-04-13 16:11:54 +02:00
parent ea31889969
commit 684c9c3733

View File

@@ -89,8 +89,8 @@ interface ScrollPreservationInfo {
left: number; left: number;
top: number; top: number;
visibleElement: HTMLElement | undefined; visibleElement: HTMLElement | undefined;
visibleElementLeft: number; visibleElementOffsetLeft: number;
visibleElementTop: number; visibleElementOffsetTop: number;
} }
const useScrollPreservationData = ( const useScrollPreservationData = (
@@ -100,8 +100,8 @@ const useScrollPreservationData = (
left: 0, left: 0,
top: 0, top: 0,
visibleElement: undefined, visibleElement: undefined,
visibleElementLeft: 0, visibleElementOffsetLeft: 0,
visibleElementTop: 0, visibleElementOffsetTop: 0,
}); });
useEffect(() => { useEffect(() => {
@@ -117,8 +117,8 @@ const useScrollPreservationData = (
...dataRef.current, ...dataRef.current,
left: scrollElement.scrollLeft, left: scrollElement.scrollLeft,
top: scrollElement.scrollTop, top: scrollElement.scrollTop,
visibleElementLeft: visibleElement?.offsetLeft ?? 0, visibleElementOffsetLeft: visibleElement?.offsetLeft ?? 0,
visibleElementTop: visibleElement?.offsetTop ?? 0, visibleElementOffsetTop: visibleElement?.offsetTop ?? 0,
}; };
}; };
@@ -151,8 +151,8 @@ const useScrollPreservationData = (
dataRef.current = { dataRef.current = {
...dataRef.current, ...dataRef.current,
visibleElement: firstVisibleElement.target, visibleElement: firstVisibleElement.target,
visibleElementLeft: firstVisibleElement.target.offsetLeft, visibleElementOffsetLeft: firstVisibleElement.target.offsetLeft,
visibleElementTop: firstVisibleElement.target.offsetTop, visibleElementOffsetTop: firstVisibleElement.target.offsetTop,
}; };
}); });
const mutationObserver = new MutationObserver((entries) => { const mutationObserver = new MutationObserver((entries) => {
@@ -175,7 +175,7 @@ const useScrollPreservationData = (
}; };
const usePreserveOnLeadingPageRender = (scrollElementRef: RefObject<HTMLElement | null>, readingMode: ReadingMode) => { const usePreserveOnLeadingPageRender = (scrollElementRef: RefObject<HTMLElement | null>, readingMode: ReadingMode) => {
const preservationData = useScrollPreservationData(scrollElementRef); const preservationDataRef = useScrollPreservationData(scrollElementRef);
const isContinuousReadingModeActive = isContinuousReadingMode(readingMode); const isContinuousReadingModeActive = isContinuousReadingMode(readingMode);
const isContinuousVerticalReadingModeActive = isContinuousVerticalReadingMode(readingMode); const isContinuousVerticalReadingModeActive = isContinuousVerticalReadingMode(readingMode);
@@ -188,7 +188,8 @@ const usePreserveOnLeadingPageRender = (scrollElementRef: RefObject<HTMLElement
} }
const preserveScrollPosition: ResizeObserverCallback = (entries) => { const preserveScrollPosition: ResizeObserverCallback = (entries) => {
const { left, top, visibleElement, visibleElementLeft, visibleElementTop } = preservationData.current; const { left, top, visibleElement, visibleElementOffsetLeft, visibleElementOffsetTop } =
preservationDataRef.current;
if (!visibleElement) { if (!visibleElement) {
return; return;
@@ -216,8 +217,8 @@ const usePreserveOnLeadingPageRender = (scrollElementRef: RefObject<HTMLElement
return; return;
} }
const newLeft = left - visibleElementLeft + visibleElement.offsetLeft; const newLeft = left - visibleElementOffsetLeft + visibleElement.offsetLeft;
const newTop = top - visibleElementTop + visibleElement.offsetTop; const newTop = top - visibleElementOffsetTop + visibleElement.offsetTop;
scrollElement.scrollTo(newLeft, newTop); scrollElement.scrollTo(newLeft, newTop);
}; };
@@ -263,7 +264,8 @@ const usePreserveOnInfiniteScrollPreviousChapterInitialRender = (
const preserveScrollPosition = (): boolean => { const preserveScrollPosition = (): boolean => {
const scrollElement = scrollElementRef.current; const scrollElement = scrollElementRef.current;
const { left, top, visibleElementLeft, visibleElementTop, visibleElement } = preservationDataRef.current; const { left, top, visibleElementOffsetLeft, visibleElementOffsetTop, visibleElement } =
preservationDataRef.current;
if ( if (
!getReaderSettingsStore().shouldUseInfiniteScroll || !getReaderSettingsStore().shouldUseInfiniteScroll ||
@@ -288,8 +290,8 @@ const usePreserveOnInfiniteScrollPreviousChapterInitialRender = (
return false; return false;
} }
const newLeft = left - visibleElementLeft + visibleElement.offsetLeft; const newLeft = left - visibleElementOffsetLeft + visibleElement.offsetLeft;
const newTop = top - visibleElementTop + visibleElement.offsetTop; const newTop = top - visibleElementOffsetTop + visibleElement.offsetTop;
scrollElement.scrollTo(newLeft, newTop); scrollElement.scrollTo(newLeft, newTop);
return true; return true;