/* eslint-disable */ // @ts-nocheck import IdentityProviderRepresentation from "@keycloak/keycloak-admin-client/lib/defs/identityProviderRepresentation"; import { IdentityProvidersQuery } from "@keycloak/keycloak-admin-client/lib/resources/identityProviders"; import { FormErrorText, HelpItem, useFetch, } from "../../shared/keycloak-ui-shared"; import { Button, Chip, ChipGroup, FormGroup, MenuToggle, Select, SelectList, SelectOption, TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, } from "../../shared/@patternfly/react-core"; import { TimesIcon } from "../../shared/@patternfly/react-icons"; import { debounce } from "lodash-es"; import { useCallback, useRef, useState } from "react"; import { Controller, useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useAdminClient } from "../admin-client"; import { ComponentProps } from "../components/dynamic/components"; import useToggle from "../utils/useToggle"; type IdentityProviderSelectProps = Omit & { variant?: "typeaheadMulti" | "typeahead"; isRequired?: boolean; }; export const IdentityProviderSelect = ({ name, label, helpText, defaultValue, isRequired, variant = "typeahead", isDisabled, }: IdentityProviderSelectProps) => { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const { control, getValues, formState: { errors }, } = useFormContext(); const values: string[] | undefined = getValues(name!); const [open, toggleOpen, setOpen] = useToggle(); const [inputValue, setInputValue] = useState(""); const textInputRef = useRef(); const [idps, setIdps] = useState< (IdentityProviderRepresentation | undefined)[] >([]); const [search, setSearch] = useState(""); const debounceFn = useCallback(debounce(setSearch, 1000), []); useFetch( async () => { const params: IdentityProvidersQuery = { max: 20, realmOnly: true, }; if (search) { params.search = search; } return await adminClient.identityProviders.find(params); }, setIdps, [search], ); const convert = ( identityProviders: (IdentityProviderRepresentation | undefined)[], ) => { const options = identityProviders.map((option) => ( {option!.alias} )); if (options.length === 0) { return {t("noResultsFound")}; } return options; }; return ( ) : undefined } fieldId={name!} > isRequired && value.length === 0 ? t("required") : undefined, }} render={({ field }) => ( )} /> {errors[name!] && } ); };