yarfl
Version:
Yet Another Redux Forms Library
70 lines • 3.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var creatorFactory_1 = require("../actions/creatorFactory");
var types_1 = require("../actions/types");
var checkers_1 = require("../helpers/checkers");
var utils_1 = require("../helpers/utils");
var fieldReducer_1 = require("./fieldReducer");
var formReducer_1 = require("./formReducer");
exports.createNodeReducer = function (config) {
return function (state, action) {
switch (action.type) {
case types_1.default.NODE_UPDATE:
return nodeUpdateReducer(config)(state, action);
case types_1.default.NODE_CLEAR:
return nodeClearReducer(config)(state, action);
case types_1.default.NODE_RESET:
return nodeResetReducer(config)(state, action);
case types_1.default.NODE_SHOW_ERRORS:
return nodeShowErrorsReducer(config)(state, action);
case types_1.default.NODE_VALIDATE:
return nodeValidateReducer(config)(state, action);
default:
return state;
}
};
};
var nodeUpdateReducer = function (config) { return function (state, action) {
var key = checkers_1.checkActionForKey(action).key;
var value = checkers_1.checkActionForObjectValue(action).value;
var updateObject = utils_1.setInWithPath({}, key.split('.'), value);
var updateAction = creatorFactory_1.default(config).updateForm(updateObject);
return formReducer_1.formUpdateReducer(config)(state, updateAction);
}; };
var nodeClearReducer = function (config) { return function (state, action) {
var key = checkers_1.checkActionForKey(action).key;
var keys = Object.keys(utils_1.extract(state.fields, 'key', { flatten: true }));
var nodeKeys = keys.filter(function (k) { return k.startsWith(key); });
var clearActions = nodeKeys.map(creatorFactory_1.default(config).clearField);
return clearActions.reduce(function (updatedState, fieldAction) {
return fieldReducer_1.createClearFieldReducer()(updatedState, fieldAction);
}, state);
}; };
var nodeResetReducer = function (config) { return function (state, action) {
var key = checkers_1.checkActionForKey(action).key;
var keys = Object.keys(utils_1.extract(state.fields, 'key', { flatten: true }));
var nodeKeys = keys.filter(function (k) { return k.startsWith(key); });
var resetActions = nodeKeys.map(creatorFactory_1.default(config).resetField);
return resetActions.reduce(function (updatedState, fieldAction) {
return fieldReducer_1.createResetFieldReducer()(updatedState, fieldAction);
}, state);
}; };
var nodeShowErrorsReducer = function (config) { return function (state, action) {
var _a = checkers_1.checkActionForKey(action), key = _a.key, showErrors = _a.showErrors;
var keys = Object.keys(utils_1.extract(state.fields, 'key', { flatten: true }));
var nodeKeys = keys.filter(function (k) { return k.startsWith(key); });
var showErrorActions = nodeKeys.map(function (k) { return creatorFactory_1.default(config).showFieldErrors(k, showErrors); });
return showErrorActions.reduce(function (updatedState, fieldAction) {
return fieldReducer_1.createShowFieldErrorsReducer()(updatedState, fieldAction);
}, state);
}; };
var nodeValidateReducer = function (config) { return function (state, action) {
var key = action.key, validator = action.validator;
var keys = Object.keys(utils_1.extract(state.fields, 'key', { flatten: true }));
var nodeKeys = keys.filter(function (k) { return k.startsWith(key); });
var resetActions = nodeKeys.map(function (k) { return creatorFactory_1.default(config).validateField(k, validator); });
return resetActions.reduce(function (updatedState, fieldAction) {
return fieldReducer_1.createValidateFieldReducer()(updatedState, fieldAction);
}, state);
}; };
//# sourceMappingURL=nodeReducer.js.map