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

98 lines 6.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LoadingAccessRequirementCard = exports.MeetAccessRequirementCard = exports.LOCK_TITLE = exports.ACT_TITLE = exports.SELF_SIGN_TITLE = exports.TERMS_OF_USE_TITLE = void 0; var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importStar)(require("react")); var react_error_boundary_1 = require("react-error-boundary"); var ErrorUtils_1 = require("../../utils/ErrorUtils"); var useGetAccessRequirement_1 = (0, tslib_1.__importDefault)(require("../../utils/hooks/SynapseAPI/useGetAccessRequirement")); var react_bootstrap_1 = require("react-bootstrap"); var utils_1 = require("../row_renderers/utils"); var SynapseConstants_1 = require("../../utils/SynapseConstants"); var AccessRequirementList_1 = (0, tslib_1.__importStar)(require("../access_requirement_list/AccessRequirementList")); var lab_1 = require("@material-ui/lab"); exports.TERMS_OF_USE_TITLE = 'Requires Acceptance of Data-Specific Terms of Use'; exports.SELF_SIGN_TITLE = 'Requires Acceptance of Data-Specific Terms of Use'; exports.ACT_TITLE = 'Requires Approval of Data-Specific Access Requirements'; exports.LOCK_TITLE = 'Access Restricted'; var MeetAccessRequirementCard = function (_a) { var _b, _c, _d; var accessRequirementId = _a.accessRequirementId, count = _a.count; var handleError = (0, react_error_boundary_1.useErrorHandler)(); var _e = (0, useGetAccessRequirement_1.default)(accessRequirementId), ar = _e.data, isFetching = _e.isFetching, isError = _e.isError, newError = _e.error; (0, react_1.useEffect)(function () { if (isError && newError) { handleError((0, ErrorUtils_1.toError)(newError)); } }, [isError, newError, handleError]); var _f = (0, react_1.useState)(false), isShowingAccessRequirement = _f[0], setIsShowingAccessRequirement = _f[1]; var content = react_1.default.createElement(react_1.default.Fragment, null); if (!isError && !isFetching && ar) { var title = undefined; var iconType = ''; var description = ''; switch (ar.concreteType) { case AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.TermsOfUseAccessRequirement: title = exports.TERMS_OF_USE_TITLE; iconType = SynapseConstants_1.EASY_DIFFICULTY; description = (_b = ar.description) !== null && _b !== void 0 ? _b : ''; break; case AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.SelfSignAccessRequirement: { title = exports.SELF_SIGN_TITLE; var selfSignAR = ar; if (selfSignAR.isValidatedProfileRequired) { iconType = SynapseConstants_1.VARIABLE_DIFFICULTY; } else if (selfSignAR.isCertifiedUserRequired) { iconType = SynapseConstants_1.MEDIUM_DIFFICULTY; } else { iconType = SynapseConstants_1.EASY_DIFFICULTY; } description = (_c = ar.description) !== null && _c !== void 0 ? _c : ''; break; } case AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.ManagedACTAccessRequirement: case AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.ACTAccessRequirement: title = exports.ACT_TITLE; iconType = SynapseConstants_1.VARIABLE_DIFFICULTY; description = (_d = ar.description) !== null && _d !== void 0 ? _d : ''; break; case 'org.sagebionetworks.repo.model.LockAccessRequirement': title = exports.LOCK_TITLE; iconType = SynapseConstants_1.VARIABLE_DIFFICULTY; description = 'Access restricted pending review by Synapse Access and Compliance Team.'; break; } if (title) { content = react_1.default.createElement("div", { className: "MeetAccessRequirementCard actionRequiredCard" }, react_1.default.createElement(utils_1.Icon, { type: iconType }), react_1.default.createElement("div", { className: "metadata" }, react_1.default.createElement("div", { className: "title" }, title), react_1.default.createElement("div", { className: "fileCount" }, count, " File(s)"), react_1.default.createElement("div", { className: "description" }, description)), react_1.default.createElement("div", { className: "startButtonContainer" }, react_1.default.createElement(react_bootstrap_1.Button, { className: "startButton", variant: "secondary", onClick: function () { return setIsShowingAccessRequirement(true); } }, "Start"))); } } return (react_1.default.createElement(react_1.default.Fragment, null, !isError && !isFetching && content, isFetching && (react_1.default.createElement(exports.LoadingAccessRequirementCard, null)), isShowingAccessRequirement && ar && (react_1.default.createElement(AccessRequirementList_1.default, { entityId: ar.subjectIds[0].id, accessRequirementFromProps: [ar], renderAsModal: true, numberOfFilesAffected: count, onHide: function () { return setIsShowingAccessRequirement(false); } })))); }; exports.MeetAccessRequirementCard = MeetAccessRequirementCard; var LoadingAccessRequirementCard = function () { return react_1.default.createElement("div", { className: "MeetAccessRequirementCard actionRequiredCard" }, react_1.default.createElement(lab_1.Skeleton, { variant: "rect", width: 136, height: 74 }), react_1.default.createElement("div", { className: "metadata" }, react_1.default.createElement("div", { className: "title" }, react_1.default.createElement(lab_1.Skeleton, { width: 320 })), react_1.default.createElement("div", { className: "fileCount" }, react_1.default.createElement(lab_1.Skeleton, { width: 100 }))), react_1.default.createElement("div", { className: "startButtonContainer" }, react_1.default.createElement(lab_1.Skeleton, { variant: "rect", width: 160, height: 33 }))); }; exports.LoadingAccessRequirementCard = LoadingAccessRequirementCard; //# sourceMappingURL=MeetAccessRequirementCard.js.map