UNPKG

@keycloakify/keycloak-admin-ui

Version:
35 lines 1.83 kB
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