/* eslint-disable */ // @ts-nocheck import PolicyRepresentation from "@keycloak/keycloak-admin-client/lib/defs/policyRepresentation"; import { PolicyQuery } from "@keycloak/keycloak-admin-client/lib/resources/clients"; import { KeycloakDataTable, ListEmptyState, useFetch, } from "../../../shared/keycloak-ui-shared"; import { Button, ButtonVariant, Dropdown, DropdownItem, DropdownList, MenuToggle, Modal, ModalVariant, } from "../../../shared/@patternfly/react-core"; import { CaretDownIcon, FilterIcon } from "../../../shared/@patternfly/react-icons"; import { sortBy } from "lodash-es"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useAdminClient } from "../../admin-client"; import { capitalizeFirstLetterFormatter } from "../../util"; import useToggle from "../../utils/useToggle"; export type ExistingPoliciesDialogProps = { toggleDialog: () => void; onAssign: (policies: { policy: PolicyRepresentation }[]) => void; open: boolean; permissionClientId: string; }; export const ExistingPoliciesDialog = ({ toggleDialog, onAssign, open, permissionClientId, }: ExistingPoliciesDialogProps) => { const { t } = useTranslation(); const { adminClient } = useAdminClient(); const [rows, setRows] = useState([]); const [filterType, setFilterType] = useState(undefined); const [isFilterTypeDropdownOpen, toggleIsFilterTypeDropdownOpen] = useToggle(); const [providers, setProviders] = useState([]); useFetch( () => adminClient.clients.listPolicyProviders({ id: permissionClientId!, }), (providers) => { const formattedProviders = providers .filter((p) => p.type !== "resource" && p.type !== "scope") .map((provider) => provider.name) .filter((name) => name !== undefined); setProviders(sortBy(formattedProviders)); }, [permissionClientId], ); const loader = async (first?: number, max?: number, search?: string) => { const params: PolicyQuery = { id: permissionClientId!, permission: "false", first, max, }; if (search) { params.name = search; } if (filterType) { params.type = filterType; } return (await adminClient.clients.listPolicies(params)) || []; }; return ( , ]} > { setFilterType(value as string | undefined); toggleIsFilterTypeDropdownOpen(); }} onOpenChange={toggleIsFilterTypeDropdownOpen} toggle={(ref) => ( } statusIcon={} > {filterType ? filterType : t("allTypes")} )} isOpen={isFilterTypeDropdownOpen} > setFilterType(undefined)} > {t("allTypes")} {providers.map((name) => ( setFilterType(name)} > {name} ))} } canSelectAll onSelect={(selectedRows) => setRows(selectedRows)} columns={[ { name: "name" }, { name: "type", cellFormatters: [capitalizeFirstLetterFormatter()], }, { name: "description" }, ]} emptyState={ } /> ); };