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.

118 lines (100 loc) 4.29 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; exports.__esModule = true; exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _useMediaQuery = _interopRequireDefault(require("../hooks/useMediaQuery")); var _ButtonLink = _interopRequireDefault(require("../ButtonLink")); var _Stack = _interopRequireDefault(require("../Stack")); 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")); var _useTranslate = _interopRequireDefault(require("../hooks/useTranslate")); const handlePageChange = (onPageChange, pageCount) => nextPageIndex => { if (onPageChange && nextPageIndex <= pageCount && nextPageIndex >= 0) { onPageChange(nextPageIndex); } }; const Pagination = ({ pageCount, selectedPage = 1, onPageChange, dataTest, hideLabels = true, size = _consts.SIZES.NORMAL }) => { const pageChanged = handlePageChange(onPageChange, pageCount); const { isTablet } = (0, _useMediaQuery.default)(); const translate = (0, _useTranslate.default)(); return /*#__PURE__*/React.createElement(_Stack.default, { spacing: "XXSmall", align: "center", grow: false, shrink: true, dataTest: dataTest, basis: "auto" }, !isTablet ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_ButtonLink.default, { onClick: () => pageChanged(selectedPage - 1), iconLeft: /*#__PURE__*/React.createElement(_ChevronLeft.default, null), type: "secondary", title: translate("pagination_label_prev"), size: size, disabled: selectedPage <= 1 }), /*#__PURE__*/React.createElement(_ActiveButton.default, { transparent: true, size: size }, translate("pagination_progress", { number: selectedPage, total: pageCount })), /*#__PURE__*/React.createElement(_ButtonLink.default, { onClick: () => pageChanged(selectedPage + 1), iconLeft: /*#__PURE__*/React.createElement(_ChevronRight.default, null), type: "secondary", title: translate("pagination_label_next"), size: size, disabled: pageCount <= selectedPage })) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_ButtonLink.default, { onClick: () => pageChanged(selectedPage - 1), iconLeft: /*#__PURE__*/React.createElement(_ChevronLeft.default, null), type: "secondary", title: hideLabels ? translate("pagination_label_prev") : undefined, size: size, disabled: selectedPage <= 1 }, !hideLabels && /*#__PURE__*/React.createElement(_Translate.default, { tKey: "pagination_label_prev" })), /*#__PURE__*/React.createElement(_Stack.default, { inline: true, grow: false, spacing: "XXSmall", align: "center" }, pageCount <= _consts.MAXIMUM_PAGES ? /*#__PURE__*/React.createElement(_Pages.default, { pageCount: pageCount, selectedPage: selectedPage, onPageChange: onPageChange, size: size }) : /*#__PURE__*/React.createElement(_CompactPages.default, { pageCount: pageCount, selectedPage: selectedPage, onPageChange: onPageChange, size: size })), /*#__PURE__*/React.createElement(_ButtonLink.default, { onClick: () => pageChanged(selectedPage + 1), iconRight: !hideLabels && /*#__PURE__*/React.createElement(_ChevronRight.default, null), iconLeft: hideLabels && /*#__PURE__*/React.createElement(_ChevronRight.default, null), type: "secondary", title: hideLabels ? translate("pagination_label_next") : undefined, size: size, disabled: pageCount <= selectedPage }, !hideLabels && /*#__PURE__*/React.createElement(_Translate.default, { tKey: "pagination_label_next" })))); }; var _default = Pagination; exports.default = _default;