Fix page shift when toggling "offset double spreads" setting
The pages should get shifted to - the left when enabling - the right when disabling the setting. Currently, the "page push" is inverted. This can cause the page that is most likely being read to get pushed out of the screen. Which then requires the user to change the page. Example: Active page: 1+2 Enable setting: -> 2 (currently) instead of -> 1
This commit is contained in:
@@ -50,6 +50,7 @@ const BaseReaderChapterViewer = ({
|
||||
currentPageIndex,
|
||||
setPages: setContextPages,
|
||||
setPageUrls: setContextPageUrls,
|
||||
setPageSpreadStates: setContextPageSpreadStates,
|
||||
setPageLoadStates: setContextPageLoadStates,
|
||||
setTotalPages: setContextTotalPages,
|
||||
setCurrentPageIndex: setContextCurrentPageIndex,
|
||||
@@ -93,6 +94,7 @@ const BaseReaderChapterViewer = ({
|
||||
| 'currentPageIndex'
|
||||
| 'setPages'
|
||||
| 'setPageUrls'
|
||||
| 'setPageSpreadStates'
|
||||
| 'setPageLoadStates'
|
||||
| 'setTotalPages'
|
||||
| 'setCurrentPageIndex'
|
||||
@@ -140,7 +142,7 @@ const BaseReaderChapterViewer = ({
|
||||
READER_DEFAULT_PAGES_STATE.pageLoadStates,
|
||||
);
|
||||
const [pagesToSpreadState, setPagesToSpreadState] = useState<ReaderPageSpreadState[]>(
|
||||
pageLoadStates.map(({ url }) => ({ url, isSpread: false })),
|
||||
READER_DEFAULT_PAGES_STATE.pageSpreadStates,
|
||||
);
|
||||
|
||||
const ref = useRef<HTMLDivElement>(null);
|
||||
@@ -201,7 +203,13 @@ const BaseReaderChapterViewer = ({
|
||||
() =>
|
||||
createUpdateReaderPageLoadState(
|
||||
actualPages,
|
||||
setPagesToSpreadState,
|
||||
(value) => {
|
||||
if (isCurrentChapterRef.current) {
|
||||
setContextPageSpreadStates(value);
|
||||
}
|
||||
|
||||
setPagesToSpreadState(value);
|
||||
},
|
||||
(value) => {
|
||||
if (isCurrentChapterRef.current) {
|
||||
setContextPageLoadStates(value);
|
||||
@@ -270,7 +278,7 @@ const BaseReaderChapterViewer = ({
|
||||
(value) => updateState(value, setPages, setContextPages),
|
||||
(value) => updateState(value, setPageUrls, setContextPageUrls),
|
||||
(value) => updateState(value, setPageLoadStates, setContextPageLoadStates),
|
||||
(value) => updateState(value, setPagesToSpreadState, noOp),
|
||||
(value) => updateState(value, setPagesToSpreadState, setContextPageSpreadStates),
|
||||
(value) => updateState(value, noOp, setContextCurrentPageIndex),
|
||||
(value) => {
|
||||
if ((isInitialChapter && !arePagesFetched) || scrollIntoView) {
|
||||
|
||||
Reference in New Issue
Block a user