@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
15 lines • 1.71 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { useTranslation } from "react-i18next";
import { Modal, ModalVariant, TextContent, Text, TextVariants, } from "@patternfly/react-core";
import { Table, Tbody, Td, Th, Thead, Tr } from "@patternfly/react-table";
import { isValidComponentType } from "../../clients/authorization/policy/PolicyDetails";
import { useMemo } from "react";
import useLocaleSort, { mapByKey } from "../../utils/useLocaleSort";
export const NewPolicyDialog = ({ policyProviders, onSelect, toggleDialog, }) => {
const { t } = useTranslation();
const localeSort = useLocaleSort();
const sortedPolicies = useMemo(() => policyProviders ? localeSort(policyProviders, mapByKey("name")) : [], [policyProviders]);
return (_jsx(Modal, { "aria-label": t("createPolicy"), variant: ModalVariant.medium, header: _jsxs(TextContent, { children: [_jsx(Text, { component: TextVariants.h1, children: t("chooseAPolicyType") }), _jsx(Text, { children: t("chooseAPolicyTypeInstructions") })] }), isOpen: true, onClose: toggleDialog, children: _jsxs(Table, { "aria-label": t("policies"), variant: "compact", children: [_jsx(Thead, { children: _jsxs(Tr, { children: [_jsx(Th, { children: t("name") }), _jsx(Th, { children: t("description") })] }) }), _jsx(Tbody, { children: sortedPolicies.map((provider) => (_jsxs(Tr, { "data-testid": provider.type, onRowClick: () => onSelect(provider), isClickable: true, children: [_jsx(Td, { children: provider.name }), _jsx(Td, { children: isValidComponentType(provider.type) &&
t(`policyProvider.${provider.type}`) })] }, provider.type))) })] }) }));
};
//# sourceMappingURL=NewPolicyDialog.js.map