0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-07 01:12:44 +00:00

Add check for scroll event complete/ lift page state up

This commit is contained in:
Trevor Buckner
2024-09-12 12:55:11 -04:00
parent 8fa5eeb0ef
commit 3ef91cb1ea
4 changed files with 92 additions and 86 deletions

View File

@@ -58,6 +58,7 @@ const BrewRenderer = (props)=>{
errors : [],
currentEditorPage : 0,
themeBundle : {},
onPageChange : ()=>{},
...props
};
@@ -88,27 +89,12 @@ const BrewRenderer = (props)=>{
}));
};
const handleScroll = (e)=>{
const target = e.target;
const newPage = Math.floor(target.scrollTop / target.scrollHeight * rawPages.length);
if(newPage != state.viewablePageNumber) {
window.clearTimeout(isScrolling);
isScrolling = setTimeout(function() {
window.parent.document.dispatchEvent(new CustomEvent('renderScrolled', {}));
}, 66);
}
setState((prevState)=>({
...prevState,
viewablePageNumber : newPage
}));
};
const getCurrentPage = (e)=>{
const { scrollTop, clientHeight, scrollHeight } = e.target;
const totalScrollableHeight = scrollHeight - clientHeight;
const currentPageNumber = Math.ceil((scrollTop / totalScrollableHeight) * rawPages.length);
handleScroll(e);
props.onPageChange(currentPageNumber);
setState((prevState)=>({
...prevState,
@@ -116,7 +102,6 @@ const BrewRenderer = (props)=>{
}));
};
const isInView = (index)=>{
if(!state.isMounted)
return false;