'use client'; import { Toggle } from '@/components/ui/toggle'; import { VolumeControl } from './VolumeControl'; import { Volume2, VolumeX, Drum, Music, Cloud } from 'lucide-react'; import { LayerName } from '@/types/audio'; interface LayerMixerProps { volumes: { drums: number; chords: number; ambient: number; }; muted: { drums: boolean; chords: boolean; ambient: boolean; }; onVolumeChange: (layer: LayerName, volume: number) => void; onToggleMute: (layer: LayerName) => void; } const layers: { name: LayerName; label: string; icon: React.ReactNode }[] = [ { name: 'drums', label: 'Drums', icon: }, { name: 'chords', label: 'Chords', icon: }, { name: 'ambient', label: 'Ambient', icon: }, ]; export function LayerMixer({ volumes, muted, onVolumeChange, onToggleMute, }: LayerMixerProps) { return (

Layers

{layers.map(({ name, label, icon }) => (
onToggleMute(name)} size="sm" className="shrink-0" aria-label={`Toggle ${label}`} > {muted[name] ? ( ) : ( )}
{icon} {label}
onVolumeChange(name, v)} className="flex-1" />
))}
); }