mirror of
https://github.com/utopia-os/utopia-ui.git
synced 2026-03-01 12:44:17 +00:00
37 lines
1.0 KiB
JavaScript
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 };
|