UNPKG

redux-formo

Version:

An alternate forms framework for Redux+React.

69 lines (56 loc) 1.84 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.default = function (state, action) { switch (action.status) { case 'start': return startSubmitting(state); case 'finish': return finishSubmitting(state); case 'error': return errorSubmitting(state, action); default: return state; } }; /** * Start submitting a form * @param {object} state * @returns {{submitting: boolean}} */ function startSubmitting(state) { return _extends({}, state, { submitting: true }); } /** * Finish submitting a form * @param {object} state * @returns {{submitting: boolean}} */ function finishSubmitting(state) { return _extends({}, state, { submitting: false, submitted: true, error: undefined }); } /** * Error submitting a form * @param {object} state * @param {object} action * @param {string} action.payload The form error * @returns {{submitting: boolean, error: string}} */ function errorSubmitting(state, action) { return _extends({}, state, { submitting: false, error: (action.payload && action.payload.message ? action.payload.message : String(action.payload)) || 'An unknown error occurred whilst submitting' }); } /** * Submit the values of a form * @param {object} state The form state * @param {object} action * @param {string} action.type * @param {boolean} action.status * @param {string} [action.payload] * @returns {{submitting: boolean, [submitted]: boolean, [error]: string}} */ //# sourceMappingURL=submit.js.map