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