useIntersectionObserver
A custom hook that calls the action
callback function when the target element assigned ref
is exposed to the Viewport
.
You can set the Intersection Observer Option (see Note
below).
Interface
interface UseIntersectionObserverProps extends IntersectionObserverInit {
action: (entry: IntersectionObserverEntry) => void;
calledOnce?: boolean;
}
const useIntersectionObserver: <T extends HTMLElement>({
action,
calledOnce,
root,
threshold,
rootMargin,
}: UseIntersectionObserverProps) => (node: T) => void;
Usage
import { useIntersectionObserver } from '@devgrace/react';
const Example = () => {
const divRef = useIntersectionObserver<HTMLDivElement>({
action: () => { /* action */},
});
const imgRef = useIntersectionObserver<HTMLImageElement>({
action: (entry) => { /* You can use IntersectionObserverEntry if needed. */},
});
return (
<div>
{/* ... */}
<div ref={divRef}>Box</div>
<img ref={imgRef} src="url" alt="img" />
</div>
);
};