UNPKG

@keycloakify/keycloak-admin-ui

Version:
64 lines 3.35 kB
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