aboutsummaryrefslogtreecommitdiffstats
path: root/thallium-frontend/src/utils/hooks.ts
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
}