'use client'; import * as React from 'react'; import { Plus } from 'lucide-react'; import { Button } from '@/components/ui/Button'; import { Track } from './Track'; import type { Track as TrackType } from '@/types/track'; export interface TrackListProps { tracks: TrackType[]; zoom: number; currentTime: number; duration: number; onAddTrack: () => void; onRemoveTrack: (trackId: string) => void; onUpdateTrack: (trackId: string, updates: Partial) => void; onSeek?: (time: number) => void; } export function TrackList({ tracks, zoom, currentTime, duration, onAddTrack, onRemoveTrack, onUpdateTrack, onSeek, }: TrackListProps) { if (tracks.length === 0) { return (

No tracks yet. Add a track to get started.

); } return (
{/* Track List */}
{tracks.map((track) => ( onUpdateTrack(track.id, { mute: !track.mute }) } onToggleSolo={() => onUpdateTrack(track.id, { solo: !track.solo }) } onToggleCollapse={() => onUpdateTrack(track.id, { collapsed: !track.collapsed }) } onVolumeChange={(volume) => onUpdateTrack(track.id, { volume }) } onPanChange={(pan) => onUpdateTrack(track.id, { pan }) } onRemove={() => onRemoveTrack(track.id)} onNameChange={(name) => onUpdateTrack(track.id, { name }) } onSeek={onSeek} /> ))}
{/* Add Track Button */}
); }