UNPKG

acud

Version:

acg react 组件库

93 lines • 3.19 kB
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; /** * @file pagination/rc-pagination/Goto * @author chenyaqiu */ import React from 'react'; import Button from '../../button'; import { KEYCODE } from './KeyCode'; ; 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.useState(''), _React$useState2 = _slicedToArray(_React$useState, 2), goInputText = _React$useState2[0], setGoInputText = _React$useState2[1]; var getValidValue = React.useMemo(function () { // eslint-disable-next-line no-restricted-globals return !goInputText || isNaN(goInputText) ? undefined : Number(goInputText); }, [goInputText]); var handleChange = React.useCallback(function (e) { return setGoInputText(e.target.value); }, []); var handleBlur = React.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.useCallback(function (e) { if (goInputText === '') { return; } if (e.keyCode === KEYCODE.ENTER || e.type === 'click') { setGoInputText(''); quickGo(getValidValue); } }, [goInputText, quickGo, getValidValue]); var gotoButton = React.useMemo(function () { if (goButton) { if (typeof goButton === 'boolean') { return /*#__PURE__*/React.createElement(Button, { type: "default", onClick: go, onKeyUp: go, disabled: disabled, className: "".concat(prefixCls, "-quick-jumper-button") }, locale.jump_to_confirm); } return /*#__PURE__*/React.createElement("span", { onClick: go, onKeyUp: go }, goButton); } return /*#__PURE__*/React.createElement(Button, { type: "default", onClick: go, onKeyUp: go, disabled: disabled, className: "".concat(prefixCls, "-quick-jumper-button") }, "GO"); }, [goButton, locale, go, disabled, prefixCls]); var goInput = React.useMemo(function () { if (quickGo) { return /*#__PURE__*/React.createElement("div", { className: "".concat(prefixCls, "-quick-jumper") }, locale.jump_to, /*#__PURE__*/React.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.createElement("li", { className: "".concat(prefixCls) }, goInput); }; export default Goto;