UNPKG

mobile-more

Version:

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

65 lines 2.73 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; 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 * as 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, _objectSpread({ 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;