UNPKG

@heycar-uikit/core

Version:
38 lines (34 loc) 2.42 kB
import { _ as __rest, a as __assign } from './tslib.es6-56356891.js'; import React from 'react'; import cn from 'classnames'; import { ChevronRight, ChevronLeft } from '../../icons'; import Typography from '../../typography'; import { P as PaginationItemType } from './Pagination.types-db9615e7.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"}; var ELEMENTS_THAT_CAN_BE_DISABLED = ['button', 'input']; var PaginationItem = function (_a) { var _b; var page = _a.page, isCurrentPage = _a.isCurrentPage, isDisabled = _a.isDisabled, itemType = _a.itemType, onClick = _a.onClick, _c = _a.component, component = _c === void 0 ? onClick ? 'button' : 'a' : _c, rest = __rest(_a, ["page", "isCurrentPage", "isDisabled", "itemType", "onClick", "component"]); var Component = component; var canUseDisabledProp = typeof component === 'string' && ELEMENTS_THAT_CAN_BE_DISABLED.includes(component); var disabledProp = (_b = {}, _b[canUseDisabledProp ? 'disabled' : 'aria-disabled'] = isDisabled, _b); switch (itemType) { case PaginationItemType.PageNumber: return (React.createElement(Component, __assign({ 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, __assign({ className: styles.arrow }, disabledProp, rest, { onClick: onClick }), React.createElement(ChevronLeft, null))); case PaginationItemType.Next: return (React.createElement(Component, __assign({ className: styles.arrow }, disabledProp, rest, { onClick: onClick }), React.createElement(ChevronRight, null))); } }; export { PaginationItem as P, styles as s };