All files / src/helpers visibility.js

92.86% Statements 13/14
87.5% Branches 7/8
80% Functions 4/5
100% Lines 13/13

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 17 18 19 20 21 22 23 24 2523x 10x   10x 6x   4x 4x 3x           6x 6x 2x     4x 4x       23x
export const watchElementVisibility = (element, listener) => {
 Iif (!window || typeof window !== "object") return
 
 if (window.IntersectionObserver) {
   const observer = new IntersectionObserver(
     entries => {
       entries.forEach(entry => {
         if (entry.target === element) {
           listener(entry.isIntersecting);
         }
       });
     },
     { threshold: [0, 0.01] }
   );
   observer.observe(element);
   return () => {
     observer.disconnect();
   };
 } else {
   listener(true);
   return noop;
 }
}
 
export const noop = () => {}