UNPKG

mobile-more

Version:

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

80 lines (79 loc) 3.64 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _utilHelpers = require("util-helpers"); var _rcHooks = require("rc-hooks"); var _Form = _interopRequireDefault(require("../Form")); var _StepsFormContext = _interopRequireDefault(require("./StepsFormContext")); var _StepFormContext = _interopRequireDefault(require("./StepFormContext")); var _excluded = ["form", "name", "onFinish"]; var StepForm = function StepForm(_ref) { var _ctx$formProps; var formProp = _ref.form, customName = _ref.name, customOnFinish = _ref.onFinish, restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded); var _BizForm$useForm = _Form.default.useForm(), _BizForm$useForm2 = (0, _slicedToArray2.default)(_BizForm$useForm, 1), form = _BizForm$useForm2[0]; var formRef = (0, _react.useRef)(formProp || form); var ctx = (0, _react.useContext)(_StepsFormContext.default); var stepCtx = (0, _react.useContext)(_StepFormContext.default); var name = customName || stepCtx.name; var _onFinish = customOnFinish || (ctx === null || ctx === void 0 ? void 0 : (_ctx$formProps = ctx.formProps) === null || _ctx$formProps === void 0 ? void 0 : _ctx$formProps.onFinish); (0, _rcHooks.useMount)(function () { if (ctx && stepCtx) { ctx.formArrayRef.current[stepCtx.step] = formRef.current; } }); return /*#__PURE__*/_react.default.createElement(_Form.default, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, ctx === null || ctx === void 0 ? void 0 : ctx.formProps), restProps), {}, { name: name, form: formRef.current, onFinish: function () { var _onFinish2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(values) { var ret; return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0, _utilHelpers.checkResult)(_onFinish, values); case 2: ret = _context.sent; if (ret) { _context.next = 5; break; } return _context.abrupt("return"); case 5: if (ctx && stepCtx) { ctx.onFormFinish(name, values); if (stepCtx.step !== stepCtx.total) { ctx.next(); } else { ctx.submit(); } } case 6: case "end": return _context.stop(); } }, _callee); })); function onFinish(_x) { return _onFinish2.apply(this, arguments); } return onFinish; }() })); }; var _default = exports.default = StepForm;