@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
64 lines • 3.35 kB
JavaScript
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
import { AlertVariant, ButtonVariant, DropdownItem, } from "@patternfly/react-core";
import { Controller, useFormContext } from "react-hook-form";
import { useTranslation } from "react-i18next";
import { useNavigate, useParams } from "react-router-dom";
import { useAdminClient } from "../../admin-client";
import { useAlerts } from "../../ui-shared";
import { useConfirmDialog } from "../../components/confirm-dialog/ConfirmDialog";
import { ViewHeader } from "../../components/view-header/ViewHeader";
import { useRealm } from "../../context/realm-context/RealmContext";
import { toUserFederation } from "../../user-federation/routes/UserFederation";
export const Header = ({ provider, save, noDivider = false, dropdownItems = [], }) => {
const { adminClient } = useAdminClient();
const { t } = useTranslation();
const { id } = useParams();
const navigate = useNavigate();
const { addAlert, addError } = useAlerts();
const { realm } = useRealm();
const { control, setValue } = useFormContext();
const [toggleDisableDialog, DisableConfirm] = useConfirmDialog({
titleKey: "userFedDisableConfirmTitle",
messageKey: "userFedDisableConfirm",
continueButtonLabel: "disable",
onConfirm: () => {
setValue("config.enabled[0]", "false");
save();
},
});
const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({
titleKey: "userFedDeleteConfirmTitle",
messageKey: "userFedDeleteConfirm",
continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => {
try {
await adminClient.components.del({ id: id });
addAlert(t("userFedDeletedSuccess"), AlertVariant.success);
navigate(toUserFederation({ realm }), { replace: true });
}
catch (error) {
addError("userFedDeleteError", error);
}
},
});
return (_jsxs(_Fragment, { children: [_jsx(DisableConfirm, {}), _jsx(DeleteConfirm, {}), _jsx(Controller, { name: "config.enabled", defaultValue: ["true"], control: control, render: ({ field }) => {
var _a;
return !id ? (_jsx(ViewHeader, { titleKey: t("addProvider", {
provider: provider,
count: 1,
}) })) : (_jsx(ViewHeader, { divider: !noDivider, titleKey: provider, dropdownItems: [
...dropdownItems,
_jsx(DropdownItem, { onClick: () => toggleDeleteDialog(), "data-testid": "delete-cmd", children: t("deleteProvider") }, "delete"),
], isEnabled: ((_a = field.value) === null || _a === void 0 ? void 0 : _a[0]) === "true" || field.value === "true", onToggle: (value) => {
if (!value) {
toggleDisableDialog();
}
else {
field.onChange([value.toString()]);
save();
}
} }));
} })] }));
};
//# sourceMappingURL=Header.js.map