diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx
index 65de45177..577d683f8 100644
--- a/client/homebrew/brewRenderer/brewRenderer.jsx
+++ b/client/homebrew/brewRenderer/brewRenderer.jsx
@@ -111,11 +111,12 @@ const BrewRenderer = (props)=>{
...props
};
+ const [visiblePages, setVisiblePages] = useState([]);
+ const [centerPage , setCenterPage ] = useState(1);
+
const [state, setState] = useState({
isMounted : false,
- visibility : 'hidden',
- visiblePages : [],
- centerPage : 1
+ visibility : 'hidden'
});
const [displayOptions, setDisplayOptions] = useState({
@@ -145,21 +146,17 @@ const BrewRenderer = (props)=>{
rawPages = props.text.split(PAGEBREAK_REGEX_V3);
}
- const handlePageVisibilityChange = (pageNum, isVisible, isCenter)=>{
- setState((prevState)=>{
- const updatedVisiblePages = new Set(prevState.visiblePages);
- if(!isCenter)
- isVisible ? updatedVisiblePages.add(pageNum) : updatedVisiblePages.delete(pageNum);
-
- return {
- ...prevState,
- visiblePages : [...updatedVisiblePages].sort((a, b)=>a - b),
- centerPage : isCenter ? pageNum : prevState.centerPage
- };
+ const handlePageVisibilityChange = (pageNum, isVisible, isCenter) => {
+ setVisiblePages(prev => {
+ const updatedVisiblePages = new Set(prev);
+ isVisible ? updatedVisiblePages.add(pageNum) : updatedVisiblePages.delete(pageNum);
+ return [...updatedVisiblePages].sort((a, b) => a - b);
});
- if(isCenter)
+ if (isCenter) {
+ setCenterPage(pageNum);
props.onPageChange(pageNum);
+ }
};
const isInView = (index)=>{
@@ -346,7 +343,7 @@ const BrewRenderer = (props)=>{
- 0 ? state.visiblePages : [state.centerPage]} totalPages={rawPages.length} headerState={headerState} setHeaderState={setHeaderState}/>
+ 0 ? visiblePages : [centerPage]} totalPages={rawPages.length} headerState={headerState} setHeaderState={setHeaderState}/>
{/*render in iFrame so broken code doesn't crash the site.*/}