Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5193 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5188 stevensc 1
import { useEffect, useState } from 'react'
2
 
3
const useNear = (ref, rootMargin = '0px') => {
4
  const [isIntersecting, setIntersecting] = useState(false)
5
 
6
  const reset = () => setIntersecting(false)
7
 
8
  useEffect(() => {
9
    const observer = new IntersectionObserver(
10
      ([entry]) => {
11
        // Update our state when observer callback fires
12
        setIntersecting(entry.isIntersecting)
13
      },
14
      {
15
        rootMargin
16
      }
17
    )
18
    if (ref.current) {
19
      observer.observe(ref.current)
20
    }
21
    return () => {
22
      observer.unobserve(ref.current)
23
    }
5196 stevensc 24
  }, [isIntersecting, ref]) // Empty array ensures that effect is only run on mount and unmount
5188 stevensc 25
 
26
  return [isIntersecting, reset]
27
}
28
 
29
export default useNear