From 7716f189c31656ec1ba5de0f00f7973e01ec9a43 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Fri, 15 May 2026 16:30:43 +0800 Subject: [PATCH] fix(layout): keep header/footer transparent and fixed in scrolled mode, closes #4157 (#4168) Remove the redundant "Apply also in Scrolled Mode" options for bars and margins so scrolled mode renders the header/footer consistently with paginated mode: transparent, fixed in position, and not obscuring content. Co-authored-by: Claude Opus 4.7 (1M context) --- .../src/__tests__/services/constants.test.ts | 2 -- .../src/app/reader/components/BooksGrid.tsx | 6 ++-- .../app/reader/components/FoliateViewer.tsx | 24 +++++++--------- .../src/app/reader/components/ProgressBar.tsx | 8 ++---- .../src/app/reader/components/SectionInfo.tsx | 7 +++-- .../src/app/reader/hooks/usePagination.ts | 4 +-- .../src/app/reader/hooks/useTTSControl.ts | 5 ++-- .../src/components/settings/LayoutPanel.tsx | 28 ++----------------- apps/readest-app/src/services/constants.ts | 2 -- apps/readest-app/src/types/book.ts | 2 -- packages/foliate-js | 2 +- 11 files changed, 25 insertions(+), 65 deletions(-) diff --git a/apps/readest-app/src/__tests__/services/constants.test.ts b/apps/readest-app/src/__tests__/services/constants.test.ts index e0aa7dee..c5ee3485 100644 --- a/apps/readest-app/src/__tests__/services/constants.test.ts +++ b/apps/readest-app/src/__tests__/services/constants.test.ts @@ -586,7 +586,6 @@ describe('services/constants', () => { it('has boolean display flags', () => { expect(typeof DEFAULT_VIEW_CONFIG.showHeader).toBe('boolean'); expect(typeof DEFAULT_VIEW_CONFIG.showFooter).toBe('boolean'); - expect(typeof DEFAULT_VIEW_CONFIG.showBarsOnScroll).toBe('boolean'); expect(typeof DEFAULT_VIEW_CONFIG.showRemainingTime).toBe('boolean'); expect(typeof DEFAULT_VIEW_CONFIG.showRemainingPages).toBe('boolean'); expect(typeof DEFAULT_VIEW_CONFIG.showProgressInfo).toBe('boolean'); @@ -595,7 +594,6 @@ describe('services/constants', () => { expect(typeof DEFAULT_VIEW_CONFIG.showBatteryPercentage).toBe('boolean'); expect(typeof DEFAULT_VIEW_CONFIG.use24HourClock).toBe('boolean'); expect(typeof DEFAULT_VIEW_CONFIG.tapToToggleFooter).toBe('boolean'); - expect(typeof DEFAULT_VIEW_CONFIG.showMarginsOnScroll).toBe('boolean'); expect(typeof DEFAULT_VIEW_CONFIG.showPaginationButtons).toBe('boolean'); }); diff --git a/apps/readest-app/src/app/reader/components/BooksGrid.tsx b/apps/readest-app/src/app/reader/components/BooksGrid.tsx index 3d714d3e..d91cef0b 100644 --- a/apps/readest-app/src/app/reader/components/BooksGrid.tsx +++ b/apps/readest-app/src/app/reader/components/BooksGrid.tsx @@ -104,10 +104,8 @@ const BooksGrid: React.FC = ({ bookKeys, onCloseBook, onGoToLibr bottom: gridInsets.bottom + viewInsets.bottom, left: gridInsets.left + viewInsets.left, }; - const scrolled = viewSettings.scrolled; - const showBarsOnScroll = viewSettings.showBarsOnScroll; - const showHeader = viewSettings.showHeader && (scrolled ? showBarsOnScroll : true); - const showFooter = viewSettings.showFooter && (scrolled ? showBarsOnScroll : true); + const showHeader = viewSettings.showHeader; + const showFooter = viewSettings.showFooter; return (
= ({ const { section, pageinfo } = progress || {}; const showDoubleBorder = viewSettings.vertical && viewSettings.doubleBorder; - const isScrolled = viewSettings.scrolled; const isVertical = viewSettings.vertical; const isEink = viewSettings.isEink; const { progressStyle: readingProgressStyle } = viewSettings; @@ -173,7 +172,6 @@ const ProgressBar: React.FC = ({ 'progressinfo absolute bottom-0 flex items-center justify-between font-sans', isEink ? 'text-sm font-normal' : 'text-neutral-content text-xs font-extralight', isVertical ? 'writing-vertical-rl' : 'w-full', - isScrolled && !isVertical && 'bg-base-100', isMobile ? 'pointer-events-auto' : 'pointer-events-none', )} onClick={() => { @@ -211,10 +209,8 @@ const ProgressBar: React.FC = ({ >