UNPKG

@keycloakify/keycloak-admin-ui

Version:
55 lines 3.02 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { useAlerts, useFetch } from "../ui-shared"; import { ActionGroup, AlertVariant, Button, Form, PageSection, } from "@patternfly/react-core"; import { FormProvider, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; import { useAdminClient } from "../admin-client"; import { useRealm } from "../context/realm-context/RealmContext"; import { useParams } from "../utils/useParams"; import { KerberosSettingsRequired } from "../user-federation/kerberos/KerberosSettingsRequired"; import { toUserFederation } from "../user-federation/routes/UserFederation"; import { Header } from "../user-federation/shared/Header"; import { SettingsCache } from "../user-federation/shared/SettingsCache"; export default function UserFederationKerberosSettings() { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const form = useForm({ mode: "onChange" }); const navigate = useNavigate(); const { realm } = useRealm(); const { id } = useParams(); const { addAlert, addError } = useAlerts(); useFetch(async () => { if (id) { return adminClient.components.findOne({ id }); } }, (fetchedComponent) => { if (fetchedComponent) { setupForm(fetchedComponent); } else if (id) { throw new Error(t("notFound")); } }, []); const setupForm = (component) => { form.reset({ ...component }); }; const save = async (component) => { try { if (!id) { await adminClient.components.create(component); navigate(`/${realm}/user-federation`); } else { await adminClient.components.update({ id }, component); } setupForm(component); addAlert(t(!id ? "createUserProviderSuccess" : "userProviderSaveSuccess"), AlertVariant.success); } catch (error) { addError(!id ? "createUserProviderError" : "userProviderSaveError", error); } }; return (_jsxs(FormProvider, { ...form, children: [_jsx(Header, { provider: "Kerberos", save: () => form.handleSubmit(save)() }), _jsx(PageSection, { variant: "light", children: _jsx(KerberosSettingsRequired, { form: form, showSectionHeading: true }) }), _jsxs(PageSection, { variant: "light", isFilled: true, children: [_jsx(SettingsCache, { form: form, showSectionHeading: true }), _jsx(Form, { onSubmit: form.handleSubmit(save), children: _jsxs(ActionGroup, { children: [_jsx(Button, { isDisabled: !form.formState.isDirty, variant: "primary", type: "submit", "data-testid": "kerberos-save", children: t("save") }), _jsx(Button, { variant: "link", onClick: () => navigate(toUserFederation({ realm })), "data-testid": "kerberos-cancel", children: t("cancel") })] }) })] })] })); } //# sourceMappingURL=UserFederationKerberosSettings.js.map