UNPKG

synapse-react-client

Version:

[![Build Status](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client.svg?branch=main)](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synaps

48 lines 2.34 kB
"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