UNPKG

@heycar-uikit/core

Version:
36 lines (32 loc) 2.14 kB
import React from 'react'; import cn from 'classnames'; import { ChevronRight, ChevronLeft } from '../../icons/modern'; import Typography from '../../typography/modern'; import { P as PaginationItemType } from './Pagination.types-7a359c42.js'; var styles = {"pagination":"pagination__pagination_rwdob","currentPage":"pagination__currentPage_rwdob","itemNumber":"pagination__itemNumber_rwdob","arrow":"pagination__arrow_rwdob","ellipsis":"pagination__ellipsis_rwdob","slash":"pagination__slash_rwdob"}; require('./styles/default.css'); const ELEMENTS_THAT_CAN_BE_DISABLED = ['button', 'input']; const PaginationItem = ({ page, isCurrentPage, isDisabled, itemType, onClick, component = onClick ? 'button' : 'a', ...rest }) => { const Component = component; const canUseDisabledProp = typeof component === 'string' && ELEMENTS_THAT_CAN_BE_DISABLED.includes(component); const disabledProp = { [canUseDisabledProp ? 'disabled' : 'aria-disabled']: isDisabled, }; switch (itemType) { case PaginationItemType.PageNumber: return (React.createElement(Component, { className: cn(styles.itemNumber, isCurrentPage && styles.currentPage), ...rest, "aria-current": isCurrentPage, onClick: onClick }, React.createElement(Typography, { variant: "subheading2" }, page))); case PaginationItemType.Ellipsis: return (React.createElement(Typography, { className: styles.ellipsis, variant: "subheading2" }, '...')); case PaginationItemType.Slash: return (React.createElement(Typography, { className: styles.slash, variant: "subheading2" }, '/')); case PaginationItemType.Previous: return (React.createElement(Component, { className: styles.arrow, ...disabledProp, ...rest, onClick: onClick }, React.createElement(ChevronLeft, null))); case PaginationItemType.Next: return (React.createElement(Component, { className: styles.arrow, ...disabledProp, ...rest, onClick: onClick }, React.createElement(ChevronRight, null))); } }; export { PaginationItem as P, styles as s };