synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
160 lines (159 loc) • 5.5 kB
JavaScript
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