import type IdentityProviderMapperRepresentation from "@keycloak/keycloak-admin-client/lib/defs/identityProviderMapperRepresentation"; import type { IdentityProviderMapperTypeRepresentation } from "@keycloak/keycloak-admin-client/lib/defs/identityProviderMapperTypeRepresentation"; import { FormGroup, Select, SelectOption, SelectVariant, ValidatedOptions, } from "@patternfly/react-core"; import { useState } from "react"; import { Controller, UseFormReturn } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { HelpItem } from "ui-shared"; import { KeycloakTextInput } from "../../components/keycloak-text-input/KeycloakTextInput"; import type { IdPMapperRepresentationWithAttributes } from "./AddMapper"; type AddMapperFormProps = { mapperTypes: IdentityProviderMapperRepresentation[]; mapperType: IdentityProviderMapperTypeRepresentation; id: string; updateMapperType: ( mapperType: IdentityProviderMapperTypeRepresentation, ) => void; form: UseFormReturn; }; export const AddMapperForm = ({ mapperTypes, mapperType, form, id, updateMapperType, }: AddMapperFormProps) => { const { t } = useTranslation(); const { control, register, formState: { errors }, } = form; const [mapperTypeOpen, setMapperTypeOpen] = useState(false); const syncModes = ["inherit", "import", "legacy", "force"]; const [syncModeOpen, setSyncModeOpen] = useState(false); return ( <> } fieldId="kc-name" isRequired validated={ errors.name ? ValidatedOptions.error : ValidatedOptions.default } helperTextInvalid={t("required")} > } fieldId="syncMode" > ( )} /> } fieldId="identityProviderMapper" > ( )} /> ); };