useIntersection

Hook

Tracks whether an element is visible in the viewport using IntersectionObserver.

npx arupui add use-intersection

Usage

use-intersection.tsx
import { useIntersection } from "@/hooks/use-intersection"

function LazySection() {
  const ref = useRef<HTMLDivElement>(null)
  const isVisible = useIntersection(ref, { threshold: 0.5 })

  return (
    <div ref={ref}>
      {isVisible ? <HeavyContent /> : <Placeholder />}
    </div>
  )
}

Parameters

refRefObject<HTMLElement>

Ref to the observed element

optionsIntersectionObserverInit

Observer options (optional)

Returns

boolean
Theme Editor

Theme

Radius0.5rem
Letter Spacing0em

Colors

light