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

109 lines 6.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var React = (0, tslib_1.__importStar)(require("react")); var react_1 = require("react"); var MarkdownSynapse_1 = (0, tslib_1.__importDefault)(require("../MarkdownSynapse")); var synapseTypes_1 = require("../../utils/synapseTypes/"); var utils_1 = require("../../utils"); var AccessApprovalCheckMark_1 = (0, tslib_1.__importDefault)(require("./AccessApprovalCheckMark")); var AccessRequirementList_1 = require("./AccessRequirementList"); var SynapseContext_1 = require("../../utils/SynapseContext"); var getEndpoint_1 = require("../../utils/functions/getEndpoint"); function AcceptedRequirements(_a) { var user = _a.user, wikiPage = _a.wikiPage, accessRequirement = _a.accessRequirement, accessRequirementStatus = _a.accessRequirementStatus, _b = _a.showButton, showButton = _b === void 0 ? true : _b, entityId = _a.entityId, onHide = _a.onHide; var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken; var _c = (0, react_1.useState)(true), isHide = _c[0], setIsHide = _c[1]; var propsIsApproved = accessRequirementStatus === null || accessRequirementStatus === void 0 ? void 0 : accessRequirementStatus.isApproved; var _d = (0, react_1.useState)(propsIsApproved), isApproved = _d[0], setIsApproved = _d[1]; var acceptButtonText = ''; if (accessRequirement.concreteType === AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.ManagedACTAccessRequirement || accessRequirement.concreteType === AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.ACTAccessRequirement) { if (window.location.hostname === 'www.synapse.org' || window.location.hostname === 'staging.synapse.org') { acceptButtonText = 'Request access'; } else { acceptButtonText = 'Request access via Synapse.org'; } } else { acceptButtonText = 'I Accept Terms of Use'; } (0, react_1.useEffect)(function () { setIsApproved(propsIsApproved); }, [propsIsApproved]); var gotoSynapseAccessRequirementPage = function () { window.open(getEndpoint_1.PRODUCTION_ENDPOINT_CONFIG.PORTAL + "#!AccessRequirement:AR_ID=" + accessRequirement.id + "&TYPE=ENTITY&ID=" + entityId); }; var onAcceptClicked = function () { if (accessRequirement.concreteType === AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.ManagedACTAccessRequirement || accessRequirement.concreteType === AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.ACTAccessRequirement) { gotoSynapseAccessRequirementPage(); // PORTALS-1483: and close the dialog. onHide === null || onHide === void 0 ? void 0 : onHide(); } else { if (!isApproved) { var accessApprovalRequest = { requirementId: accessRequirement === null || accessRequirement === void 0 ? void 0 : accessRequirement.id, submitterId: user === null || user === void 0 ? void 0 : user.ownerId, accessorId: user === null || user === void 0 ? void 0 : user.ownerId, state: synapseTypes_1.ApprovalState.APPROVED, }; utils_1.SynapseClient.postAccessApproval(accessToken, accessApprovalRequest) .then(function (_) { setIsApproved(true); }) .catch(function (err) { return console.error('Error on post access approval: ', err); }); } } }; var termsOfUse = accessRequirement .termsOfUse; var actContactInfo = accessRequirement .actContactInfo; var isTermsOfUse = accessRequirement.concreteType === AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.TermsOfUseAccessRequirement; var isActContactInfo = accessRequirement.concreteType === AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.ACTAccessRequirement; var isActOrTermsOfUse = (isTermsOfUse && termsOfUse) || (isActContactInfo && actContactInfo); var markdown = React.createElement(React.Fragment, null); if (wikiPage) { markdown = (React.createElement("div", { className: "AcceptRequirementsMarkdown" }, React.createElement(MarkdownSynapse_1.default, { wikiId: wikiPage === null || wikiPage === void 0 ? void 0 : wikiPage.wikiPageId, ownerId: wikiPage === null || wikiPage === void 0 ? void 0 : wikiPage.ownerObjectId, objectType: wikiPage === null || wikiPage === void 0 ? void 0 : wikiPage.ownerObjectType }))); } else if (isActOrTermsOfUse) { markdown = (React.createElement(MarkdownSynapse_1.default, { markdown: isTermsOfUse ? termsOfUse : actContactInfo })); } var isManagedActAr = accessRequirement.concreteType === AccessRequirementList_1.SUPPORTED_ACCESS_REQUIREMENTS.ManagedACTAccessRequirement; var approvedText = isManagedActAr ? 'Your data access request has been approved.' : 'You have accepted the terms of use.'; return (React.createElement(React.Fragment, null, React.createElement("div", { className: "requirement-container" }, React.createElement(AccessApprovalCheckMark_1.default, { isCompleted: isApproved }), React.createElement("div", { className: "terms-of-use-content" }, isApproved ? (React.createElement("div", null, React.createElement("p", null, approvedText, isManagedActAr && (React.createElement("a", { className: "update-request-button", onClick: function () { gotoSynapseAccessRequirementPage(); } }, "Update Request")), React.createElement("a", { className: "view-terms-button", onClick: function () { setIsHide(!isHide); } }, "View Terms")), React.createElement("div", { className: "view-terms " + (isHide ? 'hidden' : 'show') }, markdown))) : (markdown), accessToken && showButton && (React.createElement("div", { className: "button-container " + (isApproved ? "hide" : "default") }, React.createElement("div", { className: "accept-button-container" }, React.createElement("button", { className: "accept-button", onClick: onAcceptClicked }, acceptButtonText)), React.createElement("div", { className: "not-accept-button-container" }, React.createElement("button", { className: "not-accpet-button", onClick: function () { return onHide === null || onHide === void 0 ? void 0 : onHide(); } }, "I do not accept")))))))); } exports.default = AcceptedRequirements; //# sourceMappingURL=AcceptedRequirements.js.map