UNPKG

acud

Version:

acg react 组件库

84 lines (82 loc) • 3.27 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(require("react")); /** * @file pagination/rc-pagination/Options * @author chenyaqiu */ ; var defaultPageSizeOptions = ['10', '20', '50', '100']; var Options = function Options(_ref) { var _ref$pageSizeOptions = _ref.pageSizeOptions, pageSizeOptions = _ref$pageSizeOptions === void 0 ? defaultPageSizeOptions : _ref$pageSizeOptions, changeSize = _ref.changeSize, pageSize = _ref.pageSize, rootPrefixCls = _ref.rootPrefixCls, selectComponentClass = _ref.selectComponentClass, buildOptionText = _ref.buildOptionText, selectPrefixCls = _ref.selectPrefixCls, disabled = _ref.disabled, Option = _ref.Option, locale = _ref.locale; var prefixCls = "".concat(rootPrefixCls, "-options"); var Select = selectComponentClass; var handleBuildOptionText = _react["default"].useCallback(function (value) { return "".concat(value); }, []); buildOptionText = _react["default"].useCallback(function (value) { return "".concat(value, " ").concat(locale.items_per_page); }, [locale]); var handleChangeSize = _react["default"].useCallback(function (value) { changeSize(Number(value)); }, [changeSize]); var curPageSizeOptions = _react["default"].useMemo(function () { if (pageSizeOptions.some(function (option) { return option.toString() === pageSize.toString(); })) { return pageSizeOptions; } return pageSizeOptions.concat([pageSize.toString()]).sort(function (a, b) { // eslint-disable-next-line no-restricted-globals var numberA = isNaN(Number(a)) ? 0 : Number(a); // eslint-disable-next-line no-restricted-globals var numberB = isNaN(Number(b)) ? 0 : Number(b); return numberA - numberB; }); }, [pageSize, pageSizeOptions]); var changeSelect = _react["default"].useMemo(function () { if (changeSize && Select) { var options = curPageSizeOptions.map(function (opt) { return /*#__PURE__*/_react["default"].createElement(Option, { key: opt.toString(), value: opt.toString() }, (buildOptionText || handleBuildOptionText)(opt)); }); return /*#__PURE__*/_react["default"].createElement(Select, { disabled: disabled, prefixCls: selectPrefixCls, showSearch: false, className: "".concat(prefixCls, "-size-changer"), optionLabelProp: "children", dropdownMatchSelectWidth: false, value: (pageSize || curPageSizeOptions[0]).toString(), onChange: handleChangeSize, getPopupContainer: function getPopupContainer(triggerNode) { return triggerNode.parentNode; } }, options); } return null; }, [Select, buildOptionText, changeSize, handleChangeSize, disabled, pageSize, curPageSizeOptions, handleBuildOptionText, prefixCls, selectPrefixCls, Option]); if (!changeSize || !Select) { return null; } return /*#__PURE__*/_react["default"].createElement("li", { className: "".concat(prefixCls) }, changeSelect); }; var _default = exports["default"] = Options;