@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
40 lines • 2.05 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { useFetch } from "../../ui-shared";
import { DescriptionList } from "@patternfly/react-core";
import { useState } from "react";
import { useAdminClient } from "../../admin-client";
import { KeycloakSpinner } from "../../ui-shared";
import { useRealm } from "../../context/realm-context/RealmContext";
import { toPermissionDetails } from "../../clients/routes/PermissionDetails";
import { toScopeDetails } from "../../clients/routes/Scope";
import { DetailDescription, DetailDescriptionLink } from "../../clients/authorization/DetailDescription";
import "./detail-cell.css";
export const DetailCell = ({ id, clientId, uris }) => {
const { adminClient } = useAdminClient();
const { realm } = useRealm();
const [scope, setScope] = useState();
const [permissions, setPermissions] = useState();
useFetch(() => Promise.all([
adminClient.clients.listScopesByResource({
id: clientId,
resourceName: id,
}),
adminClient.clients.listPermissionsByResource({
id: clientId,
resourceId: id,
}),
]), ([scopes, permissions]) => {
setScope(scopes);
setPermissions(permissions);
}, []);
if (!permissions || !scope) {
return _jsx(KeycloakSpinner, {});
}
return (_jsxs(DescriptionList, { isHorizontal: true, className: "keycloak_resource_details", children: [_jsx(DetailDescription, { name: "uris", array: uris }), _jsx(DetailDescriptionLink, { name: "scopes", array: scope, convert: (s) => s.name, link: (scope) => toScopeDetails({ id: clientId, realm, scopeId: scope.id }) }), _jsx(DetailDescriptionLink, { name: "associatedPermissions", array: permissions, convert: (p) => p.name, link: (permission) => toPermissionDetails({
id: clientId,
realm,
permissionId: permission.id,
permissionType: "resource",
}) })] }));
};
//# sourceMappingURL=DetailCell.js.map