react-form-in-second
Version:
make form easily, no more painful
65 lines (49 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var Input = function Input(props) {
var fields = ['name', 'value', 'type', 'disabled', 'placeholder', 'required'];
var onChangeVal = function onChangeVal(evt) {
var _evt$target = evt.target,
name = _evt$target.name,
value = _evt$target.value,
checked = _evt$target.checked,
onChange = props.onChange,
type = props.type;
if (typeof onChange === 'function') onChange(name, type === 'checkbox' ? checked : value);
};
var attrs = {
className: 'form-control ' + (props.inputClassName || ' '),
onChange: onChangeVal
};
fields.forEach(function (field) {
attrs[field] = props[field];
});
if (!attrs.value) attrs.value = '';
if (props.type === 'textarea') return React.createElement('textarea', attrs);
return React.createElement('input', attrs);
};
var InputWrapper = function InputWrapper(props) {
var className = props.className,
label = props.label,
error = props.error,
children = props.children;
return React.createElement(
'div',
{ className: 'form-group ' + (className || '') },
React.createElement(
'label',
{ className: 'form-lb' },
label
),
React.createElement(Input, props),
children,
error && React.createElement(
'span',
{ className: 'error' },
error
)
);
};
exports.default = InputWrapper;