@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
66 lines • 3.31 kB
JavaScript
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
var _excluded = ["setCallback", "dispatch"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
import React, { useImperativeHandle, forwardRef, memo, useState } from 'react';
import { Form as TaroForm } from '@tarojs/components';
import { get } from '../default-props';
import FormContext from './core/formContext';
import useForm from './core/useForm';
import { jsx as _jsx } from "react/jsx-runtime";
function Index(props, ref) {
var _useState = useState(get().Form),
_useState2 = _slicedToArray(_useState, 1),
d = _useState2[0];
var _d$props = _objectSpread(_objectSpread({}, d), props),
form = _d$props.form,
_d$props$initialValue = _d$props.initialValues,
initialValues = _d$props$initialValue === void 0 ? {} : _d$props$initialValue,
children = _d$props.children,
_d$props$className = _d$props.className,
className = _d$props$className === void 0 ? '' : _d$props$className,
onFinish = _d$props.onFinish,
onFinishFailed = _d$props.onFinishFailed,
onChange = _d$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;