UNPKG

@keycloakify/keycloak-admin-ui

Version:
40 lines 2.13 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { Button, Form, Modal } from "@patternfly/react-core"; import { saveAs } from "file-saver"; import { FormProvider, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useAdminClient } from "../../admin-client"; import { useAlerts } from "../../ui-shared"; import { useRealm } from "../../context/realm-context/RealmContext"; import { KeyForm, getFileExtension } from "../../clients/keys/GenerateKeyDialog"; export const ExportSamlKeyDialog = ({ clientId, close, keyType, }) => { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const { realm } = useRealm(); const { addAlert, addError } = useAlerts(); const form = useForm({ defaultValues: { realmAlias: realm }, }); const download = async (config) => { var _a; try { const keyStore = await adminClient.clients.downloadKey({ id: clientId, attr: keyType, }, config); saveAs(new Blob([keyStore], { type: "application/octet-stream" }), `keystore.${getFileExtension((_a = config.format) !== null && _a !== void 0 ? _a : "")}`); addAlert(t("samlKeysExportSuccess")); close(); } catch (error) { addError("samlKeysExportError", error); } }; return (_jsx(Modal, { variant: "medium", title: t("exportSamlKeyTitle"), isOpen: true, onClose: close, actions: [ _jsx(Button, { id: "modal-confirm", "data-testid": "confirm", type: "submit", form: "export-saml-key-form", children: t("export") }, "confirm"), _jsx(Button, { id: "modal-cancel", "data-testid": "cancel", variant: "link", onClick: () => { close(); }, children: t("cancel") }, "cancel"), ], children: _jsx(Form, { id: "export-saml-key-form", className: "pf-v5-u-pt-lg", onSubmit: form.handleSubmit(download), children: _jsx(FormProvider, { ...form, children: _jsx(KeyForm, { isSaml: true }) }) }) })); }; //# sourceMappingURL=ExportSamlKeyDialog.js.map