Prevent hiding overlay on page change through overlay
This commit is contained in:
@@ -43,7 +43,7 @@ export const ReaderNavBarDesktopPageNavigation = ({
|
|||||||
currentPage.primary.index === pages.slice(-1)[0].primary.index,
|
currentPage.primary.index === pages.slice(-1)[0].primary.index,
|
||||||
direction,
|
direction,
|
||||||
)}
|
)}
|
||||||
onClick={() => openPage('previous')}
|
onClick={() => openPage('previous', undefined, false)}
|
||||||
/>
|
/>
|
||||||
<FormControl sx={{ flexBasis: '70%', flexGrow: 0, flexShrink: 0 }}>
|
<FormControl sx={{ flexBasis: '70%', flexGrow: 0, flexShrink: 0 }}>
|
||||||
<InputLabel id="reader-nav-bar-desktop-page-select">{t('reader.page_info.label.page')}</InputLabel>
|
<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"
|
labelId="reader-nav-bar-desktop-page-select"
|
||||||
label={t('reader.page_info.label.page')}
|
label={t('reader.page_info.label.page')}
|
||||||
value={getNextIndexFromPage(currentPage)}
|
value={getNextIndexFromPage(currentPage)}
|
||||||
onChange={(e) => openPage(e.target.value as number)}
|
onChange={(e) => openPage(e.target.value as number, undefined, false)}
|
||||||
>
|
>
|
||||||
{pages.map((page) => (
|
{pages.map((page) => (
|
||||||
<MenuItem key={getNextIndexFromPage(page)} value={getNextIndexFromPage(page)}>
|
<MenuItem key={getNextIndexFromPage(page)} value={getNextIndexFromPage(page)}>
|
||||||
@@ -68,7 +68,7 @@ export const ReaderNavBarDesktopPageNavigation = ({
|
|||||||
!currentPageIndex,
|
!currentPageIndex,
|
||||||
direction,
|
direction,
|
||||||
)}
|
)}
|
||||||
onClick={() => openPage('next')}
|
onClick={() => openPage('next', undefined, false)}
|
||||||
/>
|
/>
|
||||||
</Stack>
|
</Stack>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ export const ReaderProgressBar = ({
|
|||||||
? (slotProps?.progressBarPageTexts?.current?.sx ?? [])
|
? (slotProps?.progressBarPageTexts?.current?.sx ?? [])
|
||||||
: [slotProps?.progressBarPageTexts?.current?.sx]),
|
: [slotProps?.progressBarPageTexts?.current?.sx]),
|
||||||
]}
|
]}
|
||||||
onClick={() => openPage('previous', 'ltr')}
|
onClick={() => openPage('previous', 'ltr', false)}
|
||||||
>
|
>
|
||||||
{currentPage.name}
|
{currentPage.name}
|
||||||
</ReaderProgressBarPageNumber>
|
</ReaderProgressBarPageNumber>
|
||||||
@@ -126,6 +126,8 @@ export const ReaderProgressBar = ({
|
|||||||
getOptionForDirection,
|
getOptionForDirection,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
undefined,
|
||||||
|
false,
|
||||||
);
|
);
|
||||||
setIsDragging(true);
|
setIsDragging(true);
|
||||||
}}
|
}}
|
||||||
@@ -145,6 +147,8 @@ export const ReaderProgressBar = ({
|
|||||||
getOptionForDirection,
|
getOptionForDirection,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
undefined,
|
||||||
|
false,
|
||||||
);
|
);
|
||||||
setIsDragging(true);
|
setIsDragging(true);
|
||||||
}}
|
}}
|
||||||
@@ -200,7 +204,7 @@ export const ReaderProgressBar = ({
|
|||||||
? (slotProps?.progressBarPageTexts?.total?.sx ?? [])
|
? (slotProps?.progressBarPageTexts?.total?.sx ?? [])
|
||||||
: [slotProps?.progressBarPageTexts?.total?.sx]),
|
: [slotProps?.progressBarPageTexts?.total?.sx]),
|
||||||
]}
|
]}
|
||||||
onClick={() => openPage('next', 'ltr')}
|
onClick={() => openPage('next', 'ltr', false)}
|
||||||
>
|
>
|
||||||
{totalPages}
|
{totalPages}
|
||||||
</ReaderProgressBarPageNumber>
|
</ReaderProgressBarPageNumber>
|
||||||
|
|||||||
@@ -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 } =
|
const { currentPageIndex, setPageToScrollToIndex, pages, transitionPageMode, setTransitionPageMode } =
|
||||||
userReaderStatePagesContext();
|
userReaderStatePagesContext();
|
||||||
const { previousChapter, nextChapter } = useReaderStateChaptersContext();
|
const { previousChapter, nextChapter } = useReaderStateChaptersContext();
|
||||||
@@ -263,14 +267,16 @@ export class ReaderControls {
|
|||||||
const isContinuousReadingModeActive = isContinuousReadingMode(readingMode.value);
|
const isContinuousReadingModeActive = isContinuousReadingMode(readingMode.value);
|
||||||
|
|
||||||
return useCallback(
|
return useCallback(
|
||||||
(page, forceDirection = direction) => {
|
(page, forceDirection = direction, hideOverlay: boolean = true) => {
|
||||||
const convertedPage = getOptionForDirection(
|
const convertedPage = getOptionForDirection(
|
||||||
page,
|
page,
|
||||||
page === 'previous' ? 'next' : 'previous',
|
page === 'previous' ? 'next' : 'previous',
|
||||||
forceDirection,
|
forceDirection,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (hideOverlay) {
|
||||||
setIsOverlayVisible(false);
|
setIsOverlayVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
const shouldOpenPreviousChapter =
|
const shouldOpenPreviousChapter =
|
||||||
isFirstPage && isATransitionPageVisible && convertedPage === 'previous' && !!previousChapter;
|
isFirstPage && isATransitionPageVisible && convertedPage === 'previous' && !!previousChapter;
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ export const useHandleProgressDragging = (
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
openPage(newPageIndex);
|
openPage(newPageIndex, undefined, false);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleMouseMove = (e: MouseEvent) => {
|
const handleMouseMove = (e: MouseEvent) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user