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

46 lines 3.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AnnotationsTable = void 0; var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importDefault)(require("react")); var lodash_es_1 = require("lodash-es"); var EntityTypeUtils_1 = require("../../../utils/functions/EntityTypeUtils"); var getEndpoint_1 = require("../../../utils/functions/getEndpoint"); var useSchema_1 = require("../../../utils/hooks/SynapseAPI/useSchema"); var SynapseContext_1 = require("../../../utils/SynapseContext"); var useEntity_1 = require("../../../utils/hooks/SynapseAPI/useEntity"); var SkeletonTable_1 = require("../../../assets/skeletons/SkeletonTable"); var AnnotationsTable = function (_a) { var entityId = _a.entityId; /** * Currently, schema/validation features are only shown in experimental mode. */ var isInExperimentalMode = (0, SynapseContext_1.useSynapseContext)().isInExperimentalMode; var _b = (0, useEntity_1.useGetJson)(entityId), entityMetadata = _b.entityMetadata, annotations = _b.annotations, isLoading = _b.isLoading; var boundSchema = (0, useSchema_1.useGetSchemaBinding)(entityId, { enabled: isInExperimentalMode, }).data; return isLoading ? (react_1.default.createElement(SkeletonTable_1.SkeletonTable, { numRows: 3, numCols: 2 })) : (react_1.default.createElement(react_1.default.Fragment, null, entityMetadata && annotations && (0, lodash_es_1.isEmpty)(annotations) ? (react_1.default.createElement("div", { className: "placeholder" }, "This", ' ', (0, EntityTypeUtils_1.entityTypeToFriendlyName)((0, EntityTypeUtils_1.convertToEntityType)(entityMetadata.concreteType)), ' ', "has no annotations.")) : null, react_1.default.createElement("table", { className: "AnnotationsTable" }, react_1.default.createElement("tbody", null, annotations && Object.keys(annotations).map(function (key) { return (react_1.default.createElement("tr", { key: key, className: "AnnotationsTable__Row" }, react_1.default.createElement("td", { className: "AnnotationsTable__Row__Key" }, key), react_1.default.createElement("td", { className: "AnnotationsTable__Row__Value" }, Array.isArray(annotations[key]) ? annotations[key].join(', ') : annotations[key].toString()))); }), boundSchema && isInExperimentalMode ? (react_1.default.createElement("tr", { className: "AnnotationsTable__Row" }, react_1.default.createElement("td", { className: "AnnotationsTable__Row__Key Schema" }, "Validation Schema"), react_1.default.createElement("td", { className: "AnnotationsTable__Row__Value" }, react_1.default.createElement("a", { href: (0, getEndpoint_1.getEndpoint)(getEndpoint_1.BackendDestinationEnum.REPO_ENDPOINT) + "repo/v1/schema/type/registered/" + boundSchema.jsonSchemaVersionInfo.$id, target: "_blank", rel: "noopener noreferrer" }, boundSchema.jsonSchemaVersionInfo.schemaName)))) : null)))); }; exports.AnnotationsTable = AnnotationsTable; //# sourceMappingURL=AnnotationsTable.js.map