@centreon/react-components
Version:
react components used by centreon web frontend
138 lines (103 loc) • 4.91 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _pagination = _interopRequireDefault(require("./pagination.scss"));
var _IconAction = _interopRequireDefault(require("../Icon/IconAction"));
/* eslint-disable react/jsx-no-bind */
/* eslint-disable jsx-a11y/click-events-have-key-events */
/* eslint-disable react/jsx-filename-extension */
/* eslint-disable jsx-a11y/anchor-is-valid */
/* eslint-disable jsx-a11y/no-static-element-interactions */
/* eslint-disable no-plusplus */
/* eslint-disable react/prop-types */
var Pagination =
/*#__PURE__*/
function (_Component) {
(0, _inherits2["default"])(Pagination, _Component);
function Pagination() {
var _getPrototypeOf2;
var _this;
(0, _classCallCheck2["default"])(this, Pagination);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(Pagination)).call.apply(_getPrototypeOf2, [this].concat(args)));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
currentPage: 0
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "previousPage", function () {
var currentPage = _this.state.currentPage;
if (currentPage > 0) {
_this.pageChanged(currentPage - 1);
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "nextPage", function () {
var pageCount = _this.props.pageCount;
var currentPage = _this.state.currentPage;
if (currentPage < pageCount - 1) {
_this.pageChanged(currentPage + 1);
}
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "pageChanged", function (page) {
var onPageChange = _this.props.onPageChange;
_this.setState({
currentPage: page
}, function () {
onPageChange(page);
});
});
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "renderPages", function (count) {
var currentPage = _this.state.currentPage;
var pages = [];
for (var i = 0; i < count; i++) {
pages.push(_react["default"].createElement("a", {
key: "paginationPage".concat(i),
onClick: _this.pageChanged.bind((0, _assertThisInitialized2["default"])(_this), i),
className: (0, _classnames["default"])(i === currentPage ? _pagination["default"].active : '')
}, i + 1));
}
return _react["default"].createElement(_react["default"].Fragment, null, pages);
});
return _this;
}
(0, _createClass2["default"])(Pagination, [{
key: "render",
value: function render() {
var _this$props = this.props,
pageCount = _this$props.pageCount,
onPageChange = _this$props.onPageChange;
if (!onPageChange || !pageCount) {
return null;
}
return _react["default"].createElement("div", {
className: (0, _classnames["default"])(_pagination["default"].pagination)
}, _react["default"].createElement("a", {
onClick: this.pageChanged.bind(this, 0)
}, "First"), _react["default"].createElement(_IconAction["default"], {
iconActionType: "arrow-right",
onClick: this.previousPage.bind(this)
}), this.renderPages(pageCount), _react["default"].createElement(_IconAction["default"], {
iconActionType: "arrow-right",
onClick: this.nextPage.bind(this)
}), _react["default"].createElement("a", {
onClick: this.pageChanged.bind(this, pageCount - 1)
}, "Last"));
}
}]);
return Pagination;
}(_react.Component);
var _default = Pagination;
exports["default"] = _default;