import React, { useRef, useState } from 'react' import { motion, AnimatePresence } from 'framer-motion' import { Upload, Music, ChevronRight } from 'lucide-react' import { SAMPLE_AUDIOS } from '../data/mockData' import styles from './AudioUploader.module.css' export default function AudioUploader({ onAudioSelected, isLoading }) { const [activeTab, setActiveTab] = useState('upload') // 'upload' | 'samples' const [dragOver, setDragOver] = useState(false) const [fileName, setFileName] = useState(null) const [activeSample, setActiveSample] = useState(null) const fileRef = useRef() function handleFile(file) { if (!file) return setFileName(file.name) setActiveSample(null) onAudioSelected({ file, sampleId: null }) } function handleDrop(e) { e.preventDefault() setDragOver(false) const file = e.dataTransfer.files[0] if (file && file.type.startsWith('audio')) handleFile(file) } function handleSample(sample) { setActiveSample(sample.id) setFileName(null) onAudioSelected({ file: null, sampleId: sample.id }) } return (
{fileName}
Click to change file
> ) : ( <>Drop your bird audio here
.mp3, .ogg, .wav, .flac supported
> )}