UNPKG

mobile-more

Version:

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

66 lines (65 loc) 2.71 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; var _excluded = ["onFinish", "className", "justify", "visible", "layout"]; import { Form } from 'antd-mobile'; import classnames from 'classnames'; import namePathSet from "rc-util/es/utils/set"; import React from 'react'; import { isArray } from 'ut2'; import { prefixClass } from "../../config"; import "./Form.css"; import FormArray from "./FormArray"; import FormContext from "./FormContext"; import FormItem from "./FormItem"; import getNamePaths from "./utils/getNamePaths"; import { transformFormValues } from "./utils/transform"; var prefixCls = "".concat(prefixClass, "-form"); var BizForm = function BizForm(_ref) { var _onFinish = _ref.onFinish, className = _ref.className, _ref$justify = _ref.justify, justify = _ref$justify === void 0 ? 'start' : _ref$justify, _ref$visible = _ref.visible, visible = _ref$visible === void 0 ? true : _ref$visible, _ref$layout = _ref.layout, layout = _ref$layout === void 0 ? 'horizontal' : _ref$layout, restProps = _objectWithoutProperties(_ref, _excluded); var transformRecordRef = React.useRef({}); var setFieldTransform = function setFieldTransform(name, transform, parentListNames) { if (name && transform) { if (isArray(parentListNames) && parentListNames.length > 0) { var paths = getNamePaths(name, parentListNames); transformRecordRef.current = namePathSet(transformRecordRef.current, paths, transform); } else if (isArray(name)) { transformRecordRef.current = namePathSet(transformRecordRef.current, name, transform); } else { transformRecordRef.current[String(name)] = transform; } } }; return /*#__PURE__*/React.createElement(FormContext.Provider, { value: { setFieldTransform: setFieldTransform, justify: justify } }, /*#__PURE__*/React.createElement(Form, _extends({ className: classnames(prefixCls, _defineProperty({}, "".concat(prefixCls, "-visible"), visible), className), layout: layout, onFinish: function onFinish(values) { if (typeof _onFinish !== 'function') { return; } var transValues = transformFormValues(values, transformRecordRef.current); // console.log(values, transValues); _onFinish(transValues); } }, restProps))); }; BizForm.Item = FormItem; BizForm.Array = FormArray; BizForm.Subscribe = Form.Subscribe; BizForm.Header = Form.Header; BizForm.useForm = Form.useForm; BizForm.useWatch = Form.useWatch; export default BizForm;