@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
56 lines • 2.83 kB
JavaScript
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
import { isUserProfileError, setUserProfileServerError, useAlerts, useFetch, } from "../ui-shared";
import { AlertVariant, PageSection } from "@patternfly/react-core";
import { useState } from "react";
import { useForm } from "react-hook-form";
import { useTranslation } from "react-i18next";
import { useNavigate } from "react-router-dom";
import { useAdminClient } from "../admin-client";
import { KeycloakSpinner } from "../ui-shared";
import { ViewHeader } from "../components/view-header/ViewHeader";
import { useRealm } from "../context/realm-context/RealmContext";
import { UserForm } from "../user/UserForm";
import { toUserRepresentation } from "../user/form-state";
import { toUser } from "../user/routes/User";
import "./user-section.css";
export default function CreateUser() {
const { adminClient } = useAdminClient();
const { t } = useTranslation();
const { addAlert, addError } = useAlerts();
const navigate = useNavigate();
const { realm: realmName, realmRepresentation: realm } = useRealm();
const form = useForm({ mode: "onChange" });
const [addedGroups, setAddedGroups] = useState([]);
const [userProfileMetadata, setUserProfileMetadata] = useState();
useFetch(() => adminClient.users.getProfileMetadata({ realm: realmName }), (userProfileMetadata) => {
if (!userProfileMetadata) {
throw new Error(t("notFound"));
}
form.setValue("attributes.locale", (realm === null || realm === void 0 ? void 0 : realm.defaultLocale) || "");
setUserProfileMetadata(userProfileMetadata);
}, []);
const save = async (data) => {
try {
const createdUser = await adminClient.users.create({
...toUserRepresentation(data),
groups: addedGroups.map((group) => group.path),
enabled: true,
});
addAlert(t("userCreated"), AlertVariant.success);
navigate(toUser({ id: createdUser.id, realm: realmName, tab: "settings" }));
}
catch (error) {
if (isUserProfileError(error)) {
setUserProfileServerError(error, form.setError, ((key, param) => t(key, param)));
}
else {
addError("userCreateError", error);
}
}
};
if (!realm || !userProfileMetadata) {
return _jsx(KeycloakSpinner, {});
}
return (_jsxs(_Fragment, { children: [_jsx(ViewHeader, { titleKey: t("createUser"), className: "kc-username-view-header" }), _jsx(PageSection, { variant: "light", children: _jsx(UserForm, { form: form, realm: realm, userProfileMetadata: userProfileMetadata, onGroupsUpdate: setAddedGroups, save: save }) })] }));
}
//# sourceMappingURL=CreateUser.js.map