UNPKG

@keycloakify/keycloak-admin-ui

Version:
33 lines 2 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { FormSubmitButton, TextControl } from "../ui-shared"; import { Button, ButtonVariant, Form, Modal, ModalVariant, } from "@patternfly/react-core"; import { FormProvider, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useAdminClient } from "../admin-client"; import { useAlerts } from "../ui-shared"; export const InviteMemberModal = ({ orgId, onClose, }) => { const { adminClient } = useAdminClient(); const { addAlert, addError } = useAlerts(); const { t } = useTranslation(); const form = useForm(); const { handleSubmit, formState } = form; const submitForm = async (data) => { try { const formData = new FormData(); for (const key in data) { formData.append(key, data[key]); } await adminClient.organizations.invite({ orgId }, formData); addAlert(t("inviteSent")); onClose(); } catch (error) { addError("inviteSentError", error); } }; return (_jsx(Modal, { variant: ModalVariant.small, title: t("inviteMember"), isOpen: true, onClose: onClose, actions: [ _jsx(FormSubmitButton, { formState: formState, "data-testid": "save", form: "form", allowInvalid: true, allowNonDirty: true, children: t("send") }, "confirm"), _jsx(Button, { id: "modal-cancel", "data-testid": "cancel", variant: ButtonVariant.link, onClick: onClose, children: t("cancel") }, "cancel"), ], children: _jsx(FormProvider, { ...form, children: _jsxs(Form, { id: "form", onSubmit: handleSubmit(submitForm), children: [_jsx(TextControl, { name: "email", label: t("email"), rules: { required: t("required") }, autoFocus: true }), _jsx(TextControl, { name: "firstName", label: t("firstName") }), _jsx(TextControl, { name: "lastName", label: t("lastName") })] }) }) })); }; //# sourceMappingURL=InviteMemberModal.js.map