UNPKG

yarfl

Version:

Yet Another Redux Forms Library

70 lines 3.95 kB
"use strict"; 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