synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
48 lines • 2.34 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EntityLink = void 0;
var tslib_1 = require("tslib");
var lab_1 = require("@material-ui/lab");
var react_1 = (0, tslib_1.__importDefault)(require("react"));
var EntityTypeUtils_1 = require("../utils/functions/EntityTypeUtils");
var getEndpoint_1 = require("../utils/functions/getEndpoint");
var useEntity_1 = require("../utils/hooks/SynapseAPI/useEntity");
var EntityIcon_1 = require("./EntityIcon");
var EntityLink = function (props) {
var entityOrId = props.entity, className = props.className, _a = props.link, link = _a === void 0 ? true : _a;
var entityId = '';
if (typeof entityOrId === 'string') {
entityId = entityOrId;
}
var fetchedEntity = (0, useEntity_1.useGetEntity)(entityId, undefined, {
enabled: !!entityId && typeof entityOrId === 'string',
}).data;
if (fetchedEntity || typeof entityOrId !== 'string') {
var entity = fetchedEntity !== null && fetchedEntity !== void 0 ? fetchedEntity : entityOrId;
var type = void 0;
if ('concreteType' in entity) {
type = (0, EntityTypeUtils_1.convertToEntityType)(entity.concreteType);
}
else {
type = (0, EntityTypeUtils_1.getEntityTypeFromHeader)(entity);
}
if (link) {
return (react_1.default.createElement("p", { className: className },
react_1.default.createElement("a", { className: className, target: "_blank", rel: "noopener noreferrer", href: getEndpoint_1.PRODUCTION_ENDPOINT_CONFIG.PORTAL + "#!Synapse:" + entity.id },
react_1.default.createElement(EntityIcon_1.EntityTypeIcon, { type: type, style: { marginRight: '5px' } }),
entity.name)));
}
else {
return (react_1.default.createElement("p", { className: className },
react_1.default.createElement(EntityIcon_1.EntityTypeIcon, { type: type, style: { marginRight: '5px' } }),
entity.name));
}
}
else {
// Entity has not been fetched yet
// TODO: Handle not found, unauthorized
return react_1.default.createElement(lab_1.Skeleton, { variant: "rect", width: "100" });
}
};
exports.EntityLink = EntityLink;
//# sourceMappingURL=EntityLink.js.map