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