UNPKG

react-application-core

Version:

A react-based application core for the business applications.

94 lines 4.46 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.formReducer = void 0; var R = require("ramda"); var util_1 = require("../../util"); var definition_1 = require("../../definition"); var action_1 = require("../../action"); /** * @stable [24.04.2020] * @param changes * @param defaultChanges * @returns {boolean} */ var isDirty = function (changes, defaultChanges) { return !R.isEmpty(changes) || !R.isEmpty(defaultChanges); }; /** * @reducer * @stable [08.05.2020] * * @param {IReduxFormEntity} state * @param {IEffectsAction} action * @returns {IReduxFormEntity} */ exports.formReducer = function (state, action) { if (state === void 0) { state = definition_1.INITIAL_REDUX_FORM_ENTITY; } var section = util_1.Selectors.sectionFromAction(action); var actionType = action.type; var actionData = action.data; var defaultChanges; switch (actionType) { case action_1.FormActionBuilder.buildDestroyActionType(section): /** * @stable [24.04.2020] */ return __assign({}, definition_1.INITIAL_REDUX_FORM_ENTITY); case action_1.FormActionBuilder.buildClearActionType(section): case action_1.FormActionBuilder.buildChangeActionType(section): /** * @stable [24.04.2020] */ var changes = util_1.FilterUtils.defValuesFilter(__assign(__assign({}, state.changes), actionData.fields)); return __assign(__assign({}, state), { changes: changes, dirty: isDirty(changes, state.defaultChanges), error: null, touched: true }); case action_1.FormActionBuilder.buildDefaultChangeActionType(section): /** * @stable [23.04.2020] */ defaultChanges = util_1.FilterUtils.defValuesFilter(__assign(__assign({}, state.defaultChanges), actionData.fields)); return __assign(__assign({}, state), { defaultChanges: defaultChanges, dirty: isDirty(state.changes, defaultChanges) }); case action_1.FormActionBuilder.buildValidActionType(section): /** * @stable [23.04.2020] */ return __assign(__assign({}, state), { validateAfterReset: false, valid: actionData.valid }); case action_1.FormActionBuilder.buildActiveValueActionType(section): /** * @stable [24.04.2020] */ return __assign(__assign({}, state), { activeValue: actionData.payload }); case action_1.FormActionBuilder.buildProgressActionType(section): case action_1.FormActionBuilder.buildSubmitActionType(section): /** * @stable [24.04.2020] */ return __assign(__assign({}, state), { error: null, progress: true }); case action_1.FormActionBuilder.buildSubmitErrorActionType(section): return __assign(__assign({}, state), { progress: false, error: util_1.asErrorMessage(action.error).message }); case action_1.FormActionBuilder.buildSubmitFinishActionType(section): /** * @stable [24.04.2020] */ return __assign(__assign({}, state), { progress: false }); case action_1.FormActionBuilder.buildResetActionType(section): case action_1.FormActionBuilder.buildSubmitDoneActionType(section): /** * @stable [23.04.2020] */ defaultChanges = state.defaultChanges; var activeValue = state.activeValue; return __assign(__assign(__assign({}, definition_1.INITIAL_REDUX_FORM_ENTITY), (actionType === action_1.FormActionBuilder.buildResetActionType(section) ? __assign({ defaultChanges: defaultChanges, validateAfterReset: true }, (R.isEmpty(defaultChanges) ? {} : { dirty: true })) : {})), (util_1.TypeUtils.isDef(activeValue) ? { activeValue: activeValue } : {})); } return state; }; //# sourceMappingURL=form.reducer.js.map