2025-06-09 12:01:35 +02:00

37 lines
1.0 KiB
JavaScript

/**
* Patched version of attr-accept to fix compatibility issues with react-dropzone
*/
function attrAccept(file, acceptedFiles) {
if (file && acceptedFiles) {
var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');
if (acceptedFilesArray.length === 0) {
return true;
}
var fileName = file.name || '';
var mimeType = (file.type || '').toLowerCase();
var baseMimeType = mimeType.replace(/\/.*$/, '');
return acceptedFilesArray.some(function (type) {
var validType = type.trim().toLowerCase();
if (validType.charAt(0) === '.') {
return fileName.toLowerCase().endsWith(validType);
} else if (validType.endsWith('/*')) {
// This is something like a image/* mime type
return baseMimeType === validType.replace(/\/.*$/, '');
}
return mimeType === validType;
});
}
return true;
}
// Export as both default and named export to support different import styles
export default attrAccept;
export { attrAccept };