@heycar-uikit/core
Version:
The React UI library from HeyCar
33 lines (30 loc) • 1.28 kB
JavaScript
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-215b7d05.js';
import './Pagination.types-7a359c42.js';
import '../../icons/modern';
import '../../typography/modern';
import './utils/getSiblingsToRender.js';
import './utils/parseOnClick.js';
import './hooks/useBreakpoint.hook.js';
const Pagination = React.forwardRef(({ totalPages, currentPage, onClick, renderItem = (item) => React.createElement(PaginationItem, { ...item }), locale = DEFAULT_LOCALE, className, ...rest }, ref) => {
const classNames = cn(styles.pagination, className);
const { items } = usePagination({
onClick,
totalPages,
currentPage,
locale,
});
return (React.createElement("nav", { className: classNames, ref: ref, ...rest },
React.createElement("ul", null, items.map(item => {
const id = v4();
return (React.createElement("li", { key: id }, renderItem({
...item,
})));
}))));
});
Pagination.displayName = 'Pagination';
export { Pagination, Pagination as default };