@ashvin27/react-datatable
Version:
ReactDatatable is a component which provide ability to create multifunctional table using single component like jQuery Datatable
133 lines (118 loc) • 2.94 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ADPagination;
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ADPagination(props) {
var size = props.pages;
var page = props.page_number;
var step = 2;
var tags = [];
var pagination = props.language.pagination;
var Item = function Item(props) {
var className = props.className || "";
return _react2.default.createElement(
"li",
{ className: "page-item " + className },
_react2.default.createElement(
"a",
{ href: "#", className: "page-link", tabIndex: "-1",
onClick: function onClick(e) {
e.preventDefault();props.onClick(e);
} },
props.children
)
);
};
var Add = function Add(s, f) {
var _loop = function _loop(i) {
tags.push(_react2.default.createElement(
Item,
{
key: i,
className: page == i ? "active" : "",
onClick: function onClick(e) {
return props.goToPage(e, i);
} },
i
));
};
for (var i = s; i < f; i++) {
_loop(i);
}
};
var Last = function Last() {
tags.push(_react2.default.createElement(
Item,
{ key: "l..." },
"..."
));
tags.push(_react2.default.createElement(
Item,
{ key: size,
className: page == size ? "active" : "",
onClick: function onClick(e) {
return props.goToPage(e, size);
} },
size
));
};
var First = function First() {
tags.push(_react2.default.createElement(
Item,
{
key: "1",
className: page == 1 ? "active" : "",
onClick: function onClick(e) {
return props.goToPage(e, 1);
} },
"1"
));
tags.push(_react2.default.createElement(
Item,
{ key: "f..." },
"..."
));
};
tags.push(_react2.default.createElement(
Item,
{
key: "p0",
className: props.isFirst ? "disabled " : "",
onClick: props.previousPage },
pagination.previous ? pagination.previous : _react2.default.createElement(
"span",
null,
"\u25C4"
)
));
if (size < step * 2 + 6) {
Add(1, size + 1);
} else if (page < step * 2 + 1) {
Add(1, step * 2 + 4);
Last();
} else if (page > size - step * 2) {
First();
Add(size - step * 2 - 2, size + 1);
} else {
First();
Add(page - step, page + step + 1);
Last();
}
tags.push(_react2.default.createElement(
Item,
{
key: "n0",
className: props.isLast ? "disabled " : "",
onClick: props.nextPage },
pagination.next ? pagination.next : _react2.default.createElement(
"span",
null,
"\u25BA"
)
));
return tags;
}