@heycar-uikit/core
Version:
The React UI library from HeyCar
33 lines (30 loc) • 1.63 kB
JavaScript
import { _ as __rest, a as __assign } from './tslib.es6-56356891.js';
import React from 'react';
import cn from 'classnames';
import { v4 } from 'uuid';
import usePagination from './hooks/usePagination.hook.js';
import { DEFAULT_LOCALE } from './locale/defaultLocale.js';
import { s as styles, P as PaginationItem } from './PaginationItem-3a522ea2.js';
import './Pagination.types-db9615e7.js';
import '../../icons';
import '../../typography';
import './utils/getSiblingsToRender.js';
import './utils/parseOnClick.js';
import './hooks/useBreakpoint.hook.js';
var Pagination = React.forwardRef(function (_a, ref) {
var totalPages = _a.totalPages, currentPage = _a.currentPage, onClick = _a.onClick, _b = _a.renderItem, renderItem = _b === void 0 ? function (item) { return React.createElement(PaginationItem, __assign({}, item)); } : _b, _c = _a.locale, locale = _c === void 0 ? DEFAULT_LOCALE : _c, className = _a.className, rest = __rest(_a, ["totalPages", "currentPage", "onClick", "renderItem", "locale", "className"]);
var classNames = cn(styles.pagination, className);
var items = usePagination({
onClick: onClick,
totalPages: totalPages,
currentPage: currentPage,
locale: locale,
}).items;
return (React.createElement("nav", __assign({ className: classNames, ref: ref }, rest),
React.createElement("ul", null, items.map(function (item) {
var id = v4();
return (React.createElement("li", { key: id }, renderItem(__assign({}, item))));
}))));
});
Pagination.displayName = 'Pagination';
export { Pagination, Pagination as default };