This commit is contained in:
StyleZhang 2024-10-12 11:03:00 +08:00
parent 8dd941e3d2
commit 27ae74af50

View File

@ -0,0 +1,20 @@
import { useEffect } from 'react'
export const useScrollIntersection = (
rootRef: React.RefObject<HTMLDivElement>,
anchorRef: React.RefObject<HTMLDivElement>,
callback: (isIntersecting: boolean) => void,
) => {
useEffect(() => {
let observer: IntersectionObserver | undefined
if (rootRef.current && anchorRef.current) {
observer = new IntersectionObserver((entries) => {
callback(entries[0].isIntersecting)
}, {
root: rootRef.current,
})
observer.observe(anchorRef.current)
}
return () => observer?.disconnect()
}, [rootRef, anchorRef, callback])
}