UNPKG

@keycloakify/keycloak-admin-ui

Version:
50 lines 2.57 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { AlertVariant, Form, ModalVariant } from "@patternfly/react-core"; import { isEmpty } from "lodash-es"; import { FormProvider, useForm, useWatch } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useAdminClient } from "../../admin-client"; import { useAlerts } from "../../ui-shared"; import { ConfirmDialogModal } from "../../components/confirm-dialog/ConfirmDialog"; import { LifespanField } from "../../user/user-credentials/LifespanField"; import { RequiredActionMultiSelect } from "../../user/user-credentials/RequiredActionMultiSelect"; import { useRealm } from "../../context/realm-context/RealmContext"; export const ResetCredentialDialog = ({ userId, onClose, }) => { const { adminClient } = useAdminClient(); const { realmRepresentation: realm } = useRealm(); const { t } = useTranslation(); const form = useForm({ defaultValues: { actions: [], lifespan: realm === null || realm === void 0 ? void 0 : realm.actionTokenGeneratedByAdminLifespan, }, }); const { handleSubmit, control } = form; const resetActionWatcher = useWatch({ control, name: "actions", }); const resetIsNotDisabled = !isEmpty(resetActionWatcher); const { addAlert, addError } = useAlerts(); const sendCredentialsResetEmail = async ({ actions, lifespan, }) => { if (isEmpty(actions)) { return; } try { await adminClient.users.executeActionsEmail({ id: userId, actions, lifespan, }); addAlert(t("credentialResetEmailSuccess"), AlertVariant.success); onClose(); } catch (error) { addError("credentialResetEmailError", error); } }; return (_jsx(ConfirmDialogModal, { variant: ModalVariant.medium, titleKey: "credentialReset", open: true, onCancel: onClose, toggleDialog: onClose, continueButtonLabel: "credentialResetConfirm", onConfirm: () => { handleSubmit(sendCredentialsResetEmail)(); }, confirmButtonDisabled: !resetIsNotDisabled, children: _jsx(Form, { id: "userCredentialsReset-form", isHorizontal: true, "data-testid": "credential-reset-modal", children: _jsxs(FormProvider, { ...form, children: [_jsx(RequiredActionMultiSelect, { name: "actions", label: "resetAction", help: "resetActions" }), _jsx(LifespanField, {})] }) }) })); }; //# sourceMappingURL=ResetCredentialDialog.js.map