/* eslint-disable */ // @ts-nocheck import { HelpItem, useFetch } from "../../../../shared/keycloak-ui-shared"; import { Button, Checkbox, FormGroup } from "../../../../shared/@patternfly/react-core"; import { MinusCircleIcon } from "../../../../shared/@patternfly/react-icons"; import { Table, Tbody, Td, Th, Thead, Tr } from "../../../../shared/@patternfly/react-table"; import { useState } from "react"; import { Controller, useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useAdminClient } from "../../../admin-client"; import { DefaultSwitchControl } from "../../../components/SwitchControl"; import { AddRoleButton, AddRoleMappingModal, FilterType, } from "../../../components/role-mapping/AddRoleMappingModal"; import { Row, ServiceRole } from "../../../components/role-mapping/RoleMapping"; import type { RequiredIdValue } from "./ClientScope"; export const Role = () => { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const { control, getValues, setValue } = useFormContext<{ roles?: RequiredIdValue[]; fetchRoles?: boolean; }>(); const values = getValues("roles"); const [open, setOpen] = useState(false); const [filterType, setFilterType] = useState("clients"); const [selectedRoles, setSelectedRoles] = useState([]); useFetch( async () => { if (values && values.length > 0) { const roles = await Promise.all( values.map((r) => adminClient.roles.findOneById({ id: r.id })), ); return Promise.all( roles.map(async (role) => ({ role: role!, client: role!.clientRole ? await adminClient.clients.findOne({ id: role?.containerId!, }) : undefined, })), ); } return Promise.resolve([]); }, setSelectedRoles, [], ); return ( <> } fieldId="roles" > ( <> {open && ( { field.onChange([ ...(field.value || []), ...rows.map((row) => ({ id: row.role.id })), ]); setSelectedRoles([...selectedRoles, ...rows]); setOpen(false); }} onClose={() => { setOpen(false); }} /> )} { setFilterType(type); setOpen(true); }} /> )} /> {selectedRoles.length > 0 && ( {selectedRoles.map((row, index) => ( ))}
{t("roles")} {t("required")}
( )} />
)}
); };