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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user