@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
35 lines • 1.83 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { AlertVariant, Button, ButtonVariant, Form, Modal, } from "@patternfly/react-core";
import { FormProvider, useForm } from "react-hook-form";
import { useTranslation } from "react-i18next";
import { TextControl } from "../../ui-shared";
import { useAdminClient } from "../../admin-client";
import { useAlerts } from "../../ui-shared";
export const AddHostDialog = ({ clientId: id, isOpen, onAdded, onClose, }) => {
const { adminClient } = useAdminClient();
const { t } = useTranslation();
const form = useForm();
const { handleSubmit, formState: { isDirty, isValid }, } = form;
const { addAlert, addError } = useAlerts();
async function onSubmit({ node }) {
try {
await adminClient.clients.addClusterNode({
id,
node,
});
onAdded(node);
addAlert(t("addedNodeSuccess"), AlertVariant.success);
}
catch (error) {
addError("addedNodeFail", error);
}
onClose();
}
return (_jsx(Modal, { title: t("addNode"), isOpen: isOpen, onClose: onClose, variant: "small", actions: [
_jsx(Button, { id: "add-node-confirm", type: "submit", form: "add-host-form", isDisabled: !isDirty || !isValid, children: t("save") }, "confirm"),
_jsx(Button, { id: "add-node-cancel", variant: ButtonVariant.link, onClick: onClose, children: t("cancel") }, "cancel"),
], children: _jsx(FormProvider, { ...form, children: _jsx(Form, { id: "add-host-form", onSubmit: handleSubmit(onSubmit), isHorizontal: true, children: _jsx(TextControl, { name: "node", label: t("nodeHost"), rules: {
required: t("required"),
} }) }) }) }));
};
//# sourceMappingURL=AddHostDialog.js.map