doiforms
Version:
A generalized tool for building formatted forms on multiple platforms
27 lines • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var __1 = require("..");
var ResetActionHandler_1 = require("../Utilities/ResetActionHandler");
var FormUpdate_1 = require("./FormUpdate");
var outputErrorState_1 = require("./outputErrorState");
function FormReducer(state, action) {
switch (action.Action) {
case __1.EnumFormAction.NoOp: // do nothing!
break;
case __1.EnumFormAction.Submit:
return {
Submitted: true,
};
case __1.EnumFormAction.Reset:
return ResetActionHandler_1.ResetActionHandler((state.FieldStates || []).map(function (fieldState) { return fieldState.Field; }));
case __1.EnumFormAction.HandleError:
return outputErrorState_1.outputErrorState(action.Update);
case __1.EnumFormAction.Update:
return action.Update && action.Update.FieldStates && action.Update.FieldStates.length > 0
? FormUpdate_1.FormUpdate((state.FieldStates || []), action.Update.FieldStates)
: outputErrorState_1.outputErrorState(action.Update);
}
return {};
}
exports.FormReducer = FormReducer;
//# sourceMappingURL=FormReducer.js.map