@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
29 lines • 1.77 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { AlertVariant, MenuToggle, Select, SelectList, } from "@patternfly/react-core";
import { useState } from "react";
import { useTranslation } from "react-i18next";
import { useAdminClient } from "../admin-client";
import { useAlerts } from "../ui-shared";
import { allClientScopeTypes, changeClientScope, changeScope, clientScopeTypesSelectOptions, } from "../components/client-scope/ClientScopeTypes";
export const ChangeTypeDropdown = ({ clientId, selectedRows, refresh, }) => {
const { adminClient } = useAdminClient();
const { t } = useTranslation();
const [open, setOpen] = useState(false);
const { addAlert, addError } = useAlerts();
return (_jsx(Select, { "aria-label": "change-type-to", onOpenChange: (isOpen) => setOpen(isOpen), isOpen: open, toggle: (ref) => (_jsx(MenuToggle, { id: "change-type-dropdown", isDisabled: selectedRows.length === 0, ref: ref, onClick: () => setOpen(!open), isExpanded: open, children: t("changeTypeTo") })), onSelect: async (_, value) => {
try {
await Promise.all(selectedRows.map((row) => {
return clientId
? changeClientScope(adminClient, clientId, row, row.type, value)
: changeScope(adminClient, row, value);
}));
setOpen(false);
refresh();
addAlert(t("clientScopeSuccess"), AlertVariant.success);
}
catch (error) {
addError("clientScopeError", error);
}
}, children: _jsx(SelectList, { children: clientScopeTypesSelectOptions(t, !clientId ? allClientScopeTypes : undefined) }) }));
};
//# sourceMappingURL=ChangeTypeDropdown.js.map