@idares-ui/react
Version:
66 lines • 3.65 kB
JavaScript
import { __assign } from "tslib";
import * as React from "react";
import { MainContext } from "../../utils/context";
import { NAVIGATION_BUTTON_TYPES } from "../../utils/enum";
import ArrowButton from "../ArrowButton";
import PaginationButton from "../PaginationButton";
var NavigationButton = function (_a) {
var type = _a.type;
var _b = React.useContext(MainContext), numberOfPages = _b.numberOfPages, page = _b.page;
var computeProps = function () {
switch (type) {
case NAVIGATION_BUTTON_TYPES.PREVIOUS:
return {
value: page > 1 ? page - 1 : page,
"aria-label": "Previous page"
};
case NAVIGATION_BUTTON_TYPES.NEXT:
return {
value: page < numberOfPages ? page + 1 : page,
"aria-label": "Next page"
};
default:
return {
value: page,
"aria-label": "Page ".concat(page)
};
}
};
return (React.createElement(PaginationButton, __assign({}, computeProps()),
React.createElement(ArrowButton, { type: type })));
};
export var PreviousButton = function () { return (React.createElement(NavigationButton, { type: NAVIGATION_BUTTON_TYPES.PREVIOUS })); };
export var NextButton = function () { return (React.createElement(NavigationButton, { type: NAVIGATION_BUTTON_TYPES.NEXT })); };
export var FirstPage = function () {
var page = React.useContext(MainContext).page;
return (React.createElement(PaginationButton, { active: page === 1, title: 1, value: 1, "aria-label": "First page" }));
};
export var MiddlePage = function () {
var page = React.useContext(MainContext).page;
return (React.createElement(PaginationButton, { active: true, title: page, value: page, "aria-label": "Page ".concat(page) }));
};
export var LastPage = function () {
var _a = React.useContext(MainContext), numberOfPages = _a.numberOfPages, page = _a.page;
return (React.createElement(PaginationButton, { active: numberOfPages === page, title: numberOfPages, value: numberOfPages, "aria-label": "Last page" }, numberOfPages > 99 ? React.createElement(React.Fragment, null, "99+") : undefined));
};
export var FirstThree = function () {
var page = React.useContext(MainContext).page;
return (React.createElement(React.Fragment, null, new Array(3).fill(1).map(function (_, i) {
var itemValue = i + 1;
var isActive = itemValue === page;
return (React.createElement(PaginationButton, { key: itemValue, active: itemValue === page, title: itemValue, value: itemValue, "aria-label": "Page ".concat(itemValue).concat(isActive ? ", current page" : "") }));
})));
};
export var LastThree = function () {
var _a = React.useContext(MainContext), numberOfPages = _a.numberOfPages, page = _a.page;
return (React.createElement(React.Fragment, null, new Array(3)
.fill(1)
.map(function (_, i) {
var itemValue = numberOfPages - i;
var isActive = itemValue === page;
return (React.createElement(PaginationButton, { key: i, active: isActive, title: itemValue, value: itemValue, "aria-label": "Page ".concat(itemValue).concat(isActive ? ", current page" : "") }));
})
.reverse()));
};
export var SpacerInput = function () { return (React.createElement(PaginationButton, { clickInput: true, "aria-label": "Input page number" }, React.createElement(React.Fragment, null, "..."))); };
//# sourceMappingURL=fragments.js.map