diff --git a/packages/frontend/src/components/MusicUpload.tsx b/packages/frontend/src/components/MusicUpload.tsx index dd6d3bc..81d6565 100644 --- a/packages/frontend/src/components/MusicUpload.tsx +++ b/packages/frontend/src/components/MusicUpload.tsx @@ -41,6 +41,10 @@ export const MusicUpload: React.FC = ({ onUploadComplete }) => const toast = useToast(); const onDrop = useCallback(async (acceptedFiles: File[]) => { + console.log('onDrop called with files:', acceptedFiles); + console.log('Current targetFolder:', targetFolder); + console.log('Current markForScan:', markForScan); + setIsUploading(true); const newProgress: UploadProgress[] = acceptedFiles.map(file => ({ fileName: file.name, @@ -113,15 +117,21 @@ export const MusicUpload: React.FC = ({ onUploadComplete }) => onUploadComplete?.(results); } - }, [onUploadComplete, toast]); + }, [onUploadComplete, toast, targetFolder, markForScan]); - const { getRootProps, getInputProps, isDragActive } = useDropzone({ + const { getRootProps, getInputProps, isDragActive, fileRejections } = useDropzone({ onDrop, accept: { 'audio/*': ['.mp3', '.wav', '.flac', '.aac', '.m4a', '.ogg', '.wma', '.opus'], }, maxSize: 100 * 1024 * 1024, // 100MB multiple: true, + onDropRejected: (rejectedFiles) => { + console.log('Files rejected:', rejectedFiles); + rejectedFiles.forEach(({ file, errors }) => { + console.error(`File ${file.name} rejected:`, errors); + }); + }, }); // Load folders for dropdown @@ -197,6 +207,22 @@ export const MusicUpload: React.FC = ({ onUploadComplete }) => Add to "To Be Scanned" + + {fileRejections.length > 0 && ( + + + + File Rejected + + {fileRejections.map(({ file, errors }) => ( + + {file.name}: {errors.map(e => e.message).join(', ')} + + ))} + + + + )}