UNPKG

@keycloakify/keycloak-admin-ui

Version:
51 lines 3.1 kB
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; import { ActionGroup, AlertVariant, Button, PageSection, } from "@patternfly/react-core"; import { FormProvider, useForm } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { Link, useLocation, useNavigate } from "react-router-dom"; import { useAdminClient } from "../../admin-client"; import { useAlerts } from "../../ui-shared"; import { FormAccess } from "../../components/form/FormAccess"; import { ViewHeader } from "../../components/view-header/ViewHeader"; import { useRealm } from "../../context/realm-context/RealmContext"; import { toIdentityProvider } from "../../identity-providers/routes/IdentityProvider"; import { toIdentityProviders } from "../../identity-providers/routes/IdentityProviders"; import { OIDCAuthentication } from "../../identity-providers/add/OIDCAuthentication"; import { OIDCGeneralSettings } from "../../identity-providers/add/OIDCGeneralSettings"; import { OpenIdConnectSettings } from "../../identity-providers/add/OpenIdConnectSettings"; export default function AddOpenIdConnect() { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const navigate = useNavigate(); const { pathname } = useLocation(); const isKeycloak = pathname.includes("keycloak-oidc"); const id = `${isKeycloak ? "keycloak-" : ""}oidc`; const form = useForm({ defaultValues: { alias: id }, mode: "onChange", }); const { handleSubmit, formState: { isDirty }, } = form; const { addAlert, addError } = useAlerts(); const { realm } = useRealm(); const onSubmit = async (provider) => { delete provider.discoveryEndpoint; try { await adminClient.identityProviders.create({ ...provider, providerId: id, }); addAlert(t("createIdentityProviderSuccess"), AlertVariant.success); navigate(toIdentityProvider({ realm, providerId: id, alias: provider.alias, tab: "settings", })); } catch (error) { addError("createIdentityProviderError", error); } }; return (_jsxs(_Fragment, { children: [_jsx(ViewHeader, { titleKey: t(isKeycloak ? "addKeycloakOpenIdProvider" : "addOpenIdProvider") }), _jsx(PageSection, { variant: "light", children: _jsx(FormProvider, { ...form, children: _jsxs(FormAccess, { role: "manage-identity-providers", isHorizontal: true, onSubmit: handleSubmit(onSubmit), children: [_jsx(OIDCGeneralSettings, {}), _jsx(OpenIdConnectSettings, {}), _jsx(OIDCAuthentication, {}), _jsxs(ActionGroup, { children: [_jsx(Button, { isDisabled: !isDirty, variant: "primary", type: "submit", "data-testid": "createProvider", children: t("add") }), _jsx(Button, { variant: "link", "data-testid": "cancel", component: (props) => (_jsx(Link, { ...props, to: toIdentityProviders({ realm }) })), children: t("cancel") })] })] }) }) })] })); } //# sourceMappingURL=AddOpenIdConnect.js.map