UNPKG

@braineet/ui

Version:

Braineet design system

91 lines (90 loc) 3.7 kB
"use strict"; exports.__esModule = true; exports.default = exports.Pagination = void 0; var _react = _interopRequireDefault(require("react")); var _box = _interopRequireDefault(require("../box")); var _pageButtons = _interopRequireDefault(require("./pageButtons")); var _styles = require("./styles"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /** The `Pagination` component. */ var Pagination = exports.Pagination = function Pagination(_ref) { var pages = _ref.pages, activePage = _ref.activePage, onChange = _ref.onChange, onChangeRowsByPage = _ref.onChangeRowsByPage, optionsSelectRowsByPage = _ref.optionsSelectRowsByPage, valueSelectRowsByPage = _ref.valueSelectRowsByPage, withTextButton = _ref.withTextButton, textSelect = _ref.textSelect, unrollSelect = _ref.unrollSelect, prevButtonProps = _ref.prevButtonProps, nextButtonProps = _ref.nextButtonProps, selectProps = _ref.selectProps; var getUnroll = { top: 'flex-end', center: 'center', bottom: 'flex-start ' }; var isFirstItemSelected = parseInt(activePage, 10) === 1; var isLastItemSelected = parseInt(activePage, 10) === pages; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styles.StyledNav, { children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_box.default, { display: "flex", children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.StyledButton, _extends({ styleType: "solid", color: "white", icon: !withTextButton ? 'arrow_left_small' : '', onClick: function onClick(event) { onChange(event, parseInt(activePage, 10) - 1); }, disabled: isFirstItemSelected }, prevButtonProps, { children: withTextButton ? 'Previous' : '' })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.StyledPageButtonsContainer, { children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_pageButtons.default, { onChange: onChange, pages: pages, activePage: parseInt(activePage, 10) }) }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.StyledButton, _extends({ styleType: "solid", color: "white", icon: !withTextButton ? 'arrow_right_small' : '', onClick: function onClick(event) { onChange(event, parseInt(activePage, 10) + 1); }, disabled: isLastItemSelected }, nextButtonProps, { children: withTextButton ? 'Next' : '' }))] }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_box.default, { display: "flex", alignItems: "center", children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.StyledSelect, _extends({ name: "formatTitle", options: optionsSelectRowsByPage, onChange: onChangeRowsByPage, value: valueSelectRowsByPage, placeholder: null, unroll: getUnroll[unrollSelect] }, selectProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.StyledTextRows, { size: "sm", children: textSelect })] })] }); }; Pagination.defaultProps = { activePage: undefined, onChange: function onChange() {}, onChangeRowsByPage: function onChangeRowsByPage() {}, optionsSelectRowsByPage: [], withTextButton: false, valueSelectRowsByPage: null, textSelect: 'Rows per pages', unrollSelect: 'center' }; var _default = exports.default = Pagination;