UNPKG

@catho/quantum

Version:
86 lines (85 loc) 4.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _ActionButton = _interopRequireDefault(require("./ActionButton")); var _Dots = _interopRequireDefault(require("./Dots")); var _PageButton = _interopRequireDefault(require("./PageButton")); var _pagination = _interopRequireDefault(require("../utils/pagination")); var _uniqId = require("../../shared/uniqId"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } var uniqId = (0, _uniqId.createUniqId)('dot-'); var Desktop = function Desktop(_ref) { var _ref$tabIndex = _ref.tabIndex, tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex, _ref$activePage = _ref.activePage, activePage = _ref$activePage === void 0 ? 1 : _ref$activePage, _ref$activePageAriaLa = _ref.activePageAriaLabel, activePageAriaLabel = _ref$activePageAriaLa === void 0 ? 'Current Page' : _ref$activePageAriaLa, _ref$handlePageClick = _ref.handlePageClick, handlePageClick = _ref$handlePageClick === void 0 ? undefined : _ref$handlePageClick, _ref$handleHref = _ref.handleHref, handleHref = _ref$handleHref === void 0 ? undefined : _ref$handleHref, _ref$followOnlyFirstP = _ref.followOnlyFirstPage, followOnlyFirstPage = _ref$followOnlyFirstP === void 0 ? false : _ref$followOnlyFirstP, _ref$prevButtonText = _ref.prevButtonText, prevButtonText = _ref$prevButtonText === void 0 ? 'Previous' : _ref$prevButtonText, _ref$nextButtonText = _ref.nextButtonText, nextButtonText = _ref$nextButtonText === void 0 ? 'Next' : _ref$nextButtonText, _ref$pageAriaLabel = _ref.pageAriaLabel, pageAriaLabel = _ref$pageAriaLabel === void 0 ? 'Page' : _ref$pageAriaLabel, totalPages = _ref.totalPages, hideLastPagination = _ref.hideLastPagination; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionButton["default"], { tabIndex: tabIndex, "aria-disabled": activePage === 1, onClick: handlePageClick(activePage - 1), href: handleHref(activePage - 1), rel: followOnlyFirstPage && activePage > 2 ? 'nofollow' : undefined, children: prevButtonText }), (0, _pagination["default"])({ totalPages: totalPages, activePage: activePage, hideLastPagination: hideLastPagination }).map(function (page) { if (page === '...') { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dots["default"], {}, uniqId()); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PageButton["default"], { tabIndex: tabIndex, "aria-current": activePage === page ? 'page' : false, "aria-label": "".concat(activePage === page ? "".concat(activePageAriaLabel, ", ") : '').concat(pageAriaLabel, " ").concat(page), active: activePage === page, onClick: handlePageClick(page), href: handleHref(page), rel: followOnlyFirstPage && page > 1 ? 'nofollow' : undefined, children: page }, page); }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionButton["default"], { tabIndex: tabIndex, "aria-disabled": activePage === totalPages, onClick: handlePageClick(activePage + 1), href: handleHref(activePage + 1), rel: followOnlyFirstPage ? 'nofollow' : undefined, children: nextButtonText })] }); }; Desktop.propTypes = { tabIndex: _propTypes["default"].number, activePage: _propTypes["default"].number, activePageAriaLabel: _propTypes["default"].string, handlePageClick: _propTypes["default"].func, handleHref: _propTypes["default"].func, totalPages: _propTypes["default"].number.isRequired, prevButtonText: _propTypes["default"].string, nextButtonText: _propTypes["default"].string, pageAriaLabel: _propTypes["default"].string, followOnlyFirstPage: _propTypes["default"].bool, hideLastPagination: _propTypes["default"].bool.isRequired }; var _default = exports["default"] = Desktop;