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

116 lines 6.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var React = (0, tslib_1.__importStar)(require("react")); var react_bootstrap_1 = require("react-bootstrap"); var ReactBootstrap = (0, tslib_1.__importStar)(require("react-bootstrap")); var react_1 = require("react"); var SynapseClient_1 = require("../../../utils/SynapseClient"); var SynapseContext_1 = require("../../../utils/SynapseContext"); var RequestDataAccessStep1 = function (props) { var requestDataStepCallback = props.requestDataStepCallback, managedACTAccessRequirement = props.managedACTAccessRequirement, onHide = props.onHide; var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken; var _a = (0, react_1.useState)(''), projectLead = _a[0], setProjectLead = _a[1]; var _b = (0, react_1.useState)(''), institution = _b[0], setInstitution = _b[1]; var _c = (0, react_1.useState)(''), intendedDataUseStatement = _c[0], setIntendedDataUseStatement = _c[1]; var _d = (0, react_1.useState)(), alert = _d[0], setAlert = _d[1]; var researchProjectRef = (0, react_1.useRef)({}); var mounted = true; (0, react_1.useEffect)(function () { if (mounted) { setAlert(undefined); retrieveExistingResearchProject(); } return function () { mounted = false; }; }, [accessToken]); var retrieveExistingResearchProject = function () { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () { var researchProject, e_1; return (0, tslib_1.__generator)(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); return [4 /*yield*/, (0, SynapseClient_1.getResearchProject)(String(managedACTAccessRequirement.id), accessToken)]; case 1: researchProject = _a.sent(); if (researchProject.id) { researchProjectRef.current = researchProject; setProjectLead(researchProject.projectLead); setInstitution(researchProject.institution); setIntendedDataUseStatement(researchProject.intendedDataUseStatement); } return [3 /*break*/, 3]; case 2: e_1 = _a.sent(); console.log('RequestDataAccessStep1: Error getting research project data: ', e_1); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); }; var getErrorMessage = function (reason) { if (reason === void 0) { reason = ''; } return (React.createElement(React.Fragment, null, React.createElement("strong", null, "Unable to update research project data."), React.createElement("br", null), reason)); }; var handleSubmit = function (e) { e.preventDefault(); var requestObj = Object.assign({}, researchProjectRef.current, { accessRequirementId: String(managedACTAccessRequirement.id), institution: institution, projectLead: projectLead, intendedDataUseStatement: intendedDataUseStatement, }); try { (0, SynapseClient_1.updateResearchProject)(requestObj, accessToken) .then(function (researchProject) { requestDataStepCallback === null || requestDataStepCallback === void 0 ? void 0 : requestDataStepCallback({ managedACTAccessRequirement: managedACTAccessRequirement, step: 2, researchProjectId: researchProject.id, }); }) .catch(function (e) { console.log('RequestDataAccessStep1: Error updating research project data: ', e); setAlert({ key: 'danger', message: getErrorMessage(e.reason), }); }); } catch (e) { console.log('RequestDataAccessStep1: Error updating research project data: ', e); setAlert({ key: 'danger', message: getErrorMessage(e.reason), }); } }; return (React.createElement(React.Fragment, null, React.createElement(react_bootstrap_1.Form, { className: 'access-request-form1', onSubmit: handleSubmit }, React.createElement(ReactBootstrap.Modal.Header, { closeButton: true }, React.createElement(ReactBootstrap.Modal.Title, { className: "AccessRequirementList__title" }, "Request Access")), React.createElement(ReactBootstrap.Modal.Body, null, React.createElement("p", null, "Please tell us about your project."), React.createElement(react_bootstrap_1.Form.Group, null, React.createElement(react_bootstrap_1.Form.Label, { htmlFor: 'project-lead' }, "Project Lead"), React.createElement(react_bootstrap_1.Form.Control, { id: 'project-lead', type: "text", value: projectLead, required: true, onChange: function (e) { return setProjectLead(e.target.value); } })), React.createElement(react_bootstrap_1.Form.Group, null, React.createElement(react_bootstrap_1.Form.Label, { htmlFor: 'institution' }, "Institution"), React.createElement(react_bootstrap_1.Form.Control, { id: 'institution', type: "text", value: institution, required: true, onChange: function (e) { return setInstitution(e.target.value); } })), managedACTAccessRequirement.isIDURequired && (React.createElement(react_bootstrap_1.Form.Group, null, React.createElement(react_bootstrap_1.Form.Label, { htmlFor: 'data-use' }, "Intended Data Use Statement -", managedACTAccessRequirement.isIDUPublic && (React.createElement("i", { id: 'idu-visible' }, "this will be visible to the public"))), React.createElement(react_bootstrap_1.Form.Control, { id: 'data-use', as: "textarea", value: intendedDataUseStatement, rows: 10, required: true, onChange: function (e) { return setIntendedDataUseStatement(e.target.value); } }))), /* Alert message */ alert && React.createElement(react_bootstrap_1.Alert, { variant: alert.key }, alert.message)), React.createElement(ReactBootstrap.Modal.Footer, null, React.createElement(react_bootstrap_1.Button, { variant: "link", onClick: function () { return onHide === null || onHide === void 0 ? void 0 : onHide(); } }, "Cancel"), React.createElement(react_bootstrap_1.Button, { variant: "primary", type: "submit" }, "Save changes"))))); }; exports.default = RequestDataAccessStep1; //# sourceMappingURL=RequestDataAccessStep1.js.map