blob: 9b478f77c946bcbffba44bb979b9c376387d4459 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import { useMemo, useState, useEffect } from "react";
export function useVisible(ref: RefObject<HTMLElement>) {
const [isVisible, setVisible] = useState(false)
useEffect(() => {
const observer = new IntersectionObserver(
([entry]) => setVisible(entry.isIntersecting)
)
observer.observe(ref.current)
return () => observer.disconnect()
}, [])
return isVisible
}
|