@braineet/ui
Version:
Braineet design system
91 lines (90 loc) • 3.7 kB
JavaScript
;
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;