import { useCallback } from 'react'; import { Upload, Music } from 'lucide-react'; import { cn } from '@/lib/utils'; interface AudioUploaderProps { onFileSelect: (file: File) => void; isLoading: boolean; fileName: string | null; } export function AudioUploader({ onFileSelect, isLoading, fileName }: AudioUploaderProps) { const handleDrop = useCallback((e: React.DragEvent) => { e.preventDefault(); const file = e.dataTransfer.files[0]; if (file && file.type.startsWith('audio/')) { onFileSelect(file); } }, [onFileSelect]); const handleFileInput = useCallback((e: React.ChangeEvent) => { const file = e.target.files?.[0]; if (file) { onFileSelect(file); } }, [onFileSelect]); const handleDragOver = (e: React.DragEvent) => { e.preventDefault(); }; return (
{fileName ? ( <>

{fileName}

Click or drop to replace

) : ( <>

Drop audio file here

or click to browse

MP3, WAV, FLAC, OGG supported

)} {isLoading && (
)}
); }