import React, { useRef, useEffect, useState } from "react"; import { motion } from "framer-motion"; export default function BlurText({ text, className }) { const containerRef = useRef(null); const [isInView, setIsInView] = useState(false); useEffect(() => { const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { setIsInView(true); // Unobserve after triggering once to lock the animation observer.unobserve(entry.target); } }, { threshold: 0.1 } // Triggers on 10% visibility ); if (containerRef.current) { observer.observe(containerRef.current); } return () => { observer.disconnect(); }; }, []); const words = text.split(" "); return (
{words.map((word, i) => {
return (