synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
88 lines (87 loc) • 2.91 kB
JavaScript
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 "lodash-es";
import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
import "@tanstack/react-query";
import "../../utils/PermissionLevelToAccessType.js";
import { useMemo as a, useEffect as l } from "react";
import "../../utils/context/SynapseContext.js";
import "use-deep-compare-effect";
import "react/jsx-runtime";
import "@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 { useGetUserGroupHeaders as f } from "../../synapse-queries/user/useUserGroupHeader.js";
import { useGetRealmPrincipals as G } from "../../synapse-queries/realm/useRealmPrincipals.js";
import { compareResourceAccessAndUserGroupHeader as H } from "./ResourceAccessAndUserGroupHeader.js";
function _(o) {
const { data: c } = G(), u = c || {}, {
authenticatedUsers: p,
publicGroup: n
} = u, m = a(
() => o.map((e) => e.principalId),
[o]
), {
data: t,
isLoading: d,
error: i
} = f(m.map(String), {
enabled: m.length > 0
});
return l(() => {
i && console.error("Error fetching user group headers: ", i);
}, [i]), {
sortedResourceAccessList: a(() => {
if (!t)
return null;
const e = o.map(
(r) => ({
resourceAccess: r,
userGroupHeader: t.find(
(s) => String(s.ownerId) === String(r.principalId)
)
})
);
return e.every(
(r) => !!r.userGroupHeader
) ? e.toSorted(
(r, s) => H(
r,
s,
p,
n
)
).map((r) => r.resourceAccess) : (console.warn(
"Some ACL entries do not have a corresponding UserGroupHeader. The ResourceAccess list will not be sorted. Missing entries: ",
e.filter((r) => !r.userGroupHeader)
), null);
}, [
o,
t,
p,
n
]),
isLoading: d
};
}
export {
_ as default
};
//# sourceMappingURL=useSortResourceAccessList.js.map