/* eslint-disable */ // @ts-nocheck import IdentityProviderRepresentation from "@keycloak/keycloak-admin-client/lib/defs/identityProviderRepresentation"; import { AlertVariant, FormGroup, Button } from "../../../shared/@patternfly/react-core"; import { useFormContext, useWatch } from "react-hook-form"; import { DefaultSwitchControl } from "../../components/SwitchControl"; import { useTranslation } from "react-i18next"; import { TextAreaControl, TextControl, useAlerts, } from "../../../shared/keycloak-ui-shared"; import { ImportFile, ImportKeyDialog, } from "../../clients/keys/ImportKeyDialog"; import useToggle from "../../utils/useToggle"; import { useAdminClient } from "../../admin-client"; type JwksSettingsProps = { readOnly?: boolean; }; export const JwksSettings = ({ readOnly = false }: JwksSettingsProps) => { const { t } = useTranslation(); const { control, setValue } = useFormContext(); const { adminClient } = useAdminClient(); const { addAlert, addError } = useAlerts(); const [openImportKeys, toggleOpenImportKeys, setOpenImportKeys] = useToggle(); const useJwks = useWatch({ control, name: "config.useJwksUrl", defaultValue: "true", }); const publicKeySignatureVerifier = useWatch({ control, name: "config.publicKeySignatureVerifier", }); const importKey = async (importFile: ImportFile) => { try { const formData = new FormData(); const { file, ...rest } = importFile; for (const [key, value] of Object.entries(rest)) { formData.append(key, value); } formData.append("file", file); const info = await adminClient.identityProviders.uploadCertificate( {}, formData, ); if (info.jwks) { setValue("config.publicKeySignatureVerifier", info.jwks, { shouldDirty: true, }); setValue("config.publicKeySignatureVerifierKeyId", "", { shouldDirty: true, }); addAlert(t("importSuccess"), AlertVariant.success); } else if (info.publicKey) { setValue("config.publicKeySignatureVerifier", info.publicKey, { shouldDirty: true, }); addAlert(t("importSuccess"), AlertVariant.success); } else { addError("importError", t("emptyResources")); } } catch (error) { addError("importError", error); } }; return ( <> {useJwks === "true" ? ( ) : ( <> {openImportKeys && ( )} {!publicKeySignatureVerifier?.trim().startsWith("{") && ( )} {!readOnly && ( )} )} ); };