You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
3.0 KiB
67 lines
3.0 KiB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
|
|
import * as React from 'react';
|
|
var FormContext = React.createContext({
|
|
triggerFormChange: function triggerFormChange() {},
|
|
triggerFormFinish: function triggerFormFinish() {},
|
|
registerForm: function registerForm() {},
|
|
unregisterForm: function unregisterForm() {}
|
|
});
|
|
|
|
var FormProvider = function FormProvider(_ref) {
|
|
var validateMessages = _ref.validateMessages,
|
|
onFormChange = _ref.onFormChange,
|
|
onFormFinish = _ref.onFormFinish,
|
|
children = _ref.children;
|
|
var formContext = React.useContext(FormContext);
|
|
var formsRef = React.useRef({});
|
|
return React.createElement(FormContext.Provider, {
|
|
value: _objectSpread({}, formContext, {
|
|
validateMessages: _objectSpread({}, formContext.validateMessages, {}, validateMessages),
|
|
// =========================================================
|
|
// = Global Form Control =
|
|
// =========================================================
|
|
triggerFormChange: function triggerFormChange(name, changedFields) {
|
|
if (onFormChange) {
|
|
onFormChange(name, {
|
|
changedFields: changedFields,
|
|
forms: formsRef.current
|
|
});
|
|
}
|
|
|
|
formContext.triggerFormChange(name, changedFields);
|
|
},
|
|
triggerFormFinish: function triggerFormFinish(name, values) {
|
|
if (onFormFinish) {
|
|
onFormFinish(name, {
|
|
values: values,
|
|
forms: formsRef.current
|
|
});
|
|
}
|
|
|
|
formContext.triggerFormFinish(name, values);
|
|
},
|
|
registerForm: function registerForm(name, form) {
|
|
if (name) {
|
|
formsRef.current = _objectSpread({}, formsRef.current, _defineProperty({}, name, form));
|
|
}
|
|
|
|
formContext.registerForm(name, form);
|
|
},
|
|
unregisterForm: function unregisterForm(name) {
|
|
var newForms = _objectSpread({}, formsRef.current);
|
|
|
|
delete newForms[name];
|
|
formsRef.current = newForms;
|
|
formContext.unregisterForm(name);
|
|
}
|
|
})
|
|
}, children);
|
|
};
|
|
|
|
export { FormProvider };
|
|
export default FormContext; |