@gizwits/vantui
Version:
机智云组件库
57 lines • 2.08 kB
JavaScript
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["setCallback", "dispatch"];
import React, { useImperativeHandle, forwardRef, memo } from 'react';
import { Form as TaroForm } from '@tarojs/components';
import FormContext from './core/formContext';
import useForm from './core/useForm';
import { jsx as _jsx } from "react/jsx-runtime";
function Index(props, ref) {
var form = props.form,
_props$initialValues = props.initialValues,
initialValues = _props$initialValues === void 0 ? {} : _props$initialValues,
children = props.children,
_props$className = props.className,
className = _props$className === void 0 ? '' : _props$className,
onFinish = props.onFinish,
onFinishFailed = props.onFinishFailed,
onChange = props.onChange;
var formInstance = useForm(form, initialValues);
// eslint-disable-next-line @typescript-eslint/no-unused-vars
var setCallback = formInstance.setCallback,
dispatch = formInstance.dispatch,
formInstanceAPI = _objectWithoutProperties(formInstance, _excluded);
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
setCallback({
onFinish: onFinish,
onFinishFailed: onFinishFailed,
onChange: onChange
});
useImperativeHandle(ref, function () {
return formInstanceAPI;
}, [formInstanceAPI]);
var RenderChildren = /*#__PURE__*/_jsx(FormContext.Provider, {
value: formInstance,
children: children
});
return /*#__PURE__*/_jsx(TaroForm, {
className: "".concat(className, " vant-form"),
onReset: function onReset(e) {
e.preventDefault();
e.stopPropagation();
formInstance.resetFields();
},
onSubmit: function onSubmit(e) {
e.preventDefault();
e.stopPropagation();
formInstance.submit();
},
children: RenderChildren
});
}
var Form = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(Index));
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
Form.useForm = useForm;
export { Form, useForm };
export default Form;