UNPKG

@keycloakify/keycloak-admin-ui

Version:
44 lines 2.67 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { Tab, TabTitleText } from "@patternfly/react-core"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useFetch } from "../../ui-shared"; import { useAdminClient } from "../../admin-client"; import { KeycloakSpinner } from "../../ui-shared"; import { RoutableTabs, useRoutableTab, } from "../../components/routable-tabs/RoutableTabs"; import { useRealm } from "../../context/realm-context/RealmContext"; import { KEY_PROVIDER_TYPE } from "../../util"; import { toKeysTab } from "../../realm-settings/routes/KeysTab"; import { KeysListTab } from "../../realm-settings/keys/KeysListTab"; import { KeysProvidersTab } from "../../realm-settings/keys/KeysProvidersTab"; const sortByPriority = (components) => { const sortedComponents = [...components].sort((a, b) => { var _a, _b; const priorityA = Number((_a = a.config) === null || _a === void 0 ? void 0 : _a.priority); const priorityB = Number((_b = b.config) === null || _b === void 0 ? void 0 : _b.priority); return ((!isNaN(priorityB) ? priorityB : 0) - (!isNaN(priorityA) ? priorityA : 0)); }); return sortedComponents; }; export const KeysTab = () => { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const { realm: realmName } = useRealm(); const [realmComponents, setRealmComponents] = useState(); const [key, setKey] = useState(0); const refresh = () => { setKey(key + 1); }; useFetch(() => adminClient.components.find({ type: KEY_PROVIDER_TYPE, realm: realmName, }), (components) => setRealmComponents(sortByPriority(components)), [key]); const useTab = (tab) => useRoutableTab(toKeysTab({ realm: realmName, tab })); const listTab = useTab("list"); const providersTab = useTab("providers"); if (!realmComponents) { return _jsx(KeycloakSpinner, {}); } return (_jsxs(RoutableTabs, { mountOnEnter: true, unmountOnExit: true, defaultLocation: toKeysTab({ realm: realmName, tab: "list" }), children: [_jsx(Tab, { id: "keysList", "data-testid": "rs-keys-list-tab", "aria-label": "keys-list-subtab", title: _jsx(TabTitleText, { children: t("keysList") }), ...listTab, children: _jsx(KeysListTab, { realmComponents: realmComponents }) }), _jsx(Tab, { id: "providers", "data-testid": "rs-providers-tab", "aria-label": "rs-providers-tab", title: _jsx(TabTitleText, { children: t("providers") }), ...providersTab, children: _jsx(KeysProvidersTab, { realmComponents: realmComponents, refresh: refresh }) })] })); }; //# sourceMappingURL=KeysTab.js.map