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