UNPKG

react-minimalistic-use-form

Version:

Minimalistic react hook for handling forms without much pain.

82 lines 3.51 kB
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); }; import { htmlInputTypes, STATE_ACTIONS } from './enums'; var getInitialErrorsState = function (initialValues) { return Object.keys(initialValues).reduce(function (acc, fieldName) { acc[fieldName] = {}; return acc; }, {}); }; export var getInitialState = function (initialValues) { if (initialValues === void 0) { initialValues = {}; } return ({ values: initialValues, initialValues: initialValues, overriddenInitialValues: {}, errors: {}, initialIsFormValid: false, isFormValid: false, isSubmitting: false, }); }; // The Type Guard Functions function isSetFieldValueAction(action) { return action.type === STATE_ACTIONS.SET_FIELD_VALUE; } function isSetIsFormValidAction(action) { return action.type === STATE_ACTIONS.SET_IS_FORM_VALID; } function isSetFieldErrorsAction(action) { return action.type === STATE_ACTIONS.SET_FIELD_ERRORS; } function isResetFormAction(action) { return action.type === STATE_ACTIONS.RESET_FORM; } function isSetOverriddenInitialValuesAction(action) { return action.type === STATE_ACTIONS.SET_OVERRIDDEN_INITIAL_VALUES; } function isSetIsSubmittingAction(action) { return action.type === STATE_ACTIONS.SET_IS_SUBMITTING; } function isSetErrorsAction(action) { return action.type === STATE_ACTIONS.SET_ERRORS; } export var reducer = function (state, action) { var _a, _b; if (isSetFieldValueAction(action)) { var _c = action.payload, name_1 = _c.name, elementType = _c.type, checked = _c.checked, value = _c.value; return __assign(__assign({}, state), { values: __assign(__assign({}, state.values), (_a = {}, _a[name_1] = elementType === htmlInputTypes.checkbox ? checked : value, _a)) }); } if (isSetIsFormValidAction(action)) { var isFormValid = action.payload.isFormValid; return __assign(__assign({}, state), { isFormValid: isFormValid }); } if (isSetFieldErrorsAction(action)) { var _d = action.payload, name_2 = _d.name, errors = _d.errors; return __assign(__assign({}, state), { errors: __assign(__assign({}, state.errors), (_b = {}, _b[name_2] = errors, _b)) }); } if (isSetErrorsAction(action)) { var errors = action.payload.errors; return __assign(__assign({}, state), { errors: errors }); } if (isResetFormAction(action)) { return __assign(__assign({}, state), { values: state.overriddenInitialValues, isFormValid: state.initialIsFormValid, errors: getInitialErrorsState(state.overriddenInitialValues) }); } if (isSetOverriddenInitialValuesAction(action)) { var overriddenInitialValues = action.payload.overriddenInitialValues; return __assign(__assign({}, state), { values: overriddenInitialValues, overriddenInitialValues: overriddenInitialValues, errors: getInitialErrorsState(overriddenInitialValues) }); } if (isSetIsSubmittingAction(action)) { var isSubmitting = action.payload.isSubmitting; return __assign(__assign({}, state), { isSubmitting: isSubmitting }); } return state; }; //# sourceMappingURL=state.js.map