Prevent hiding overlay on page change through overlay

This commit is contained in:
schroda
2024-12-13 02:15:18 +01:00
parent e944831862
commit aaf7fb7b30
4 changed files with 19 additions and 9 deletions

View File

@@ -43,7 +43,7 @@ export const ReaderNavBarDesktopPageNavigation = ({
currentPage.primary.index === pages.slice(-1)[0].primary.index,
direction,
)}
onClick={() => openPage('previous')}
onClick={() => openPage('previous', undefined, false)}
/>
<FormControl sx={{ flexBasis: '70%', flexGrow: 0, flexShrink: 0 }}>
<InputLabel id="reader-nav-bar-desktop-page-select">{t('reader.page_info.label.page')}</InputLabel>
@@ -51,7 +51,7 @@ export const ReaderNavBarDesktopPageNavigation = ({
labelId="reader-nav-bar-desktop-page-select"
label={t('reader.page_info.label.page')}
value={getNextIndexFromPage(currentPage)}
onChange={(e) => openPage(e.target.value as number)}
onChange={(e) => openPage(e.target.value as number, undefined, false)}
>
{pages.map((page) => (
<MenuItem key={getNextIndexFromPage(page)} value={getNextIndexFromPage(page)}>
@@ -68,7 +68,7 @@ export const ReaderNavBarDesktopPageNavigation = ({
!currentPageIndex,
direction,
)}
onClick={() => openPage('next')}
onClick={() => openPage('next', undefined, false)}
/>
</Stack>
);

View File

@@ -102,7 +102,7 @@ export const ReaderProgressBar = ({
? (slotProps?.progressBarPageTexts?.current?.sx ?? [])
: [slotProps?.progressBarPageTexts?.current?.sx]),
]}
onClick={() => openPage('previous', 'ltr')}
onClick={() => openPage('previous', 'ltr', false)}
>
{currentPage.name}
</ReaderProgressBarPageNumber>
@@ -126,6 +126,8 @@ export const ReaderProgressBar = ({
getOptionForDirection,
),
),
undefined,
false,
);
setIsDragging(true);
}}
@@ -145,6 +147,8 @@ export const ReaderProgressBar = ({
getOptionForDirection,
),
),
undefined,
false,
);
setIsDragging(true);
}}
@@ -200,7 +204,7 @@ export const ReaderProgressBar = ({
? (slotProps?.progressBarPageTexts?.total?.sx ?? [])
: [slotProps?.progressBarPageTexts?.total?.sx]),
]}
onClick={() => openPage('next', 'ltr')}
onClick={() => openPage('next', 'ltr', false)}
>
{totalPages}
</ReaderProgressBarPageNumber>

View File

@@ -237,7 +237,11 @@ export class ReaderControls {
});
}
static useOpenPage(): (page: number | 'previous' | 'next', forceDirection?: Direction) => void {
static useOpenPage(): (
page: number | 'previous' | 'next',
forceDirection?: Direction,
hideOverlay?: boolean,
) => void {
const { currentPageIndex, setPageToScrollToIndex, pages, transitionPageMode, setTransitionPageMode } =
userReaderStatePagesContext();
const { previousChapter, nextChapter } = useReaderStateChaptersContext();
@@ -263,14 +267,16 @@ export class ReaderControls {
const isContinuousReadingModeActive = isContinuousReadingMode(readingMode.value);
return useCallback(
(page, forceDirection = direction) => {
(page, forceDirection = direction, hideOverlay: boolean = true) => {
const convertedPage = getOptionForDirection(
page,
page === 'previous' ? 'next' : 'previous',
forceDirection,
);
setIsOverlayVisible(false);
if (hideOverlay) {
setIsOverlayVisible(false);
}
const shouldOpenPreviousChapter =
isFirstPage && isATransitionPageVisible && convertedPage === 'previous' && !!previousChapter;

View File

@@ -125,7 +125,7 @@ export const useHandleProgressDragging = (
return;
}
openPage(newPageIndex);
openPage(newPageIndex, undefined, false);
};
const handleMouseMove = (e: MouseEvent) => {