@braineet/ui
Version:
Braineet design system
78 lines • 3.48 kB
JavaScript
import { FILE_TYPES, FILE_ICON, UPLOAD_ITEM_STATUS } from './constants';
var isImage = function isImage(file) {
var _FILE_TYPES$IMAGE;
return (_FILE_TYPES$IMAGE = FILE_TYPES.IMAGE) == null ? void 0 : _FILE_TYPES$IMAGE.find(function (f) {
return (f == null ? void 0 : f.mime) === (file == null ? void 0 : file.type) && ['svg', 'tiff'].every(function (ext) {
var _file$type;
return !(file != null && (_file$type = file.type) != null && _file$type.includes(ext));
});
});
};
export var isFile = function isFile(file) {
if (file === void 0) {
file = {};
}
try {
return !!file.name && !!file.size;
} catch (error) {
return false;
}
};
export var previewFile = function previewFile(file) {
if (!isImage(file)) {
return null;
}
try {
return URL.createObjectURL(file);
} catch (error) {
console.error(error);
}
};
export var getFileExt = function getFileExt(file) {
var _file$path;
if (!file || !(file != null && file.path)) return null;
var paths = file == null || (_file$path = file.path) == null ? void 0 : _file$path.split('.');
return paths[paths.length - 1];
};
export var getTypeFile = function getTypeFile(file) {
try {
var foundFileType = FILE_TYPES[file == null ? void 0 : file.type];
return (foundFileType == null ? void 0 : foundFileType.type) || (file == null ? void 0 : file.type);
} catch (error) {
console.error(error);
}
};
export var canPreviewFile = function canPreviewFile(file) {
try {
var _Object$values;
var foundFileType = (_Object$values = Object.values(FILE_TYPES)) == null ? void 0 : _Object$values.find(function (fType) {
return (fType == null ? void 0 : fType.type) === (file == null ? void 0 : file.type);
});
return ![UPLOAD_ITEM_STATUS.UPLOADING, UPLOAD_ITEM_STATUS.ERROR].includes(file == null ? void 0 : file.status) && foundFileType;
} catch (error) {
console.error(error);
return false;
}
};
export var getFileIcon = function getFileIcon(file) {
var _Object$values2, _Object$values3, _FILE_TYPES$file$type, _file$icon, _file$icon2, _file$icon3;
var defaultColor = FILE_TYPES.generic.color;
if (!file && !(file != null && file.ext) && !(file != null && file.type)) {
return {
color: defaultColor,
name: FILE_ICON.notFound
};
}
var mimeColor = (_Object$values2 = Object.values(FILE_TYPES)) == null || (_Object$values2 = _Object$values2.find(function (fileType) {
return fileType.type === (file == null ? void 0 : file.type);
})) == null ? void 0 : _Object$values2.color;
var extensionColor = (_Object$values3 = Object.values(FILE_TYPES)) == null || (_Object$values3 = _Object$values3.find(function (fileType) {
return fileType.extension === "." + (file == null ? void 0 : file.ext);
})) == null ? void 0 : _Object$values3.color;
var typeColor = (_FILE_TYPES$file$type = FILE_TYPES[file == null ? void 0 : file.type]) == null ? void 0 : _FILE_TYPES$file$type.color;
var defaultNameIcon = file != null && (_file$icon = file.icon) != null && _file$icon.color || mimeColor || extensionColor || typeColor ? FILE_ICON.default : FILE_ICON.notFound;
return {
name: (file == null || (_file$icon2 = file.icon) == null ? void 0 : _file$icon2.name) || FILE_ICON[file == null ? void 0 : file.type] || defaultNameIcon,
color: (file == null || (_file$icon3 = file.icon) == null ? void 0 : _file$icon3.color) || mimeColor || extensionColor || typeColor || defaultColor
};
};