import ComponentRepresentation from "@keycloak/keycloak-admin-client/lib/defs/componentRepresentation"; import ComponentTypeRepresentation from "@keycloak/keycloak-admin-client/lib/defs/componentTypeRepresentation"; import { Button, Form, Modal, ModalVariant } from "@patternfly/react-core"; import { useState } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { DynamicComponents } from "../../../components/dynamic/DynamicComponents"; import { useServerInfo } from "../../../context/server-info/ServerInfoProvider"; import type { IndexedValidations } from "../../NewAttributeSettings"; import { ValidatorSelect } from "./ValidatorSelect"; export type AddValidatorDialogProps = { selectedValidators: IndexedValidations[]; toggleDialog: () => void; onConfirm: (newValidator: ComponentRepresentation) => void; }; export const AddValidatorDialog = ({ selectedValidators, toggleDialog, onConfirm, }: AddValidatorDialogProps) => { const { t } = useTranslation("realm-settings"); const [selectedValidator, setSelectedValidator] = useState(); const allSelected = useServerInfo().componentTypes?.["org.keycloak.validate.Validator"] .length === selectedValidators.length; const form = useForm(); const { handleSubmit } = form; const save = (newValidator: ComponentTypeRepresentation) => { onConfirm({ ...newValidator, id: selectedValidator?.id }); toggleDialog(); }; return ( {t("common:save")} , , ]} > {allSelected ? ( t("emptyValidators") ) : (
validator.key, )} onChange={setSelectedValidator} /> {selectedValidator && ( )} )}
); };