synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
53 lines • 2.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EntityTypeIcon = void 0;
var tslib_1 = require("tslib");
var React = (0, tslib_1.__importStar)(require("react"));
var synapseTypes_1 = require("../utils/synapseTypes");
var fontawesome_svg_core_1 = require("@fortawesome/fontawesome-svg-core");
var free_solid_svg_icons_1 = require("@fortawesome/free-solid-svg-icons");
var free_brands_svg_icons_1 = require("@fortawesome/free-brands-svg-icons");
var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
var EntityTypeUtils_1 = require("../utils/functions/EntityTypeUtils");
fontawesome_svg_core_1.library.add(free_solid_svg_icons_1.faLink, free_solid_svg_icons_1.faFolder, free_solid_svg_icons_1.faFile, free_solid_svg_icons_1.faListAlt, free_solid_svg_icons_1.faServer, free_solid_svg_icons_1.faTable, free_solid_svg_icons_1.faThList, free_brands_svg_icons_1.faDocker);
var _ENTITY_TYPE_ICON_MAP = new Map([
[synapseTypes_1.EntityType.PROJECT, free_solid_svg_icons_1.faListAlt],
[synapseTypes_1.EntityType.FOLDER, free_solid_svg_icons_1.faFolder],
[synapseTypes_1.EntityType.FILE, free_solid_svg_icons_1.faFile],
[synapseTypes_1.EntityType.TABLE, free_solid_svg_icons_1.faTable],
[synapseTypes_1.EntityType.LINK, free_solid_svg_icons_1.faLink],
[synapseTypes_1.EntityType.ENTITY_VIEW, free_solid_svg_icons_1.faThList],
[synapseTypes_1.EntityType.DOCKER_REPO, free_brands_svg_icons_1.faDocker],
[synapseTypes_1.EntityType.SUBMISSION_VIEW, free_solid_svg_icons_1.faServer],
[synapseTypes_1.EntityType.DATASET, free_solid_svg_icons_1.faTh],
]);
var getIconTypeForEntity = function (type) {
switch (type) {
case synapseTypes_1.EntityType.PROJECT:
case synapseTypes_1.EntityType.FOLDER:
case synapseTypes_1.EntityType.FILE:
case synapseTypes_1.EntityType.TABLE:
case synapseTypes_1.EntityType.LINK:
case synapseTypes_1.EntityType.ENTITY_VIEW:
case synapseTypes_1.EntityType.DOCKER_REPO:
case synapseTypes_1.EntityType.SUBMISSION_VIEW:
case synapseTypes_1.EntityType.DATASET:
return _ENTITY_TYPE_ICON_MAP.get(type);
default:
return '';
}
};
var EntityTypeIcon = function (props) {
var type = props.type;
if (!type) {
return React.createElement(React.Fragment, null);
}
var iconType = getIconTypeForEntity(type);
if (iconType === '') {
console.warn('Could not retrieve icon for Entity with type: ', type);
return React.createElement(React.Fragment, null);
}
return (React.createElement(react_fontawesome_1.FontAwesomeIcon, (0, tslib_1.__assign)({ title: (0, EntityTypeUtils_1.entityTypeToFriendlyName)(type) }, props, { icon: iconType })));
};
exports.EntityTypeIcon = EntityTypeIcon;
//# sourceMappingURL=EntityIcon.js.map