From a4ffdc7831f8392fbdda507bf8a26b4e3c5e9457 Mon Sep 17 00:00:00 2001 From: brios <127139797+balazs-szucs@users.noreply.github.com> Date: Tue, 21 Jul 2026 19:40:16 +0200 Subject: [PATCH] fix(viewer): dynamic page number input width based on total page count (#6607) # Description of Changes ### Before: image ### After: image ### Mobile (after): image --- ## Checklist ### General - [X] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [X] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [X] I have performed a self-review of my own code - [X] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### UI Changes (if applicable) - [X] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [X] I have run `task check` to verify linters, typechecks, and tests pass - [X] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#7-testing) for more details. --- .../components/viewer/PdfViewerToolbar.tsx | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/frontend/editor/src/core/components/viewer/PdfViewerToolbar.tsx b/frontend/editor/src/core/components/viewer/PdfViewerToolbar.tsx index 893cd35d44..011b1baf17 100644 --- a/frontend/editor/src/core/components/viewer/PdfViewerToolbar.tsx +++ b/frontend/editor/src/core/components/viewer/PdfViewerToolbar.tsx @@ -18,6 +18,12 @@ import ZoomInIcon from "@mui/icons-material/ZoomIn"; import ZoomOutIcon from "@mui/icons-material/ZoomOut"; import MoreVertIcon from "@mui/icons-material/MoreVert"; +// Sizing constants for the page number input +const MIN_PAGE_DIGITS = 2; +const MIN_INPUT_WIDTH_PX = 48; +const BASE_INPUT_WIDTH_PX = 32; +const PX_PER_DIGIT = 8; + interface PdfViewerToolbarProps { // Page navigation props (placeholders for now) currentPage?: number; @@ -131,6 +137,15 @@ export function PdfViewerToolbar({ scrollActions.scrollToLastPage(); }; + const totalPagesDigits = Math.max( + MIN_PAGE_DIGITS, + (scrollState.totalPages || 1).toString().length, + ); + const inputWidth = Math.max( + MIN_INPUT_WIDTH_PX, + BASE_INPUT_WIDTH_PX + totalPagesDigits * PX_PER_DIGIT, + ); + return (