@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
40 lines • 2.13 kB
JavaScript
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