@insticc/genericform 2.1.5 → 2.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/build/index.js +15 -2
  2. package/package.json +1 -1
package/build/index.js CHANGED
@@ -157,6 +157,16 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
157
157
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
158
158
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } // #region FormFields
159
159
  require('react-datetime/css/react-datetime.css');
160
+ var EMPTY_OBJECT = {};
161
+ var shallowEqual = function shallowEqual(a, b) {
162
+ if (a === b) return true;
163
+ var aKeys = Object.keys(a),
164
+ bKeys = Object.keys(b);
165
+ if (aKeys.length !== bKeys.length) return false;
166
+ return aKeys.every(function (key) {
167
+ return a[key] === b[key];
168
+ });
169
+ };
160
170
 
161
171
  // #region Pure helpers
162
172
  var sortFieldsFn = function sortFieldsFn(fields) {
@@ -267,7 +277,7 @@ var GenericForm = function GenericForm(_ref) {
267
277
  isSubmitting = _ref$isSubmitting === void 0 ? false : _ref$isSubmitting,
268
278
  handleErrors = _ref.handleErrors,
269
279
  _ref$overrideErrors = _ref.overrideErrors,
270
- overrideErrors = _ref$overrideErrors === void 0 ? {} : _ref$overrideErrors;
280
+ overrideErrors = _ref$overrideErrors === void 0 ? EMPTY_OBJECT : _ref$overrideErrors;
271
281
  var _useState = (0, _react.useState)([]),
272
282
  _useState2 = _slicedToArray(_useState, 2),
273
283
  sortedFields = _useState2[0],
@@ -291,8 +301,11 @@ var GenericForm = function GenericForm(_ref) {
291
301
  }, [isSubmitting]);
292
302
  (0, _react.useEffect)(function () {
293
303
  handleErrors && handleErrors(errors);
294
- }, [errors]);
304
+ }, [errors, handleErrors]);
305
+ var overrideErrorsRef = (0, _react.useRef)(EMPTY_OBJECT);
295
306
  (0, _react.useEffect)(function () {
307
+ if (shallowEqual(overrideErrorsRef.current, overrideErrors)) return;
308
+ overrideErrorsRef.current = overrideErrors;
296
309
  setErrors(overrideErrors);
297
310
  }, [overrideErrors]);
298
311
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@insticc/genericform",
3
- "version": "2.1.5",
3
+ "version": "2.1.6",
4
4
  "description": "A generic form with a comprehensive set of field types, validation, and external state management",
5
5
  "main": "build/index.js",
6
6
  "scripts": {