Rev 1324 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import { useState, useEffect, useRef } from 'react'export default function useNearScreen({externalRef,once = true,rootMargin = '100px'}) {const [isNearScreen, setShow] = useState(false)const fromRef = useRef()useEffect(function () {const element = externalRef ? externalRef.current : fromRef.currentconst onChange = (entries, observer) => {// console.log("entries", entries)const el = entries[0]// console.log("el", el)if (el.isIntersecting) {setShow(true)once && observer.disconnect()} else {!once && setShow(false)}}const observer = new IntersectionObserver(onChange, {rootMargin})if (element) observer.observe(element)return () => observer && observer.disconnect()})return isNearScreen}