From 7a5b0b32c4dd9c71751070018ec47a1b70bd1936 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sat, 24 Aug 2024 23:26:45 -0400 Subject: [PATCH 1/5] restore deleted line from `helpers.js` --- shared/helpers.js | 1 + 1 file changed, 1 insertion(+) diff --git a/shared/helpers.js b/shared/helpers.js index da76b3d23..ac684b06f 100644 --- a/shared/helpers.js +++ b/shared/helpers.js @@ -28,6 +28,7 @@ const printCurrentBrew = ()=>{ window.frames['BrewRenderer'].contentWindow.print(); //Force DOM reflow; Print dialog causes a repaint, and @media print CSS somehow makes out-of-view pages disappear const node = window.frames['BrewRenderer'].contentDocument.getElementsByClassName('brewRenderer').item(0); + node.style.display='none'; node.offsetHeight; // accessing this is enough to trigger a reflow node.style.display=''; } From 5069eadd0a7a68e89b70494d426e8c104e04c00a Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sat, 24 Aug 2024 23:53:07 -0400 Subject: [PATCH 2/5] Manual tidying of .less files --- client/homebrew/brewRenderer/brewRenderer.less | 6 ------ client/homebrew/brewRenderer/toolBar/toolBar.less | 8 +------- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.less b/client/homebrew/brewRenderer/brewRenderer.less index eb476248c..234624aa2 100644 --- a/client/homebrew/brewRenderer/brewRenderer.less +++ b/client/homebrew/brewRenderer/brewRenderer.less @@ -4,10 +4,8 @@ padding-top : 30px; overflow-y : scroll; will-change : transform; - :where(.pages) { margin : 30px 0px; - & > :where(.page) { width : 215.9mm; height : 279.4mm; @@ -17,20 +15,16 @@ box-shadow : 1px 4px 14px #000000; } } - &::-webkit-scrollbar { width : 20px; - &:horizontal { width : auto; height : 20px; } - &-thumb { background : linear-gradient(90deg, #D3C1AF 15px, #00000000 15px); &:horizontal { background : linear-gradient(0deg, #D3C1AF 15px, #00000000 15px); } } - &-corner { visibility : hidden; } } } diff --git a/client/homebrew/brewRenderer/toolBar/toolBar.less b/client/homebrew/brewRenderer/toolBar/toolBar.less index 21c741bbd..33a6836ef 100644 --- a/client/homebrew/brewRenderer/toolBar/toolBar.less +++ b/client/homebrew/brewRenderer/toolBar/toolBar.less @@ -38,7 +38,7 @@ border : 1px solid gray; &:focus { outline : 1px solid #D3D3D3; } - // `.range-input` if generic to all range inputs, or `#zoom-input` if only for zoom slider + // `.range-input` if generic to all range inputs, or `#zoom-slider` if only for zoom slider &.range-input { padding : 2px 0; color : #D3D3D3; @@ -73,12 +73,9 @@ width : 4ch; margin-right : 1ch; text-align : center; - } - } - button { box-sizing : content-box; display : flex; @@ -91,11 +88,8 @@ font-weight : unset; color : inherit; background-color : unset; - &:hover { background-color : #444444; } - &:focus { outline : 1px solid #D3D3D3; } - &:disabled { color : #777777; background-color : unset !important; From 3377d6645db1e4527dc514235f1f080c10bf3c2e Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sat, 24 Aug 2024 23:53:44 -0400 Subject: [PATCH 3/5] Tidy up brewRenderer --- client/homebrew/brewRenderer/brewRenderer.jsx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index c6f415a87..884192739 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -80,8 +80,6 @@ const BrewRenderer = (props)=>{ return ()=>{window.removeEventListener('resize', updateSize);}; }, []); - - const updateSize = ()=>{ setState((prevState)=>({ ...prevState, @@ -90,10 +88,8 @@ const BrewRenderer = (props)=>{ }; const getCurrentPage = (e) => { - const target = e.target; - const { scrollTop, clientHeight, scrollHeight } = target; + const { scrollTop, clientHeight, scrollHeight } = e.target; const totalScrollableHeight = scrollHeight - clientHeight; - const currentPageNumber = Math.ceil((scrollTop / totalScrollableHeight) * rawPages.length); setState((prevState) => ({ @@ -192,7 +188,6 @@ const BrewRenderer = (props)=>{ })); }; - return ( <> {/*render dummy page while iFrame is mounting.*/} @@ -212,7 +207,6 @@ const BrewRenderer = (props)=>{ - {/*render in iFrame so broken code doesn't crash the site.*/} Date: Sat, 24 Aug 2024 23:54:09 -0400 Subject: [PATCH 4/5] Simplify some logic in Toolbar --- .../homebrew/brewRenderer/toolBar/toolBar.jsx | 38 +++++++------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/client/homebrew/brewRenderer/toolBar/toolBar.jsx b/client/homebrew/brewRenderer/toolBar/toolBar.jsx index 7e1eeac35..30563598d 100644 --- a/client/homebrew/brewRenderer/toolBar/toolBar.jsx +++ b/client/homebrew/brewRenderer/toolBar/toolBar.jsx @@ -9,7 +9,7 @@ const MIN_ZOOM = 10; const ToolBar = ({ onZoomChange, currentPage, onPageChange, totalPages })=>{ const [zoomLevel, setZoomLevel] = useState(100); - const [pageNum, setPageNum] = useState(currentPage); + const [pageNum, setPageNum] = useState(currentPage); useEffect(()=>{ onZoomChange(zoomLevel); @@ -20,35 +20,26 @@ const ToolBar = ({ onZoomChange, currentPage, onPageChange, totalPages })=>{ }, [currentPage]); const handleZoomButton = (delta)=>{ - const newZoomLevel = _.clamp(zoomLevel + delta, MIN_ZOOM, MAX_ZOOM); - setZoomLevel(newZoomLevel); + setZoomLevel(_.clamp(zoomLevel + delta, MIN_ZOOM, MAX_ZOOM)); }; - 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 handlePageInput = (pageInput)=>{ + if(/[0-9]/.test(pageInput)) + setPageNum(parseInt(pageInput)); // input type is 'text', so `page` comes in as a string, not number. }; const scrollToPage = (pageNumber)=>{ pageNumber = _.clamp(pageNumber, 1, totalPages); const iframe = document.getElementById('BrewRenderer'); - if(iframe && iframe.contentWindow) { - const brewRenderer = iframe.contentWindow.document.querySelector('.brewRenderer'); - if(brewRenderer) { - const pages = brewRenderer.querySelectorAll('.page'); - pages[pageNumber - 1]?.scrollIntoView({ block: 'start' }); - } - } + const brewRenderer = iframe?.contentWindow?.document.querySelector('.brewRenderer'); + const page = brewRenderer?.querySelector(`#p${pageNumber}`) + page?.scrollIntoView({ block: 'start' }); setPageNum(pageNumber); }; return (
+ {/*v=====----------------------< Zoom Controls >---------------------=====v*/}
+ {/*v=====----------------------< Page Controls >---------------------=====v*/}
-
- ); }; From 4b0b56dd35b91892540f7e1de2645b8c9e89a2fd Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Sat, 24 Aug 2024 23:55:17 -0400 Subject: [PATCH 5/5] Lint the jsx files --- client/homebrew/brewRenderer/brewRenderer.jsx | 6 +++--- client/homebrew/brewRenderer/toolBar/toolBar.jsx | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 884192739..f3b284a93 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -87,12 +87,12 @@ const BrewRenderer = (props)=>{ })); }; - const getCurrentPage = (e) => { + const getCurrentPage = (e)=>{ const { scrollTop, clientHeight, scrollHeight } = e.target; const totalScrollableHeight = scrollHeight - clientHeight; const currentPageNumber = Math.ceil((scrollTop / totalScrollableHeight) * rawPages.length); - setState((prevState) => ({ + setState((prevState)=>({ ...prevState, currentPageNumber : currentPageNumber || 1 })); @@ -181,7 +181,7 @@ const BrewRenderer = (props)=>{ }; //Toolbar settings: - const handleZoom = (newZoom) => { + const handleZoom = (newZoom)=>{ setState((prevState)=>({ ...prevState, zoom : newZoom diff --git a/client/homebrew/brewRenderer/toolBar/toolBar.jsx b/client/homebrew/brewRenderer/toolBar/toolBar.jsx index 30563598d..8ad14ae9b 100644 --- a/client/homebrew/brewRenderer/toolBar/toolBar.jsx +++ b/client/homebrew/brewRenderer/toolBar/toolBar.jsx @@ -32,7 +32,7 @@ const ToolBar = ({ onZoomChange, currentPage, onPageChange, totalPages })=>{ pageNumber = _.clamp(pageNumber, 1, totalPages); const iframe = document.getElementById('BrewRenderer'); const brewRenderer = iframe?.contentWindow?.document.querySelector('.brewRenderer'); - const page = brewRenderer?.querySelector(`#p${pageNumber}`) + const page = brewRenderer?.querySelector(`#p${pageNumber}`); page?.scrollIntoView({ block: 'start' }); setPageNum(pageNumber); }; @@ -59,7 +59,7 @@ const ToolBar = ({ onZoomChange, currentPage, onPageChange, totalPages })=>{ max={MAX_ZOOM} step='1' value={zoomLevel} - onChange={(e) => setZoomLevel(parseInt(e.target.value))} + onChange={(e)=>setZoomLevel(parseInt(e.target.value))} />