UNPKG

@keycloakify/keycloak-admin-ui

Version:
29 lines 1.77 kB
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