Show page number with standard desktop progress bar

This commit is contained in:
schroda
2026-07-15 14:28:15 +02:00
parent d2304e6880
commit 79ac2c3d27
3 changed files with 16 additions and 22 deletions

View File

@@ -39,6 +39,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
- (**Reader**) Simplify changing settings in desktop sidebar - (**Reader**) Simplify changing settings in desktop sidebar
- (**Reader**) Ignore tap zone clicks while window does not have focus - (**Reader**) Ignore tap zone clicks while window does not have focus
- (**Reader**) Improve preloading pages from the previous/next chapter - (**Reader**) Improve preloading pages from the previous/next chapter
- (**Reader**) Show page number with the standard desktop progress bar selected
- (**Category**) Require confirmation before deleting a category - (**Category**) Require confirmation before deleting a category
- (**Download**) Respect manga chapter filters on bulk manga download in the library - (**Download**) Respect manga chapter filters on bulk manga download in the library
- (**History**) Show only the last read chapter per manga - (**History**) Show only the last read chapter per manga

View File

@@ -31,11 +31,15 @@ const BaseReaderPageNumber = ({
Pick<NavbarContextType, 'readerNavBarWidth'>) => { Pick<NavbarContextType, 'readerNavBarWidth'>) => {
const scrollbar = useReaderScrollbarStore((state) => state); const scrollbar = useReaderScrollbarStore((state) => state);
const { currentPageIndex, pages, totalPages } = useReaderPagesStore('currentPageIndex', 'pages', 'totalPages'); const { currentPageIndex, pages, totalPages } = useReaderPagesStore('currentPageIndex', 'pages', 'totalPages');
const { readingDirection, shouldShowPageNumber, progressBarType } = useReaderSettingsStore((state) => ({ const { readingDirection, shouldShowPageNumber, progressBarType, progressBarSize } = useReaderSettingsStore(
(state) => ({
readingDirection: state.readingDirection.value, readingDirection: state.readingDirection.value,
shouldShowPageNumber: state.shouldShowPageNumber, shouldShowPageNumber: state.shouldShowPageNumber,
progressBarType: state.progressBarType, progressBarType: state.progressBarType,
})); progressBarSize: state.progressBarSize,
}),
);
const progressBarSizeInset = isDesktop && progressBarType === ProgressBarType.STANDARD ? progressBarSize : 0;
const safeAreaInset = useReaderSettingsStore((state) => state.safeAreaInset); const safeAreaInset = useReaderSettingsStore((state) => state.safeAreaInset);
const isMaximized = useReaderProgressBarStore('isMaximized'); const isMaximized = useReaderProgressBarStore('isMaximized');
@@ -55,14 +59,6 @@ const BaseReaderPageNumber = ({
return null; return null;
} }
if (isDesktop && progressBarType === ProgressBarType.STANDARD) {
return null;
}
if (isMaximized && progressBarType === ProgressBarType.HIDDEN) {
return null;
}
return ( return (
<Stack <Stack
sx={{ sx={{
@@ -70,7 +66,7 @@ const BaseReaderPageNumber = ({
left: readerNavBarWidth, left: readerNavBarWidth,
right: 0, right: 0,
bottom: (theme) => bottom: (theme) =>
`calc(${theme.spacing(1)} + max(${scrollbar.xSize}px, ${safeAreaInset.bottom ? 'env(safe-area-inset-bottom)' : '0px'}))`, `calc(${theme.spacing(1)} + ${progressBarSizeInset}px + max(${scrollbar.xSize}px, ${safeAreaInset.bottom ? 'env(safe-area-inset-bottom)' : '0px'}))`,
alignItems: 'center', alignItems: 'center',
transition: (theme) => `left 0.${theme.transitions.duration.shortest}s`, transition: (theme) => `left 0.${theme.transitions.duration.shortest}s`,
}} }}

View File

@@ -12,7 +12,6 @@ import { ReaderSettingProgressBarType } from '@/features/reader/overlay/progress
import { ReaderSettingProgressBarSize } from '@/features/reader/overlay/progress-bar/settings/components/ReaderSettingProgressBarSize.tsx'; import { ReaderSettingProgressBarSize } from '@/features/reader/overlay/progress-bar/settings/components/ReaderSettingProgressBarSize.tsx';
import { ReaderSettingProgressBarPosition } from '@/features/reader/overlay/progress-bar/settings/components/ReaderSettingProgressBarPosition.tsx'; import { ReaderSettingProgressBarPosition } from '@/features/reader/overlay/progress-bar/settings/components/ReaderSettingProgressBarPosition.tsx';
import type { IReaderSettings, ReaderSettingsTypeProps } from '@/features/reader/Reader.types.ts'; import type { IReaderSettings, ReaderSettingsTypeProps } from '@/features/reader/Reader.types.ts';
import { ProgressBarType, ReaderOverlayMode } from '@/features/reader/Reader.types.ts';
import { ReaderSettingOverlayMode } from '@/features/reader/overlay/settings/ReaderSettingOverlayMode.tsx'; import { ReaderSettingOverlayMode } from '@/features/reader/overlay/settings/ReaderSettingOverlayMode.tsx';
import { CheckboxInput } from '@/base/components/inputs/CheckboxInput.tsx'; import { CheckboxInput } from '@/base/components/inputs/CheckboxInput.tsx';
import { ReaderSettingBackgroundColor } from '@/features/reader/settings/general/components/ReaderSettingBackgroundColor.tsx'; import { ReaderSettingBackgroundColor } from '@/features/reader/settings/general/components/ReaderSettingBackgroundColor.tsx';
@@ -53,13 +52,11 @@ export const ReaderGeneralSettings = ({
progressBarPositionAutoVertical={settings.progressBarPositionAutoVertical} progressBarPositionAutoVertical={settings.progressBarPositionAutoVertical}
updateSetting={updateSetting} updateSetting={updateSetting}
/> />
{(settings.progressBarType === ProgressBarType.HIDDEN || overlayMode === ReaderOverlayMode.MOBILE) && (
<CheckboxInput <CheckboxInput
label={t`Show page number`} label={t`Show page number`}
checked={settings.shouldShowPageNumber} checked={settings.shouldShowPageNumber}
onChange={(_, checked) => updateSetting('shouldShowPageNumber', checked)} onChange={(_, checked) => updateSetting('shouldShowPageNumber', checked)}
/> />
)}
<ReaderSettingSafeAreaInset <ReaderSettingSafeAreaInset
safeAreaInset={settings.safeAreaInset} safeAreaInset={settings.safeAreaInset}
updateSetting={(value) => updateSetting('safeAreaInset', value)} updateSetting={(value) => updateSetting('safeAreaInset', value)}