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

114 lines (113 loc) 3.94 kB
import { jsxs as E, jsx as p } from "react/jsx-runtime"; import "../../synapse-client/SynapseClient.js"; import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode"; import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse"; import "@sage-bionetworks/synapse-client/util/SynapseClientError"; import "@sage-bionetworks/synapse-types"; import "../../utils/functions/EntityTypeUtils.js"; import "../../utils/SynapseConstants.js"; import { isEqual as L } from "lodash-es"; import "@sage-bionetworks/synapse-client/util/synapseClientFetch"; import "@tanstack/react-query"; import { getAccessTypeFromPermissionLevel as R } from "../../utils/PermissionLevelToAccessType.js"; import { forwardRef as S, useState as T, useEffect as g, useImperativeHandle as v } from "react"; import "../../utils/context/SynapseContext.js"; import "use-deep-compare-effect"; import { Stack as x, Alert as N } from "@mui/material"; import "../../utils/hooks/useCookiePreferences.js"; import "../../utils/hooks/useSourceAppConfigs.js"; import "universal-cookie"; import "../../utils/AppUtils/session/ApplicationSessionContext.js"; import "../../utils/context/FullContextProvider.js"; import "../../utils/context/DocumentMetadataContext.js"; import '../../style/components/_spinner.css';/* empty css */ import "@tanstack/query-core"; import "lodash-es/isEmpty"; import "lodash-es/isEqual"; import "lodash-es/xorWith"; import "react-router"; import "@sage-bionetworks/synapse-client"; import "../../utils/types/IsType.js"; import { useGetOAuthClientACL as O, useUpdateOAuthClientACL as y } from "../../synapse-queries/oauth/useOAuthClient.js"; import { AclEditor as U } from "../AclEditor/AclEditor.js"; import _ from "../AclEditor/useUpdateAcl.js"; import { convertResourceAccessSetToSRC as M, updateACLWithSRCResourceAccessList as P } from "../../utils/functions/AccessControlListUtils.js"; const b = [ "CAN_ADMINISTER_OAUTH_CLIENT" ], Ie = S(function(l, a) { const { clientId: s, onSaveComplete: o } = l, [c, r] = T(null), u = () => { r(null), o(!0); }, A = (e) => { r(e.reason), o(!1); }, { data: t, isLoading: d } = O(s, { // Infinite staleTime ensures this won't get re-fetched unless explicitly invalidated by the mutation staleTime: 1 / 0 }), { resourceAccessList: i, setResourceAccessList: n, addResourceAccessItem: f, updateResourceAccessItem: C, removeResourceAccessItem: I, resetDirtyState: h } = _({ onChange: () => r(null), onError: r }); g(() => { t && (h(), n( M(t.resourceAccess) )); }, [t, n]); const { mutate: m } = y({ onSuccess: () => u(), onError: (e) => A(e) }); return v( a, () => ({ save() { const e = P(t, i); t === null && e == null || // ignore properties that will change when the ACL is saved (etag, modifiedOn) L(t?.resourceAccess, i) && t?.id === e?.id ? o(!0) : m(e); } }), [s, t, i, o, m] ), /* @__PURE__ */ E( x, { direction: "column", sx: { gap: "20px" }, children: [ /* @__PURE__ */ p( U, { resourceAccessList: i, availablePermissionLevels: b, isLoading: d, canEdit: !0, emptyText: ( /* This should never happen */ "" ), onAddPrincipalToAcl: (e) => f( e, R("CAN_ADMINISTER_OAUTH_CLIENT") ), updateResourceAccessItem: C, removeResourceAccessItem: I, showAddRemovePublicButton: !1, showNotifyCheckbox: !1, isInherited: !1 } ), c && /* @__PURE__ */ p(N, { severity: "error", children: c }) ] } ); }); export { Ie as OAuthClientAclEditor }; //# sourceMappingURL=OAuthClientAclEditor.js.map