@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.
130 lines (110 loc) • 4.82 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
var _useMediaQuery2 = _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"));
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);
var _useMediaQuery = (0, _useMediaQuery2.default)(),
isTablet = _useMediaQuery.isTablet;
var 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: function onClick() {
return 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
}, selectedPage, " of ", pageCount), /*#__PURE__*/React.createElement(_ButtonLink.default, {
onClick: function onClick() {
return 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: function onClick() {
return 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: function onClick() {
return 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;