UNPKG

mobile-more

Version:

基于 antd-mobile v5 扩展移动端 UI 组件

97 lines 4.18 kB
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime"; import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator"; import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; var _excluded = ["initText", "runText", "resetText", "second", "onGetCaptcha", "captchaButtonProps", "className", "inputProps"]; import * as React from 'react'; import classnames from 'classnames'; import { checkResult } from 'util-helpers'; import BizFormItemInput from '../ItemInput'; import BizCaptchaButton from '../../BizCaptchaButton'; import { prefixClass } from '../../../config'; import "./index.css"; var prefixCls = "".concat(prefixClass, "-form-item-captcha"); var BizFormItemCaptcha = function BizFormItemCaptcha(_ref) { var initText = _ref.initText, runText = _ref.runText, resetText = _ref.resetText, second = _ref.second, _ref$onGetCaptcha = _ref.onGetCaptcha, onGetCaptcha = _ref$onGetCaptcha === void 0 ? function () { return true; } : _ref$onGetCaptcha, captchaButtonProps = _ref.captchaButtonProps, className = _ref.className, inputProps = _ref.inputProps, restProps = _objectWithoutProperties(_ref, _excluded); var inputRef = React.useRef(null); // 倒计时按钮状态 var _React$useState = React.useState(false), _React$useState2 = _slicedToArray(_React$useState, 2), start = _React$useState2[0], setStart = _React$useState2[1]; var _React$useState3 = React.useState(false), _React$useState4 = _slicedToArray(_React$useState3, 2), loading = _React$useState4[0], setLoading = _React$useState4[1]; // 点击按钮 var onButtonClick = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(e) { var _captchaButtonProps$o; var ret, _inputRef$current; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: captchaButtonProps === null || captchaButtonProps === void 0 ? void 0 : (_captchaButtonProps$o = captchaButtonProps.onClick) === null || _captchaButtonProps$o === void 0 ? void 0 : _captchaButtonProps$o.call(captchaButtonProps, e); setLoading(true); // 验证手机号码/邮箱是否正确 // ... // 发送验证码 _context.next = 4; return checkResult(onGetCaptcha); case 4: ret = _context.sent; setLoading(false); if (ret) { setStart(true); (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus(); } case 7: case "end": return _context.stop(); } }, _callee); })); return function onButtonClick(_x) { return _ref2.apply(this, arguments); }; }(); var handleEnd = function handleEnd() { var _captchaButtonProps$o2; setStart(false); captchaButtonProps === null || captchaButtonProps === void 0 ? void 0 : (_captchaButtonProps$o2 = captchaButtonProps.onEnd) === null || _captchaButtonProps$o2 === void 0 ? void 0 : _captchaButtonProps$o2.call(captchaButtonProps); }; return /*#__PURE__*/React.createElement(BizFormItemInput, _objectSpread(_objectSpread({ className: classnames(prefixCls, className), disabledWhiteSpace: true }, restProps), {}, { ref: inputRef, inputProps: _objectSpread(_objectSpread({}, inputProps), {}, { suffix: (/*#__PURE__*/React.createElement(BizCaptchaButton, _objectSpread(_objectSpread({ initText: initText, runText: runText, resetText: resetText, second: second, loading: loading, fill: "none", color: "primary" }, captchaButtonProps), {}, { start: start, onClick: onButtonClick, onEnd: handleEnd }))) }) })); }; export default BizFormItemCaptcha;