hook
parent
8dd941e3d2
commit
27ae74af50
@ -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])
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue