FormContext.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = exports.FormProvider = void 0;
  8. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  9. var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  10. var React = _interopRequireWildcard(require("react"));
  11. var FormContext = /*#__PURE__*/React.createContext({
  12. triggerFormChange: function triggerFormChange() {},
  13. triggerFormFinish: function triggerFormFinish() {},
  14. registerForm: function registerForm() {},
  15. unregisterForm: function unregisterForm() {}
  16. });
  17. var FormProvider = exports.FormProvider = function FormProvider(_ref) {
  18. var validateMessages = _ref.validateMessages,
  19. onFormChange = _ref.onFormChange,
  20. onFormFinish = _ref.onFormFinish,
  21. children = _ref.children;
  22. var formContext = React.useContext(FormContext);
  23. var formsRef = React.useRef({});
  24. return /*#__PURE__*/React.createElement(FormContext.Provider, {
  25. value: (0, _objectSpread3.default)((0, _objectSpread3.default)({}, formContext), {}, {
  26. validateMessages: (0, _objectSpread3.default)((0, _objectSpread3.default)({}, formContext.validateMessages), validateMessages),
  27. // =========================================================
  28. // = Global Form Control =
  29. // =========================================================
  30. triggerFormChange: function triggerFormChange(name, changedFields) {
  31. if (onFormChange) {
  32. onFormChange(name, {
  33. changedFields: changedFields,
  34. forms: formsRef.current
  35. });
  36. }
  37. formContext.triggerFormChange(name, changedFields);
  38. },
  39. triggerFormFinish: function triggerFormFinish(name, values) {
  40. if (onFormFinish) {
  41. onFormFinish(name, {
  42. values: values,
  43. forms: formsRef.current
  44. });
  45. }
  46. formContext.triggerFormFinish(name, values);
  47. },
  48. registerForm: function registerForm(name, form) {
  49. if (name) {
  50. formsRef.current = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, formsRef.current), {}, (0, _defineProperty2.default)({}, name, form));
  51. }
  52. formContext.registerForm(name, form);
  53. },
  54. unregisterForm: function unregisterForm(name) {
  55. var newForms = (0, _objectSpread3.default)({}, formsRef.current);
  56. delete newForms[name];
  57. formsRef.current = newForms;
  58. formContext.unregisterForm(name);
  59. }
  60. })
  61. }, children);
  62. };
  63. var _default = exports.default = FormContext;