"use client"; import { useEffect, useRef, ReactNode } from "react"; import { gsap } from "gsap"; import { ScrollTrigger } from "gsap/ScrollTrigger"; gsap.registerPlugin(ScrollTrigger); export default function Reveal({ children, className = "", stagger = 0, y = 40, }: { children: ReactNode; className?: string; stagger?: number; y?: number; }) { const ref = useRef(null); useEffect(() => { const el = ref.current; if (!el) return; const targets = stagger > 0 ? Array.from(el.children) : [el]; const ctx = gsap.context(() => { gsap.from(targets, { y, opacity: 0, duration: 1, ease: "power3.out", stagger, scrollTrigger: { trigger: el, start: "top 85%" }, }); }, el); return () => ctx.revert(); }, [stagger, y]); return (
{children}
); }