UNPKG

elemental

Version:
27 lines (24 loc) 821 B
'use strict'; var blacklist = require('blacklist'); var classnames = require('classnames'); var React = require('react'); module.exports = React.createClass({ displayName: 'Form', propTypes: { children: React.PropTypes.node.isRequired, className: React.PropTypes.string, component: React.PropTypes.oneOfType([React.PropTypes.element, React.PropTypes.string]), type: React.PropTypes.oneOf(['basic', 'horizontal', 'inline']) }, getDefaultProps: function getDefaultProps() { return { component: 'form', type: 'basic' }; }, render: function render() { var props = blacklist(this.props, 'children', 'type', 'component'); props.className = classnames('Form', 'Form--' + this.props.type, this.props.className); return React.createElement(this.props.component, props, this.props.children); } });