UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

160 lines (159 loc) 5.5 kB
import { jsxs as a, jsx as t, Fragment as q } from "react/jsx-runtime"; import { formatDate as x } from "../../../utils/functions/DateFormatter.js"; import { Alert as d, Typography as c, Link as y, Box as I } from "@mui/material"; import L from "@mui/material/Stack"; import { SubmissionState as s } from "@sage-bionetworks/synapse-types"; import C from "dayjs"; import { useState as O } from "react"; import { RequirementItemStatus as i } from "../AccessApprovalCheckMark.js"; import k from "../RequirementItem/RequirementItem.js"; const B = "Your data access request has been approved.", N = "This data access requirement is fulfilled by your team membership and permissions."; function M(r, o) { if (o) return i.COMPLETE; if (!r.currentSubmissionStatus) return r.isApproved ? i.COMPLETE : i.LOCKED; switch (r.currentSubmissionStatus.state) { case s.APPROVED: return r.isApproved ? i.COMPLETE : i.LOCKED; case s.SUBMITTED: return i.PENDING; case s.REJECTED: case s.CANCELLED: default: return i.LOCKED; } } function j(r, o, e, m) { const { onRequestAccess: p, onRejectTerms: h, onCancelDataAccessRequest: E } = m, n = []; return r && (r.currentSubmissionStatus == null ? (n.push({ variant: "outlined", onClick: p, // Show "Update Request" if approved, "Request access" otherwise children: r.isApproved ? "Update Request" : "Request access" }), !o && !r.isApproved && n.push({ variant: "text", onClick: h, children: "I do not accept" })) : [ s.APPROVED, s.REJECTED, s.CANCELLED ].includes(r.currentSubmissionStatus.state) ? n.push({ variant: "outlined", onClick: p, children: "Update Request" }) : r.currentSubmissionStatus.state === s.SUBMITTED && n.push({ variant: "outlined", onClick: E, children: "Cancel Request", loading: e })), n; } function G(r) { const { accessRequirement: o, accessRequirementStatus: e, isLoading: m, wikiPage: p, restrictionInformation: h, onRejectTerms: E, onRequestAccess: n, error: v, onCancelDataAccessRequest: A, cancelRequestIsPending: D } = r, R = h?.restrictionDetails?.find( (P) => P.accessRequirementId === o.id ), [f, g] = O(!0), u = e?.isApproved, l = !!R?.isExempt, S = /* @__PURE__ */ a(L, { gap: 2, children: [ p, e?.currentSubmissionStatus?.state === s.SUBMITTED && /* @__PURE__ */ t(d, { className: "access-requirement-list-alert", severity: "info", children: /* @__PURE__ */ t("strong", { children: "You have submitted a data access request." }) }), e?.currentSubmissionStatus?.state === s.APPROVED && u && /* @__PURE__ */ t( d, { className: "access-requirement-list-alert", severity: "success", children: /* @__PURE__ */ t("strong", { children: "Your data access request has been approved." }) } ), e?.currentSubmissionStatus?.state === s.APPROVED && !u && /* @__PURE__ */ a( d, { className: "access-requirement-list-alert", severity: "warning", children: [ /* @__PURE__ */ t(c, { variant: "smallText1", gutterBottom: !0, children: /* @__PURE__ */ t("strong", { children: "Your data access has been revoked." }) }), e.expiredOn && C(e.expiredOn).isBefore(C()) && /* @__PURE__ */ a(c, { variant: "smallText1", gutterBottom: !0, children: [ "Your access expired on", " ", x(C(e.expiredOn)), "." ] }) ] } ), e?.currentSubmissionStatus?.state === s.REJECTED && /* @__PURE__ */ a(d, { className: "access-requirement-list-alert", severity: "error", children: [ /* @__PURE__ */ t(c, { variant: "body1", gutterBottom: !0, children: /* @__PURE__ */ t("strong", { children: "Your data access request has been rejected." }) }), /* @__PURE__ */ t( c, { variant: "body1", gutterBottom: !0, sx: { whiteSpace: "pre-line" }, children: e?.currentSubmissionStatus.rejectedReason || "" } ) ] }), e?.currentSubmissionStatus?.state === s.CANCELLED && /* @__PURE__ */ t(d, { className: "access-requirement-list-alert", severity: "info", children: /* @__PURE__ */ t(c, { variant: "body1", children: "Your data access request has been canceled." }) }) ] }); let T = []; !m && e && (T = j( e, l, D, { onRequestAccess: n, onRejectTerms: E, onCancelDataAccessRequest: A } )); let b = i.LOADING; return !m && e && (b = M( e, l )), /* @__PURE__ */ a( k, { "data-testid": "ManagedACTAccessRequirementItem", status: b, actions: T, children: [ !u && !l && /* @__PURE__ */ t(q, { children: S }), (u || l) && /* @__PURE__ */ a(q, { children: [ /* @__PURE__ */ a(c, { variant: "body1", children: [ u && B, " ", l && N, " ", /* @__PURE__ */ t( y, { role: "button", onClick: () => { g(!f); }, children: f ? "View Terms" : "Hide Terms" } ) ] }), !f && /* @__PURE__ */ t(I, { sx: { my: 1 }, children: S }) ] }), v ] } ); } export { G as ManagedACTAccessRequirementItemView, G as default }; //# sourceMappingURL=ManagedACTAccessRequirementItemView.js.map