UNPKG

acud

Version:

acg react 组件库

101 lines (99 loc) • 3.69 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireDefault(require("react")); var _button = _interopRequireDefault(require("../../button")); var _KeyCode = require("./KeyCode"); /** * @file pagination/rc-pagination/Goto * @author chenyaqiu */ ; var Goto = function Goto(_ref) { var locale = _ref.locale, rootPrefixCls = _ref.rootPrefixCls, quickGo = _ref.quickGo, goButton = _ref.goButton, disabled = _ref.disabled; var prefixCls = "".concat(rootPrefixCls, "-options"); var _React$useState = _react["default"].useState(''), _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2), goInputText = _React$useState2[0], setGoInputText = _React$useState2[1]; var getValidValue = _react["default"].useMemo(function () { // eslint-disable-next-line no-restricted-globals return !goInputText || isNaN(goInputText) ? undefined : Number(goInputText); }, [goInputText]); var handleChange = _react["default"].useCallback(function (e) { return setGoInputText(e.target.value); }, []); var handleBlur = _react["default"].useCallback(function (e) { if (goButton || goInputText === '') { return; } setGoInputText(''); if (e.relatedTarget && (e.relatedTarget.className.indexOf("".concat(rootPrefixCls, "-item-link")) >= 0 || e.relatedTarget.className.indexOf("".concat(rootPrefixCls, "-item")) >= 0)) { return; } quickGo(getValidValue); }, [quickGo, getValidValue, goInputText, rootPrefixCls, goButton]); var go = _react["default"].useCallback(function (e) { if (goInputText === '') { return; } if (e.keyCode === _KeyCode.KEYCODE.ENTER || e.type === 'click') { setGoInputText(''); quickGo(getValidValue); } }, [goInputText, quickGo, getValidValue]); var gotoButton = _react["default"].useMemo(function () { if (goButton) { if (typeof goButton === 'boolean') { return /*#__PURE__*/_react["default"].createElement(_button["default"], { type: "default", onClick: go, onKeyUp: go, disabled: disabled, className: "".concat(prefixCls, "-quick-jumper-button") }, locale.jump_to_confirm); } return /*#__PURE__*/_react["default"].createElement("span", { onClick: go, onKeyUp: go }, goButton); } return /*#__PURE__*/_react["default"].createElement(_button["default"], { type: "default", onClick: go, onKeyUp: go, disabled: disabled, className: "".concat(prefixCls, "-quick-jumper-button") }, "GO"); }, [goButton, locale, go, disabled, prefixCls]); var goInput = _react["default"].useMemo(function () { if (quickGo) { return /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-quick-jumper") }, locale.jump_to, /*#__PURE__*/_react["default"].createElement("input", { disabled: disabled, type: "text", value: goInputText, onChange: handleChange, onKeyUp: go, onBlur: handleBlur }), locale.page, gotoButton); } return null; }, [gotoButton, quickGo, goInputText, disabled, handleChange, go, handleBlur, locale, prefixCls]); if (!quickGo) { return null; } return /*#__PURE__*/_react["default"].createElement("li", { className: "".concat(prefixCls) }, goInput); }; var _default = exports["default"] = Goto;