"use client"; import { useEffect, useRef, useState } from "react"; export default function ScrollReveal({ children, delay = 0, }: { children: React.ReactNode; delay?: number; }) { const ref = useRef(null); const [visible, setVisible] = useState(false); useEffect(() => { const el = ref.current; if (!el) return; const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { const timer = setTimeout(() => setVisible(true), delay); observer.unobserve(el); return () => clearTimeout(timer); } }, { threshold: 0.12 } ); observer.observe(el); return () => observer.disconnect(); }, [delay]); return (
{children}
); }