Rename "getNextIndexFromPage" to "getIndexOfPage"

This commit is contained in:
schroda
2026-02-21 15:06:09 +01:00
parent 4da2f67b75
commit 75cf18b254
7 changed files with 20 additions and 21 deletions

View File

@@ -13,7 +13,7 @@ import FormControl from '@mui/material/FormControl';
import InputLabel from '@mui/material/InputLabel'; import InputLabel from '@mui/material/InputLabel';
import { useLingui } from '@lingui/react/macro'; import { useLingui } from '@lingui/react/macro';
import { Select } from '@/base/components/inputs/Select.tsx'; import { Select } from '@/base/components/inputs/Select.tsx';
import { getNextIndexFromPage, getPage } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx'; import { getIndexOfPage, getPage } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
import { useGetOptionForDirection } from '@/features/theme/services/ThemeCreator.ts'; import { useGetOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
import { ReaderNavBarDesktopNextPreviousButton } from '@/features/reader/overlay/navigation/desktop/components/ReaderNavBarDesktopNextPreviousButton.tsx'; import { ReaderNavBarDesktopNextPreviousButton } from '@/features/reader/overlay/navigation/desktop/components/ReaderNavBarDesktopNextPreviousButton.tsx';
import { READING_DIRECTION_TO_THEME_DIRECTION } from '@/features/reader/settings/ReaderSettings.constants.tsx'; import { READING_DIRECTION_TO_THEME_DIRECTION } from '@/features/reader/settings/ReaderSettings.constants.tsx';
@@ -39,7 +39,7 @@ const BaseReaderNavBarDesktopPageNavigation = () => {
title={getOptionForDirection(t`Previous page`, t`Next page`, direction)} title={getOptionForDirection(t`Previous page`, t`Next page`, direction)}
disabled={getOptionForDirection( disabled={getOptionForDirection(
!currentPage.primary.index, !currentPage.primary.index,
getNextIndexFromPage(currentPage) === getNextIndexFromPage(pages.slice(-1)[0]), getIndexOfPage(currentPage) === getIndexOfPage(pages.slice(-1)[0]),
direction, direction,
)} )}
onClick={() => ReaderControls.openPage('previous', undefined, false)} onClick={() => ReaderControls.openPage('previous', undefined, false)}
@@ -49,11 +49,11 @@ const BaseReaderNavBarDesktopPageNavigation = () => {
<Select <Select
labelId="reader-nav-bar-desktop-page-select" labelId="reader-nav-bar-desktop-page-select"
label={t`Page`} label={t`Page`}
value={getNextIndexFromPage(currentPage)} value={getIndexOfPage(currentPage)}
onChange={(e) => ReaderControls.openPage(e.target.value as number, undefined, false)} onChange={(e) => ReaderControls.openPage(e.target.value as number, undefined, false)}
> >
{pages.map((page) => ( {pages.map((page) => (
<MenuItem key={getNextIndexFromPage(page)} value={getNextIndexFromPage(page)}> <MenuItem key={getIndexOfPage(page)} value={getIndexOfPage(page)}>
{page.name} {page.name}
</MenuItem> </MenuItem>
))} ))}
@@ -63,7 +63,7 @@ const BaseReaderNavBarDesktopPageNavigation = () => {
type="next" type="next"
title={getOptionForDirection(t`Next page`, t`Previous page`, direction)} title={getOptionForDirection(t`Next page`, t`Previous page`, direction)}
disabled={getOptionForDirection( disabled={getOptionForDirection(
getNextIndexFromPage(currentPage) === getNextIndexFromPage(pages.slice(-1)[0]), getIndexOfPage(currentPage) === getIndexOfPage(pages.slice(-1)[0]),
!currentPage.primary.index, !currentPage.primary.index,
direction, direction,
)} )}

View File

@@ -19,7 +19,7 @@ import { ReaderProgressBarSlotsContainer } from '@/features/reader/overlay/progr
import { ProgressBarHighlightReadPages } from '@/features/reader/overlay/progress-bar/components/ProgressBarHighlightReadPages.tsx'; import { ProgressBarHighlightReadPages } from '@/features/reader/overlay/progress-bar/components/ProgressBarHighlightReadPages.tsx';
import { ReaderProgressBarCurrentPageSlot } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarCurrentPageSlot.tsx'; import { ReaderProgressBarCurrentPageSlot } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarCurrentPageSlot.tsx';
import { import {
getNextIndexFromPage, getIndexOfPage,
getPage, getPage,
getPageForMousePos, getPageForMousePos,
getProgressBarPositionInfo, getProgressBarPositionInfo,
@@ -132,7 +132,7 @@ const BaseReaderProgressBar = ({
const isTouchEvent = 'touches' in e; const isTouchEvent = 'touches' in e;
ReaderControls.openPage( ReaderControls.openPage(
getNextIndexFromPage( getIndexOfPage(
getPageForMousePos( getPageForMousePos(
isTouchEvent ? e.touches[0] : e, isTouchEvent ? e.touches[0] : e,
progressBarRef.current, progressBarRef.current,

View File

@@ -27,8 +27,7 @@ export const getPage = (pageIndex: number, pages: ReaderStatePages['pages']): TR
* for the double page mode the secondary page index has to be used to be able to correctly detect if the last page is visible * for the double page mode the secondary page index has to be used to be able to correctly detect if the last page is visible
* *
*/ */
export const getNextIndexFromPage = (page: ReaderStatePages['pages'][number]) => export const getIndexOfPage = (page: ReaderStatePages['pages'][number]) => page.secondary?.index ?? page.primary.index;
page.secondary?.index ?? page.primary.index;
export const getNextPageIndex = ( export const getNextPageIndex = (
offset: 'previous' | 'next', offset: 'previous' | 'next',
@@ -37,7 +36,7 @@ export const getNextPageIndex = (
): number => { ): number => {
const offsetNumber = offset === 'previous' ? DirectionOffset.PREVIOUS : DirectionOffset.NEXT; const offsetNumber = offset === 'previous' ? DirectionOffset.PREVIOUS : DirectionOffset.NEXT;
return getNextIndexFromPage(pages[coerceIn(pagesIndex + offsetNumber, 0, pages.length - 1)]); return getIndexOfPage(pages[coerceIn(pagesIndex + offsetNumber, 0, pages.length - 1)]);
}; };
export const getPageForMousePos = ( export const getPageForMousePos = (

View File

@@ -12,7 +12,7 @@ import { Direction } from '@mui/material/styles';
import { d } from 'koration'; import { d } from 'koration';
import { msg, t } from '@lingui/core/macro'; import { msg, t } from '@lingui/core/macro';
import { import {
getNextIndexFromPage, getIndexOfPage,
getNextPageIndex, getNextPageIndex,
getPage, getPage,
getPageForMousePos, getPageForMousePos,
@@ -343,8 +343,8 @@ export class ReaderControls {
const currentPage = getPage(currentPageIndex, pages); const currentPage = getPage(currentPageIndex, pages);
const previousPageIndex = getNextPageIndex('previous', currentPage.pagesIndex, pages); const previousPageIndex = getNextPageIndex('previous', currentPage.pagesIndex, pages);
const nextPageIndex = getNextPageIndex('next', currentPage.pagesIndex, pages); const nextPageIndex = getNextPageIndex('next', currentPage.pagesIndex, pages);
const indexOfFirstPage = getNextIndexFromPage(pages[0]); const indexOfFirstPage = getIndexOfPage(pages[0]);
const indexOfLastPage = getNextIndexFromPage(pages[pages.length - 1]); const indexOfLastPage = getIndexOfPage(pages[pages.length - 1]);
const isFirstPage = currentPage.primary.index === 0; const isFirstPage = currentPage.primary.index === 0;
const isLastPage = currentPageIndex === indexOfLastPage; const isLastPage = currentPageIndex === indexOfLastPage;
@@ -614,7 +614,7 @@ export class ReaderControls {
return; return;
} }
const newPageIndex = getNextIndexFromPage( const newPageIndex = getIndexOfPage(
getPageForMousePos( getPageForMousePos(
coordinates, coordinates,
progressBarRef.current, progressBarRef.current,
@@ -625,7 +625,7 @@ export class ReaderControls {
), ),
); );
const hasCurrentPageIndexChanged = getNextIndexFromPage(currentPage) !== newPageIndex; const hasCurrentPageIndexChanged = getIndexOfPage(currentPage) !== newPageIndex;
if (!hasCurrentPageIndexChanged) { if (!hasCurrentPageIndexChanged) {
return; return;
} }

View File

@@ -8,7 +8,7 @@
import { useLayoutEffect, useState } from 'react'; import { useLayoutEffect, useState } from 'react';
import { ReaderPageSpreadState, ReaderStatePages, ReadingMode } from '@/features/reader/Reader.types.ts'; import { ReaderPageSpreadState, ReaderStatePages, ReadingMode } from '@/features/reader/Reader.types.ts';
import { getNextIndexFromPage, getPage } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx'; import { getIndexOfPage, getPage } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
import { createPagesData } from '@/features/reader/viewer/pager/ReaderPager.utils.tsx'; import { createPagesData } from '@/features/reader/viewer/pager/ReaderPager.utils.tsx';
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts'; import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
@@ -37,7 +37,7 @@ export const useReaderConvertPagesForReadingMode = (
const convertPagesToDoublePageMode = readingMode === ReadingMode.DOUBLE_PAGE; const convertPagesToDoublePageMode = readingMode === ReadingMode.DOUBLE_PAGE;
if (convertPagesToDoublePageMode) { if (convertPagesToDoublePageMode) {
if (!wasDoublePageMode) { if (!wasDoublePageMode) {
updateCurrentPageIndex(getNextIndexFromPage(getPage(currentPageIndex, actualPages))); updateCurrentPageIndex(getIndexOfPage(getPage(currentPageIndex, actualPages)));
} }
setPages(actualPages); setPages(actualPages);
setWasDoublePageMode(readingMode === ReadingMode.DOUBLE_PAGE); setWasDoublePageMode(readingMode === ReadingMode.DOUBLE_PAGE);

View File

@@ -9,7 +9,7 @@
import { MutableRefObject, useLayoutEffect } from 'react'; import { MutableRefObject, useLayoutEffect } from 'react';
import { Direction } from '@mui/material/styles'; import { Direction } from '@mui/material/styles';
import { ReaderStatePages, ReadingDirection } from '@/features/reader/Reader.types.ts'; import { ReaderStatePages, ReadingDirection } from '@/features/reader/Reader.types.ts';
import { getNextIndexFromPage, getPage } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx'; import { getIndexOfPage, getPage } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
import { getScrollIntoViewInlineOption } from '@/features/reader/viewer/pager/ReaderPager.utils.tsx'; import { getScrollIntoViewInlineOption } from '@/features/reader/viewer/pager/ReaderPager.utils.tsx';
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts'; import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
@@ -40,7 +40,7 @@ export const useReaderHandlePageSelection = (
}); });
} }
const newPageIndex = getNextIndexFromPage(pageToScrollTo); const newPageIndex = getIndexOfPage(pageToScrollTo);
const isLastPage = newPageIndex === totalPages - 1; const isLastPage = newPageIndex === totalPages - 1;
setPageToScrollToIndex(null); setPageToScrollToIndex(null);

View File

@@ -17,7 +17,7 @@ import {
} from '@/features/reader/Reader.types.ts'; } from '@/features/reader/Reader.types.ts';
import { applyStyles } from '@/base/utils/ApplyStyles.ts'; import { applyStyles } from '@/base/utils/ApplyStyles.ts';
import { createReaderPage } from '@/features/reader/viewer/pager/ReaderPager.utils.tsx'; import { createReaderPage } from '@/features/reader/viewer/pager/ReaderPager.utils.tsx';
import { getNextIndexFromPage, getPage } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx'; import { getIndexOfPage, getPage } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
const getPagePosition = ( const getPagePosition = (
pageType: 'first' | 'second', pageType: 'first' | 'second',
@@ -62,7 +62,7 @@ const BaseReaderDoublePagedPager = ({
createPage={(page, pagesIndex, shouldLoad, shouldDisplay, _setRef, ...baseProps) => { createPage={(page, pagesIndex, shouldLoad, shouldDisplay, _setRef, ...baseProps) => {
const { primary, secondary } = page; const { primary, secondary } = page;
const currentSecondaryPageIndex = getNextIndexFromPage(currentPage); const currentSecondaryPageIndex = getIndexOfPage(currentPage);
const hasSecondaryPage = !!secondary; const hasSecondaryPage = !!secondary;
const isPrimaryPage = currentPage.primary.index === primary.index; const isPrimaryPage = currentPage.primary.index === primary.index;