UNPKG

react-form-data

Version:

React mixin to get form data in nice javascript object format.

73 lines (67 loc) 1.67 kB
// Generated by CoffeeScript 1.12.6 var getValue, isCheckbox, isMultiChoice, toggleValue; isCheckbox = function(el) { return el.getAttribute('type') === 'checkbox'; }; isMultiChoice = function(checkbox) { return checkbox.getAttribute('value') != null; }; toggleValue = function(arr, val) { var valueIndex; valueIndex = arr.indexOf(val); if (valueIndex !== -1) { arr.splice(valueIndex, 1); } else { arr.push(val); } return arr; }; getValue = function(el, currentValue) { if (!isCheckbox(el)) { return el.value; } else { if (isMultiChoice(el)) { if (currentValue == null) { currentValue = []; } return toggleValue(currentValue, el.value); } else { return el.checked; } } }; module.exports = { UNSAFE_componentWillMount: function() { if (this.getInitialFormData != null) { return this.formData = this.getInitialFormData(); } else { return this.formData = {}; } }, updateFormData: function(e) { var key, newValue, t; t = e.target; key = t.getAttribute('name'); if (key != null) { newValue = getValue(t, this.formData[key]); this.setFormData(key, newValue); if (this.formDataDidChange != null) { return this.formDataDidChange(); } } }, setFormData: function(key, value) { return this.formData[key] = value; }, clearFormData: function() { return this.formData = {}; }, resetFormData: function(obj) { this.clearFormData(); return Object.keys(obj).forEach((function(_this) { return function(key) { return _this.formData[key] = obj[key]; }; })(this)); } };