UNPKG

@idares-ui/react

Version:
66 lines 3.65 kB
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