Improve scroll preservation data naming
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user