Spaces:
Running
Running
import * as React from 'react'; | |
export function useAtBottom(offset = 0) { | |
const [isAtBottom, setIsAtBottom] = React.useState(false); | |
React.useEffect(() => { | |
const handleScroll = () => { | |
setIsAtBottom( | |
window.innerHeight + window.scrollY >= | |
document.body.offsetHeight - offset, | |
); | |
}; | |
window.addEventListener('scroll', handleScroll, { passive: true }); | |
handleScroll(); | |
return () => { | |
window.removeEventListener('scroll', handleScroll); | |
}; | |
}, [offset]); | |
return isAtBottom; | |
} | |