"use client"; import React, { useEffect, useRef } from "react"; import { cn } from "@/utils/cn"; import { setIntervalOnVisible } from "@/utils/set-timeout-on-visible"; import data from "@/components/shared/effects/flame/explosion-data.json"; interface AsciiFlameBackgroundProps { className?: string; colorClassName?: string; fontSizePx?: number; lineHeightPx?: number; } // Reusable ASCII flame background (same frames used by CoreReliableBarFlame) export default function AsciiFlameBackground({ className, colorClassName = "text-heat-100/30", fontSizePx = 10, lineHeightPx = 12.5, }: AsciiFlameBackgroundProps) { const wrapperRef = useRef(null); const ref = useRef(null); useEffect(() => { let index = 0; const stop = setIntervalOnVisible({ element: wrapperRef.current, callback: () => { index += 1; if (index >= (data as string[]).length) index = 0; if (ref.current) ref.current.innerHTML = (data as string[])[index]; }, interval: 80, }); return () => stop?.(); }, []); return (
); }