@steroidsjs/core 3.0.26 → 3.0.27
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.
- package/package.json +1 -1
- package/utils/form.js +31 -9
package/package.json
CHANGED
package/utils/form.js
CHANGED
|
@@ -18,11 +18,11 @@ exports.providers = exports.clearErrors = exports.cleanEmptyObject = exports.set
|
|
|
18
18
|
var isPlainObject_1 = __importDefault(require("lodash-es/isPlainObject"));
|
|
19
19
|
var isArray_1 = __importDefault(require("lodash-es/isArray"));
|
|
20
20
|
var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
|
|
21
|
+
var cloneDeep_1 = __importDefault(require("lodash-es/cloneDeep"));
|
|
21
22
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
22
|
-
var
|
|
23
|
-
var toPairs_1 = __importDefault(require("lodash-es/toPairs"));
|
|
24
|
-
var omit_1 = __importDefault(require("lodash-es/omit"));
|
|
23
|
+
var isObject_1 = __importDefault(require("lodash-es/isObject"));
|
|
25
24
|
var isEmpty_1 = __importDefault(require("lodash-es/isEmpty"));
|
|
25
|
+
var unset_1 = __importDefault(require("lodash-es/unset"));
|
|
26
26
|
var react_1 = require("react");
|
|
27
27
|
var react_use_1 = require("react-use");
|
|
28
28
|
var useDispatch_1 = __importDefault(require("../hooks/useDispatch"));
|
|
@@ -81,12 +81,34 @@ var cleanEmptyObject = function (object) {
|
|
|
81
81
|
exports.cleanEmptyObject = cleanEmptyObject;
|
|
82
82
|
var clearErrors = function (values, prevValues, errors, setErrors) {
|
|
83
83
|
if (!(0, isEmpty_1["default"])(errors) && !(0, isEqual_1["default"])(prevValues || {}, values)) {
|
|
84
|
-
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
84
|
+
var cleanedErrors_1 = (0, cloneDeep_1["default"])(errors);
|
|
85
|
+
var clearFieldErrors_1 = function (errorsPath, currentValue, currentPrevValue) {
|
|
86
|
+
if (!(0, isEqual_1["default"])(currentValue, currentPrevValue)) {
|
|
87
|
+
(0, unset_1["default"])(cleanedErrors_1, errorsPath);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
var iterateErrors_1 = function (currentErrors, currentValues, currentPrevValues, path) {
|
|
91
|
+
if (path === void 0) { path = ''; }
|
|
92
|
+
Object.keys(currentErrors).forEach(function (key) {
|
|
93
|
+
var errorValue = currentErrors[key];
|
|
94
|
+
var newPath = path
|
|
95
|
+
? [path, key].join('.')
|
|
96
|
+
: key;
|
|
97
|
+
if ((0, isObject_1["default"])(errorValue)
|
|
98
|
+
&& !(0, isArray_1["default"])(errorValue)) {
|
|
99
|
+
// Если текущее значение ошибки - объект (но не массив), рекурсивно обрабатываем его
|
|
100
|
+
iterateErrors_1(errorValue, (0, get_1["default"])(currentValues, key, {}), (0, get_1["default"])(currentPrevValues, key, {}), newPath);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// Если текущее значение ошибки не объект, проверяем изменение значения
|
|
104
|
+
clearFieldErrors_1(newPath, (0, get_1["default"])(currentValues, key), (0, get_1["default"])(currentPrevValues, key));
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
iterateErrors_1(errors, values, prevValues);
|
|
109
|
+
setErrors((0, isEmpty_1["default"])(cleanedErrors_1)
|
|
110
|
+
? null
|
|
111
|
+
: cleanedErrors_1);
|
|
90
112
|
}
|
|
91
113
|
};
|
|
92
114
|
exports.clearErrors = clearErrors;
|