shineout
Version:
Shein 前端组件库
116 lines (90 loc) • 3.71 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _uid = require("../utils/uid");
var _styles = require("./styles");
var _Input = _interopRequireDefault(require("../Input"));
var _classname = require("../utils/classname");
var inputStyle = {
width: 60,
display: 'inline-block'
};
var nofunc = function nofunc() {};
var Jumper =
/*#__PURE__*/
function (_PureComponent) {
(0, _inheritsLoose2.default)(Jumper, _PureComponent);
function Jumper(props) {
var _this;
_this = _PureComponent.call(this, props) || this;
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "renderRequire", void 0);
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "autoFocus", void 0);
_this.handleKeyDown = _this.handleKeyDown.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
_this.renderRequire = (0, _uid.getUidStr)();
return _this;
}
var _proto = Jumper.prototype;
_proto.getMax = function getMax() {
var _this$props = this.props,
total = _this$props.total,
pageSize = _this$props.pageSize;
return Math.ceil(total / pageSize) || 1;
};
_proto.handleKeyDown = function handleKeyDown(e) {
if (e.keyCode === 13) {
var current = parseInt(e.target.value, 10);
this.autoFocus = true;
if (!Number.isFinite(current)) return;
if (current < 1) current = 1;
this.renderRequire = (0, _uid.getUidStr)();
var max = this.getMax();
if (current > max) current = max;
if (current === this.props.current) {
this.forceUpdate();
}
this.props.onChange(current);
}
};
_proto.render = function render() {
var _this$props2 = this.props,
current = _this$props2.current,
text = _this$props2.text,
size = _this$props2.size,
isSimple = _this$props2.isSimple;
var txt = text.jumper ? text.jumper.split('{input}') : [];
if (isSimple) {
var spanClass = (0, _styles.paginationClass)('simple-span');
txt = [[], [_react.default.createElement("span", {
key: "separator",
className: spanClass
}, "/"), _react.default.createElement("span", {
key: "pageMax",
className: spanClass
}, this.getMax())]];
}
return _react.default.createElement("div", {
className: (0, _styles.paginationClass)((0, _classname.getDirectionClass)('section'))
}, txt[0] ? _react.default.createElement("span", null, txt[0]) : undefined, _react.default.createElement(_Input.default, {
key: this.renderRequire,
value: String(current),
onChange: nofunc,
autoFocus: this.autoFocus,
onKeyDown: this.handleKeyDown,
digits: 0,
type: "number",
style: inputStyle,
size: size,
className: (0, _styles.paginationClass)(isSimple && 'simple-input'),
delay: 400
}), txt[1] ? _react.default.createElement("span", null, txt[1]) : undefined);
};
return Jumper;
}(_react.PureComponent);
var _default = Jumper;
exports.default = _default;