mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-01-06 01:22:44 +00:00
Merge branch 'pr/3499' into View-Modes
This commit is contained in:
@@ -40,16 +40,27 @@ const ToolBar = ({ onZoomChange, currentPage, onPageChange, totalPages })=>{
|
|||||||
setZoomLevel(newZoomLevel);
|
setZoomLevel(newZoomLevel);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handlePageChange = (page)=>{
|
||||||
|
const regex = /[0-9]/;
|
||||||
|
if(regex.test(page)){
|
||||||
|
const num = parseInt(page); // input type is 'text', so `page` comes in as a string, not number.
|
||||||
|
setPageNum(num)
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const scrollToPage = (pageNumber)=>{
|
const scrollToPage = (pageNumber)=>{
|
||||||
pageNumber = _.clamp(pageNumber - 1, 0, totalPages - 1);
|
pageNumber = _.clamp(pageNumber, 1, totalPages);
|
||||||
const iframe = document.getElementById('BrewRenderer');
|
const iframe = document.getElementById('BrewRenderer');
|
||||||
if(iframe && iframe.contentWindow) {
|
if(iframe && iframe.contentWindow) {
|
||||||
const brewRenderer = iframe.contentWindow.document.querySelector('.brewRenderer');
|
const brewRenderer = iframe.contentWindow.document.querySelector('.brewRenderer');
|
||||||
if(brewRenderer) {
|
if(brewRenderer) {
|
||||||
const pages = brewRenderer.querySelectorAll('.page');
|
const pages = brewRenderer.querySelectorAll('.page');
|
||||||
pages[pageNumber]?.scrollIntoView({ block: 'start' });
|
pages[pageNumber - 1]?.scrollIntoView({ block: 'start' });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
setPageNum(pageNumber);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -180,7 +191,8 @@ const ToolBar = ({ onZoomChange, currentPage, onPageChange, totalPages })=>{
|
|||||||
inputMode='numeric'
|
inputMode='numeric'
|
||||||
pattern='[0-9]'
|
pattern='[0-9]'
|
||||||
value={pageNum}
|
value={pageNum}
|
||||||
onChange={(e)=>{setPageNum(parseInt(e.target.value));}}
|
onClick={(e)=>{e.target.select()}}
|
||||||
|
onChange={(e)=>{handlePageChange(e.target.value);}}
|
||||||
onBlur={()=>scrollToPage(pageNum)}
|
onBlur={()=>scrollToPage(pageNum)}
|
||||||
onKeyDown={(e)=>{e.key == 'Enter' ? scrollToPage(pageNum) : null;}}
|
onKeyDown={(e)=>{e.key == 'Enter' ? scrollToPage(pageNum) : null;}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user