import React from 'react'; import { X, Activity } from 'lucide-react'; import { useAudio, VisualizerSettings } from '../../context/AudioContext'; interface VisualizerSettingsModalProps { onClose: () => void; } export const VisualizerSettingsModal: React.FC< VisualizerSettingsModalProps > = ({ onClose }) => { const { visualizerSettings, setVisualizerSettings } = useAudio(); const updateSetting = (key: keyof VisualizerSettings, value: any) => { setVisualizerSettings({ ...visualizerSettings, [key]: value }); }; const colors = ['#7c9dd6', '#a8a4a0', '#7a9e6c', '#c9a84c', '#d4634a']; return (

Visualizer

{/* Mode */}
{['waveform', 'spectrogram', 'bars', 'off'].map((mode) => ( ))}
{/* Sensitivity */}
Sensitivity {visualizerSettings.sensitivity}%
updateSetting('sensitivity', Number(e.target.value)) } className="w-full h-1 bg-muted rounded-lg appearance-none cursor-pointer [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3 [&::-webkit-slider-thumb]:bg-primary [&::-webkit-slider-thumb]:rounded-full" />
{/* Color */}
{colors.map((c) => (
updateSetting('color', c)} className={`w-6 h-6 rounded-full cursor-pointer transition-opacity hover:opacity-80 ${visualizerSettings.color === c ? 'ring-2 ring-white ring-offset-2 ring-offset-background' : ''}`} style={{ backgroundColor: c }} >
))}
); };