UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

18 lines (12 loc) 447 B
import { RefObject, useEffect, useState } from 'react' export const useIsVisible = (ref: RefObject<HTMLElement | null>) => { const [isIntersecting, setIntersecting] = useState(false) useEffect(() => { const observer = new IntersectionObserver(([entry]) => setIntersecting(entry.isIntersecting)) if (ref.current) { observer.observe(ref.current) } return () => observer.disconnect() }, []) return isIntersecting }