import { useEffect, useRef, useState } from 'react'; interface AudioWaveformProps { isRecording?: boolean; isPlaying?: boolean; className?: string; bars?: number; } export default function AudioWaveform({ isRecording = false, isPlaying = false, className = "", bars = 20 }: AudioWaveformProps) { const [heights, setHeights] = useState(Array(bars).fill(0.3)); useEffect(() => { if (!isRecording && !isPlaying) { setHeights(Array(bars).fill(0.3)); return; } const interval = setInterval(() => { setHeights(prev => prev.map(() => { if (isRecording) { return Math.random() * 0.7 + 0.3; // More active during recording } else if (isPlaying) { return Math.random() * 0.5 + 0.2; // Moderate during playback } return 0.3; }) ); }, 100); return () => clearInterval(interval); }, [isRecording, isPlaying, bars]); return (
{heights.map((height, index) => (
))}
); }