@shopify/react-form
Version:
Manage react forms tersely and safely-typed with no magic using React hooks.
27 lines (26 loc) • 806 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = require("react");
var utilities_1 = require("../utilities");
function useDirty(fieldBag) {
var fields = Object.values(fieldBag);
return react_1.useMemo(function () {
return fields.some(function (item) {
if (utilities_1.isField(item)) {
return item.dirty;
}
if (Array.isArray(item)) {
return item.some(fieldsDirty);
}
return fieldsDirty(item);
});
}, tslib_1.__spread(fields));
}
exports.useDirty = useDirty;
function fieldsDirty(fields) {
return Object.keys(fields).some(function (key) {
var field = fields[key];
return field.dirty;
});
}