UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

125 lines (108 loc) 4.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _ButtonLink = _interopRequireDefault(require("../ButtonLink")); var _Stack = _interopRequireDefault(require("../Stack")); var _Hide = _interopRequireDefault(require("../Hide")); var _ChevronLeft = _interopRequireDefault(require("../icons/ChevronLeft")); var _ChevronRight = _interopRequireDefault(require("../icons/ChevronRight")); var _consts = require("./consts"); var _Pages = _interopRequireDefault(require("./components/Pages")); var _CompactPages = _interopRequireDefault(require("./components/CompactPages")); var _ActiveButton = _interopRequireDefault(require("./components/ActiveButton")); var _Translate = _interopRequireDefault(require("../Translate")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } var handlePageChange = function handlePageChange(onPageChange, pageCount) { return function (nextPageIndex) { if (onPageChange && nextPageIndex <= pageCount && nextPageIndex >= 0) { onPageChange(nextPageIndex); } }; }; var Pagination = function Pagination(_ref) { var pageCount = _ref.pageCount, _ref$selectedPage = _ref.selectedPage, selectedPage = _ref$selectedPage === void 0 ? 1 : _ref$selectedPage, onPageChange = _ref.onPageChange, dataTest = _ref.dataTest, _ref$hideLabels = _ref.hideLabels, hideLabels = _ref$hideLabels === void 0 ? true : _ref$hideLabels, _ref$size = _ref.size, size = _ref$size === void 0 ? _consts.SIZES.NORMAL : _ref$size; var pageChanged = handlePageChange(onPageChange, pageCount); return React.createElement(_Stack.default, { direction: "row", spacing: "tight", align: "center", dataTest: dataTest, element: "nav" }, selectedPage !== 1 && React.createElement(React.Fragment, null, React.createElement(_Hide.default, { on: ["smallMobile", "mediumMobile", "largeMobile"] }, React.createElement(_ButtonLink.default, { onClick: function onClick() { return pageChanged(selectedPage - 1); }, iconLeft: React.createElement(_ChevronLeft.default, null), type: "secondary", size: size }, !hideLabels && React.createElement(_Translate.default, { tKey: "pagination_label_prev" }))), React.createElement(_Hide.default, { on: ["tablet", "desktop", "largeDesktop"] }, React.createElement(_ButtonLink.default, { onClick: function onClick() { return pageChanged(selectedPage - 1); }, iconLeft: React.createElement(_ChevronLeft.default, null), type: "secondary", size: size }))), React.createElement(_Hide.default, { on: ["smallMobile", "mediumMobile", "largeMobile"] }, React.createElement(_Stack.default, { direction: "row", spacing: "tight", align: "center" }, pageCount <= _consts.MAXIMUM_PAGES ? React.createElement(_Pages.default, { pageCount: pageCount, selectedPage: selectedPage, onPageChange: onPageChange, size: size }) : React.createElement(_CompactPages.default, { pageCount: pageCount, selectedPage: selectedPage, onPageChange: onPageChange, size: size }))), React.createElement(_Hide.default, { on: ["tablet", "desktop", "largeDesktop"] }, React.createElement(_ActiveButton.default, { transparent: true, size: size }, selectedPage, " of ", pageCount)), pageCount !== selectedPage && React.createElement(React.Fragment, null, React.createElement(_Hide.default, { on: ["smallMobile", "mediumMobile", "largeMobile"] }, React.createElement(_ButtonLink.default, { onClick: function onClick() { return pageChanged(selectedPage + 1); }, iconRight: !hideLabels && React.createElement(_ChevronRight.default, null), iconLeft: hideLabels && React.createElement(_ChevronRight.default, null), type: "secondary", size: size }, !hideLabels && React.createElement(_Translate.default, { tKey: "pagination_label_next" }))), React.createElement(_Hide.default, { on: ["tablet", "desktop", "largeDesktop"] }, React.createElement(_ButtonLink.default, { onClick: function onClick() { return pageChanged(selectedPage + 1); }, iconLeft: React.createElement(_ChevronRight.default, null), type: "secondary", size: size })))); }; var _default = Pagination; exports.default = _default;