UNPKG

@keycloakify/keycloak-admin-ui

Version:
15 lines 1.8 kB
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime"; import { Pagination, ToolbarItem, } from "@patternfly/react-core"; import { useTranslation } from "react-i18next"; import { TableToolbar } from "../../../ui-shared/controls/table/TableToolbar"; const KeycloakPagination = ({ id, variant = "top", count, first, max, onNextClick, onPreviousClick, onPerPageSelect, }) => { const { t } = useTranslation(); const page = Math.round(first / max); return (_jsx(Pagination, { widgetId: id, titles: { paginationAriaLabel: `${t("pagination")} ${variant} `, }, isCompact: true, toggleTemplate: ({ firstIndex, lastIndex, }) => (_jsxs("b", { children: [firstIndex, " - ", lastIndex] })), itemCount: count + page * max, page: page + 1, perPage: max, onNextClick: (_, p) => onNextClick((p - 1) * max), onPreviousClick: (_, p) => onPreviousClick((p - 1) * max), onPerPageSelect: (_, m, f) => onPerPageSelect(f - 1, m), variant: variant })); }; export const PaginatingTableToolbar = ({ count, searchTypeComponent, toolbarItem, subToolbar, children, inputGroupName, inputGroupPlaceholder, inputGroupOnEnter, ...rest }) => { return (_jsx(TableToolbar, { searchTypeComponent: searchTypeComponent, toolbarItem: _jsxs(_Fragment, { children: [toolbarItem, _jsx(ToolbarItem, { variant: "pagination", children: _jsx(KeycloakPagination, { count: count, ...rest }) })] }), subToolbar: subToolbar, toolbarItemFooter: count !== 0 ? (_jsx(ToolbarItem, { variant: "pagination", children: _jsx(KeycloakPagination, { count: count, variant: "bottom", ...rest }) })) : null, inputGroupName: inputGroupName, inputGroupPlaceholder: inputGroupPlaceholder, inputGroupOnEnter: inputGroupOnEnter, children: children })); }; //# sourceMappingURL=PaginatingTableToolbar.js.map