@uiw-admin/components
Version:
52 lines (50 loc) • 1.79 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
import { useState } from 'react';
import { isObjectEmpty } from '../utils/index';
var useForm = () => {
// form表单实例
var [formState, setFormState] = useState();
// 表单验证(同时兼容老api submitvalidate和新api onSubmit )
var submitvalidate = () => {
var _formState$current;
return (formState == null ? void 0 : (_formState$current = formState.current) == null ? void 0 : _formState$current.onSubmit()) || null;
};
// 获取表单的值
var getFieldValues = () => {
var _formState$current2;
return (formState == null ? void 0 : (_formState$current2 = formState.current) == null ? void 0 : _formState$current2.getFieldValues()) || {};
};
// 获取表单错误信息
var getError = () => {
var _formState$current3;
return (formState == null ? void 0 : (_formState$current3 = formState.current) == null ? void 0 : _formState$current3.getError()) || {};
};
// 验证并获取表单值
var validateFieldsAndGetValue = () => {
return new Promise( /*#__PURE__*/function () {
var _ref = _asyncToGenerator(function* (resolve, reject) {
yield submitvalidate();
var errors = getError();
if (isObjectEmpty(errors)) {
var value = getFieldValues();
resolve(value);
} else {
reject(errors);
}
});
return function (_x, _x2) {
return _ref.apply(this, arguments);
};
}());
};
return _extends({}, formState == null ? void 0 : formState.current, {
submitvalidate,
getError,
getFieldValues,
validateFieldsAndGetValue,
// --------------
setFormState
});
};
export default useForm;