{"version":3,"file":"useIsInViewport.cjs","sources":["../../../../src/internal/hooks/useIsInViewport.tsx"],"sourcesContent":["import type {MutableRefObject} from 'react';\nimport {useMemo, useState, useEffect} from 'react';\n\nexport const useIsInViewport = (ref: MutableRefObject<HTMLElement | null>) => {\n    const [isIntersecting, setIsIntersecting] = useState(false);\n\n    const observer = useMemo(\n        () => new IntersectionObserver(([entry]) => setIsIntersecting(entry.isIntersecting)),\n        []\n    );\n\n    useEffect(() => {\n        ref.current && observer.observe(ref.current);\n\n        return () => {\n            observer.disconnect();\n        };\n    }, [ref, observer]);\n\n    return isIntersecting;\n};\n"],"names":["useIsInViewport","ref","isIntersecting","setIsIntersecting","useState","observer","useMemo","entry","useEffect"],"mappings":"sHAGaA,EAAmBC,GAA8C,CAC1E,KAAM,CAACC,EAAgBC,CAAiB,EAAIC,EAAAA,SAAS,EAAK,EAEpDC,EAAWC,EAAA,QACb,IAAM,IAAI,qBAAqB,CAAC,CAACC,CAAK,IAAMJ,EAAkBI,EAAM,cAAc,CAAC,EACnF,CAAA,CACJ,EAEAC,OAAAA,EAAAA,UAAU,KACNP,EAAI,SAAWI,EAAS,QAAQJ,EAAI,OAAO,EAEpC,IAAM,CACTI,EAAS,WAAW,CACxB,GACD,CAACJ,EAAKI,CAAQ,CAAC,EAEXH,CACX"}