@coreui/react-pro
Version:
UI Components Library for React.js
18 lines (12 loc) • 447 B
text/typescript
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
}