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