mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
65 lines • 2.73 kB
JavaScript
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;