@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
39 lines • 2.43 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
import { FormGroup, Title } from "@patternfly/react-core";
import { useFormContext } from "react-hook-form";
import { useTranslation } from "react-i18next";
import { FormErrorText, HelpItem } from "../../ui-shared";
import { useAdminClient } from "../../admin-client";
import { JsonFileUpload } from "../../components/json-file-upload/JsonFileUpload";
import { DiscoveryEndpointField } from "../../identity-providers/component/DiscoveryEndpointField";
import { DiscoverySettings } from "../../identity-providers/add/DiscoverySettings";
export const OpenIdConnectSettings = () => {
const { adminClient } = useAdminClient();
const { t } = useTranslation();
const id = "oidc";
const { setValue, setError, clearErrors, formState: { errors }, } = useFormContext();
const setupForm = (result) => {
Object.keys(result).map((k) => setValue(`config.${k}`, result[k]));
};
const fileUpload = async (obj) => {
clearErrors("discoveryError");
if (!obj) {
return;
}
const formData = new FormData();
formData.append("providerId", id);
formData.append("file", new Blob([JSON.stringify(obj)]));
try {
const result = await adminClient.identityProviders.importFromUrl(formData);
setupForm(result);
}
catch (error) {
setError("discoveryError", {
type: "manual",
message: error.message,
});
}
};
return (_jsxs(_Fragment, { children: [_jsx(Title, { headingLevel: "h2", size: "xl", className: "kc-form-panel__title", children: t("oidcSettings") }), _jsx(DiscoveryEndpointField, { id: "oidc", fileUpload: _jsxs(FormGroup, { label: t("importConfig"), fieldId: "kc-import-config", labelIcon: _jsx(HelpItem, { helpText: t("importConfigHelp"), fieldLabelId: "importConfig" }), children: [_jsx(JsonFileUpload, { id: "kc-import-config", helpText: t("identity=providers-help:jsonFileUpload"), hideDefaultPreview: true, unWrap: true, validated: errors.discoveryError ? "error" : "default", onChange: (value) => fileUpload(value) }), errors.discoveryError && (_jsx(FormErrorText, { message: errors.discoveryError.message }))] }), children: (readonly) => _jsx(DiscoverySettings, { readOnly: readonly }) })] }));
};
//# sourceMappingURL=OpenIdConnectSettings.js.map