mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2026-09-03 05:10:16 +03:00
fix(viewer): dynamic page number input width based on total page count (#6607)
# Description of Changes ### Before: <img width="3092" height="468" alt="image" src="https://github.com/user-attachments/assets/8ed16ac3-9547-4f07-937e-4177c4ed16fd" /> ### After: <img width="1868" height="490" alt="image" src="https://github.com/user-attachments/assets/8ddf2227-bac4-49f6-973a-90c9f4667dfe" /> ### Mobile (after): <img width="842" height="444" alt="image" src="https://github.com/user-attachments/assets/e601fa94-45a6-46ae-b432-550bb27a98a6" /> <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## 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.
This commit is contained in:
@@ -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 (
|
||||
<Paper
|
||||
radius="xl xl 0 0"
|
||||
@@ -195,10 +210,13 @@ export function PdfViewerToolbar({
|
||||
hideControls
|
||||
styles={{
|
||||
input: {
|
||||
width: 48,
|
||||
width: inputWidth,
|
||||
textAlign: "center",
|
||||
fontWeight: 500,
|
||||
fontSize: 16,
|
||||
paddingLeft: 4,
|
||||
paddingRight: 4,
|
||||
boxSizing: "border-box",
|
||||
},
|
||||
}}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user