UNPKG

@keycloakify/keycloak-admin-ui

Version:
84 lines 4.11 kB
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime"; import { AlertVariant, Button, ButtonVariant } from "@patternfly/react-core"; import { wrappable } from "@patternfly/react-table"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Link, useNavigate } from "react-router-dom"; import { useAdminClient } from "../../admin-client"; import { useAlerts } from "../../ui-shared"; import { useConfirmDialog } from "../../components/confirm-dialog/ConfirmDialog"; import { ListEmptyState } from "../../ui-shared"; import { KeycloakDataTable } from "../../ui-shared"; import { useRealm } from "../../context/realm-context/RealmContext"; import useFormatDate, { FORMAT_DATE_AND_TIME } from "../../utils/useFormatDate"; import { toCreateInitialAccessToken } from "../../clients/routes/CreateInitialAccessToken"; export const InitialAccessTokenList = () => { const { adminClient } = useAdminClient(); const { t } = useTranslation(); const { addAlert, addError } = useAlerts(); const { realm } = useRealm(); const formatDate = useFormatDate(); const navigate = useNavigate(); const [token, setToken] = useState(); const loader = async () => { try { return await adminClient.realms.getClientsInitialAccess({ realm }); } catch (_a) { return []; } }; const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({ titleKey: "tokenDeleteConfirmTitle", messageKey: t("tokenDeleteConfirm", { id: token === null || token === void 0 ? void 0 : token.id }), continueButtonLabel: "delete", continueButtonVariant: ButtonVariant.danger, onConfirm: async () => { try { await adminClient.realms.delClientsInitialAccess({ realm, id: token.id, }); addAlert(t("tokenDeleteSuccess"), AlertVariant.success); setToken(undefined); } catch (error) { addError("tokenDeleteError", error); } }, }); return (_jsxs(_Fragment, { children: [_jsx(DeleteConfirm, {}), _jsx(KeycloakDataTable, { ariaLabelKey: "initialAccessToken", searchPlaceholderKey: "searchInitialAccessToken", loader: loader, toolbarItem: _jsx(Button, { component: (props) => (_jsx(Link, { ...props, to: toCreateInitialAccessToken({ realm }) })), children: t("create") }), actions: [ { title: t("delete"), onRowClick: (token) => { setToken(token); toggleDeleteDialog(); }, }, ], columns: [ { name: "id", displayKey: "id", }, { name: "timestamp", displayKey: "timestamp", cellRenderer: (row) => formatDate(new Date(row.timestamp * 1000), FORMAT_DATE_AND_TIME), }, { name: "expiration", displayKey: "expires", cellRenderer: (row) => formatDate(new Date(row.timestamp * 1000 + row.expiration * 1000), FORMAT_DATE_AND_TIME), }, { name: "count", displayKey: "count", }, { name: "remainingCount", displayKey: "remainingCount", transforms: [wrappable], }, ], emptyState: _jsx(ListEmptyState, { message: t("noTokens"), instructions: t("noTokensInstructions"), primaryActionText: t("create"), onPrimaryAction: () => navigate(toCreateInitialAccessToken({ realm })) }) }, token === null || token === void 0 ? void 0 : token.id)] })); }; //# sourceMappingURL=InitialAccessTokenList.js.map