'use client' import { useEffect, useRef, useState, ReactNode } from 'react' interface ScrollRevealProps { children: ReactNode direction?: 'up' | 'down' | 'left' | 'right' delay?: number className?: string } export function ScrollReveal({ children, direction = 'up', delay = 0, className = '', }: ScrollRevealProps) { const [isVisible, setIsVisible] = useState(false) const ref = useRef(null) useEffect(() => { const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { setIsVisible(true) observer.disconnect() } }, { threshold: 0.1, rootMargin: '50px', } ) if (ref.current) { observer.observe(ref.current) } return () => { observer.disconnect() } }, []) const directionClasses = { up: 'translate-y-8', down: '-translate-y-8', left: 'translate-x-8', right: '-translate-x-8', } return (
{children}
) }