'use client'; import React, { useEffect, useRef, useState } from 'react'; import { cn } from '@/components/ui'; interface RevealProps { children: React.ReactNode; className?: string; threshold?: number; delay?: number; } export default function Reveal({ children, className, threshold = 0.1, delay = 0 }: RevealProps) { const [isVisible, setIsVisible] = useState(false); const ref = useRef(null); useEffect(() => { const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { setIsVisible(true); observer.unobserve(entry.target); } }, { threshold } ); const currentRef = ref.current; if (currentRef) { observer.observe(currentRef); } return () => { if (currentRef) { observer.unobserve(currentRef); } }; }, [threshold]); return (
{children}
); }