react-input
Version:
Easy forms for React
70 lines (56 loc) • 2.07 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _label = require('./label');
var _label2 = _interopRequireDefault(_label);
var _input = require('./input');
var _input2 = _interopRequireDefault(_input);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @class Field
* @description A field in the form.
*/
var Field = function Field(props) {
return _react2.default.createElement(
'div',
{
className: props.customClassName + ' field-' + props.type,
style: props.style,
id: props.id
},
props.renderBefore ? props.renderBefore() : null,
props.label ? _react2.default.createElement(_label2.default, {
name: props.name
}) : null,
props.input ? _react2.default.createElement(_input2.default, props) : null,
props.renderAfter ? props.renderAfter() : null
);
};
Field.propTypes = {
customClassName: _propTypes2.default.string.isRequired,
disabled: _propTypes2.default.bool,
id: _propTypes2.default.string.isRequired,
input: _propTypes2.default.bool,
label: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.bool]).isRequired,
name: _propTypes2.default.string,
onChange: _propTypes2.default.func.isRequired,
value: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),
placeholder: _propTypes2.default.string,
renderAfter: _propTypes2.default.func,
renderBefore: _propTypes2.default.func,
required: _propTypes2.default.bool,
type: _propTypes2.default.string
};
Field.defaultProps = {
customClassName: 'form-field', // What is the field className?
input: true, // Is there an input?
label: true, // Is there a label for the field?
required: true, // Is the input field required?
type: 'text' // What type of input field is it?
};
exports.default = Field;