Preserve reader current page on "reader width" change

This commit is contained in:
schroda
2025-11-12 03:56:40 +01:00
parent 7b89fa10c5
commit bab55bafdb
3 changed files with 5 additions and 1 deletions

View File

@@ -34,7 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
- (**Reader**) Fix mouse drag scrolling inertia effect being locked at 60hz
- (**Reader**) Fix mouse cursor drift during drag scroll
- (**Reader**) Fix deletion of chapters while reading
- (**Reader**) Fix potential page loss during window resize while using continuous horizontal reading mode
- (**Reader**) Fix potential page loss (continuous horizontal mode window resize, reader width change, page scale change)
- (**Extension**) Fix handling obsolete extensions as updatable in case they are marked as having an available update
- (**Theme**) Fix loading of fonts defined in themes
- (**Reader**) Fix broken scrolling in continuous horizontal reading mode

View File

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

View File

@@ -9,6 +9,7 @@
import { RefObject, useCallback, useEffect, useLayoutEffect, useRef } from 'react';
import { useWindowEvent } from '@mantine/hooks';
import {
IReaderSettingsManga,
ReaderPageScaleMode,
ReaderStateChapters,
ReaderStatePages,
@@ -359,6 +360,7 @@ export const useReaderPreserveScrollPosition = (
setPageToScrollToIndex: ReaderStatePages['setPageToScrollToIndex'],
pageScaleMode: ReaderPageScaleMode,
shouldStretchPage: boolean,
readerWidth: IReaderSettingsManga['readerWidth'],
) => {
usePreserveOnInfiniteScrollPreviousChapterInitialRender(
scrollElementRef,
@@ -375,4 +377,5 @@ export const useReaderPreserveScrollPosition = (
usePreserveOnValueChange(readingMode, currentPageIndex, setPageToScrollToIndex);
usePreserveOnValueChange(pageScaleMode, currentPageIndex, setPageToScrollToIndex);
usePreserveOnValueChange(shouldStretchPage, currentPageIndex, setPageToScrollToIndex);
usePreserveOnValueChange(readerWidth, currentPageIndex, setPageToScrollToIndex);
};