All files / app/utils useOnVisibleEffect.ts

100% Statements 8/8
100% Branches 1/1
100% Functions 2/2
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 179x 9x   9x 921x       921x 784x 46x       921x    
import { useEffect } from "react";
import { useInView } from "react-intersection-observer";
 
export default function useOnVisibleEffect(onVisible?: () => void) {
  const { ref, inView } = useInView({
    threshold: 0.9,
  });
 
  useEffect(() => {
    if (inView) {
      onVisible?.();
    }
  }, [inView, onVisible]);
 
  return { ref };
}