"use client"; import { useRef, useEffect, useState, type ReactNode } from "react"; type Props = { children: ReactNode; delay?: number; className?: string; }; export function AnimateOnScroll({ children, delay = 0, className = "" }: Props) { 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) setVisible(true); }, { threshold: 0.08, rootMargin: "0px 0px -40px 0px" } ); observer.observe(el); return () => observer.disconnect(); }, []); return (
{children}
); }