17 lines
494 B
JavaScript
17 lines
494 B
JavaScript
import * as React from 'react';
|
|
import { useInView } from 'motion/react';
|
|
|
|
function useIsInView(ref, options = {}) {
|
|
const { inView, inViewOnce = false, inViewMargin = '0px' } = options;
|
|
const localRef = React.useRef(null);
|
|
React.useImperativeHandle(ref, () => localRef.current);
|
|
const inViewResult = useInView(localRef, {
|
|
once: inViewOnce,
|
|
margin: inViewMargin,
|
|
});
|
|
const isInView = !inView || inViewResult;
|
|
return { ref: localRef, isInView };
|
|
}
|
|
|
|
export { useIsInView };
|