synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
46 lines • 3.32 kB
JavaScript
"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