@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.
139 lines (119 loc) • 5.11 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 _styledComponents = _interopRequireDefault(require("styled-components"));
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"));
var handlePageChange = function handlePageChange(onPageChange, pageCount) {
return function (nextPageIndex) {
if (onPageChange && nextPageIndex <= pageCount && nextPageIndex >= 0) {
onPageChange(nextPageIndex);
}
};
}; // Fix this with updated stack
var StyledNav = _styledComponents.default.nav.withConfig({
displayName: "Pagination__StyledNav",
componentId: "n5hqxf-0"
})(["width:auto;"]);
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 /*#__PURE__*/React.createElement(_Stack.default, {
direction: "row",
spacing: "tight",
align: "center",
grow: false,
shrink: true,
dataTest: dataTest,
as: StyledNav
}, /*#__PURE__*/React.createElement(_Hide.default, {
on: ["smallMobile", "mediumMobile", "largeMobile"]
}, /*#__PURE__*/React.createElement(_ButtonLink.default, {
onClick: function onClick() {
return pageChanged(selectedPage - 1);
},
iconLeft: /*#__PURE__*/React.createElement(_ChevronLeft.default, null),
type: "secondary",
size: size,
disabled: selectedPage <= 1
}, !hideLabels && /*#__PURE__*/React.createElement(_Translate.default, {
tKey: "pagination_label_prev"
}))), /*#__PURE__*/React.createElement(_Hide.default, {
on: ["tablet", "desktop", "largeDesktop"]
}, /*#__PURE__*/React.createElement(_ButtonLink.default, {
onClick: function onClick() {
return pageChanged(selectedPage - 1);
},
iconLeft: /*#__PURE__*/React.createElement(_ChevronLeft.default, null),
type: "secondary",
size: size,
disabled: selectedPage <= 1
})), /*#__PURE__*/React.createElement(_Hide.default, {
on: ["smallMobile", "mediumMobile", "largeMobile"]
}, /*#__PURE__*/React.createElement(_Stack.default, {
direction: "row",
spacing: "tight",
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(_Hide.default, {
on: ["tablet", "desktop", "largeDesktop"]
}, /*#__PURE__*/React.createElement(_ActiveButton.default, {
transparent: true,
size: size
}, selectedPage, " of ", pageCount)), /*#__PURE__*/React.createElement(_Hide.default, {
on: ["smallMobile", "mediumMobile", "largeMobile"]
}, /*#__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",
size: size,
disabled: pageCount <= selectedPage
}, !hideLabels && /*#__PURE__*/React.createElement(_Translate.default, {
tKey: "pagination_label_next"
}))), /*#__PURE__*/React.createElement(_Hide.default, {
on: ["tablet", "desktop", "largeDesktop"]
}, /*#__PURE__*/React.createElement(_ButtonLink.default, {
onClick: function onClick() {
return pageChanged(selectedPage + 1);
},
iconLeft: /*#__PURE__*/React.createElement(_ChevronRight.default, null),
type: "secondary",
size: size,
disabled: pageCount <= selectedPage
})));
};
var _default = Pagination;
exports.default = _default;