import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Controller, FormProvider, useForm, useFormContext, } from "react-hook-form"; import { Button, ButtonVariant, Form, FormGroup, Modal, ModalVariant, Select, SelectOption, SelectVariant, Text, TextContent, } from "@patternfly/react-core"; import type KeyStoreConfig from "@keycloak/keycloak-admin-client/lib/defs/keystoreConfig"; import { HelpItem } from "../../components/help-enabler/HelpItem"; import { StoreSettings } from "./StoreSettings"; import { FileUpload } from "../../components/json-file-upload/patternfly/FileUpload"; type GenerateKeyDialogProps = { clientId: string; toggleDialog: () => void; save: (keyStoreConfig: KeyStoreConfig) => void; }; type KeyFormProps = { useFile?: boolean; }; export const KeyForm = ({ useFile = false }: KeyFormProps) => { const { t } = useTranslation("clients"); const [filename, setFilename] = useState(); const [openArchiveFormat, setOpenArchiveFormat] = useState(false); const { control } = useFormContext(); return (
} fieldId="archiveFormat" > ( )} /> {useFile && ( } fieldId="importFile" > ( { setFilename(filename); onChange(value); }} /> )} /> )} ); }; export const GenerateKeyDialog = ({ clientId, save, toggleDialog, }: GenerateKeyDialogProps) => { const { t } = useTranslation("clients"); const form = useForm({ defaultValues: { keyAlias: clientId }, mode: "onChange", }); const { handleSubmit, formState: { isValid }, } = form; return ( { handleSubmit((config) => { save(config); toggleDialog(); })(); }} > {t("generate")} , , ]} > {t("clients-help:generateKeysDescription")} ); };