UNPKG

@keycloakify/keycloak-admin-ui

Version:
58 lines 2.81 kB
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