"use client"; import { HTMLAttributes, useEffect, useRef } from "react"; import { cn } from "@/utils/cn"; import { setIntervalOnVisible } from "@/utils/set-timeout-on-visible"; import data from "./explosion-data.json"; export function AsciiExplosion(attrs: HTMLAttributes) { const ref = useRef(null); const wrapperRef = useRef(null); useEffect(() => { let index = -30; const interval = setIntervalOnVisible({ element: wrapperRef.current, callback: () => { index++; if (index >= data.length) index = -40; if (index < 0) return; ref.current!.innerHTML = data[index]; }, interval: 40, }); return () => interval?.(); }, []); return (
); } // Default export for backward compatibility export default AsciiExplosion;