import { AnimatePresence, motion } from "motion/react"; import { useEffect, useState } from "react"; import { encryptText } from "@/components/app/(home)/sections/hero/Title/Title"; import AnimatedWidth from "@/components/shared/layout/animated-width"; import Spinner from "@/components/ui/spinner"; export default function HeroScrapingCodeLoading({ finished, }: { finished: boolean; }) { const [scrapingText, setScrapingText] = useState("Scraping..."); useEffect(() => { if (finished) return; let timeout = 0; let tick = 0; const animate = () => { tick += 1; if (tick % 3 !== 0) { setScrapingText( encryptText("Scraping", 0, { randomizeChance: 0.6 + Math.random() * 0.3, }) + "...", ); } else { setScrapingText("Scraping..."); } const interval = 80; timeout = window.setTimeout(animate, interval); }; animate(); return () => { window.clearTimeout(timeout); }; }, [finished]); return (
{finished ? "Scrape Completed" : scrapingText}
); }