UNPKG

@keycloakify/keycloak-admin-ui

Version:
56 lines 2.83 kB
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