import { cn } from "@/lib/utils"; import { useEffect, useState } from "react"; interface SoundwaveIndicatorProps { speaker: "ai" | "customer"; isActive?: boolean; className?: string; } export function SoundwaveIndicator({ speaker, isActive = true, className }: SoundwaveIndicatorProps) { const [bars, setBars] = useState([0.3, 0.5, 0.7, 0.4, 0.6, 0.8, 0.5, 0.3]); useEffect(() => { if (!isActive) return; const interval = setInterval(() => { setBars(prev => prev.map(() => 0.2 + Math.random() * 0.8)); }, 100); return () => clearInterval(interval); }, [isActive]); const speakerConfig = { ai: { color: "bg-primary", label: "AI Speaking", gradientFrom: "from-primary/20", gradientTo: "to-primary/5", }, customer: { color: "bg-emerald-500", label: "Customer Speaking", gradientFrom: "from-emerald-500/20", gradientTo: "to-emerald-500/5", }, }; const config = speakerConfig[speaker]; return (
{bars.map((height, index) => ( {isActive ? config.label : "Waiting..."}
); }