"use client"; import { useEffect, useRef, useState, type ReactNode } from "react"; interface ScrollRevealProps { children: ReactNode; delay?: number; className?: string; } export default function ScrollReveal({ children, delay = 0, className = "", }: ScrollRevealProps) { const ref = useRef(null); const [visible, setVisible] = useState(false); useEffect(() => { const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { setTimeout(() => setVisible(true), delay); observer.unobserve(entry.target); } }, { threshold: 0.1, rootMargin: "0px 0px -60px 0px" } ); if (ref.current) observer.observe(ref.current); return () => observer.disconnect(); }, [delay]); return (
{children}
); }