@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
58 lines • 2.81 kB
JavaScript
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
import { ButtonVariant, DropdownItem } from "@patternfly/react-core";
import { ViewHeader } from "../components/view-header/ViewHeader";
import { useTranslation } from "react-i18next";
import { useConfirmDialog } from "../components/confirm-dialog/ConfirmDialog";
import { useAdminClient } from "../admin-client";
import { useNavigate } from "react-router-dom";
import { useAlerts } from "../ui-shared";
import { Controller, useFormContext, useWatch } from "react-hook-form";
import { toOrganizations } from "../organizations/routes/Organizations";
import { useRealm } from "../context/realm-context/RealmContext";
export const DetailOrganizationHeader = ({ save, }) => {
const { adminClient } = useAdminClient();
const { realm } = useRealm();
const navigate = useNavigate();
const { t } = useTranslation();
const { addAlert, addError } = useAlerts();
const id = useWatch({ name: "id" });
const name = useWatch({ name: "name" });
const { setValue } = useFormContext();
const [toggleDisableDialog, DisableConfirm] = useConfirmDialog({
titleKey: "disableConfirmOrganizationTitle",
messageKey: "disableConfirmOrganization",
continueButtonLabel: "disable",
onConfirm: () => {
setValue("enabled", false);
save();
},
});
const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({
titleKey: "organizationDelete",
messageKey: "organizationDeleteConfirm",
continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => {
try {
await adminClient.organizations.delById({ id });
addAlert(t("organizationDeletedSuccess"));
navigate(toOrganizations({ realm }));
}
catch (error) {
addError("organizationDeleteError", error);
}
},
});
return (_jsx(Controller, { name: "enabled", render: ({ field: { value, onChange } }) => (_jsxs(_Fragment, { children: [_jsx(DeleteConfirm, {}), _jsx(DisableConfirm, {}), _jsx(ViewHeader, { titleKey: name || "", divider: false, dropdownItems: [
_jsx(DropdownItem, { "data-testid": "delete-client", onClick: toggleDeleteDialog, children: t("delete") }, "delete"),
], isEnabled: value, onToggle: (value) => {
if (!value) {
toggleDisableDialog();
}
else {
onChange(value);
save();
}
} })] })) }));
};
//# sourceMappingURL=DetailOraganzationHeader.js.map