UNPKG

@centreon/react-components

Version:
138 lines (103 loc) 4.91 kB
"use strict"; 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;