@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
JavaScript
"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;