UNPKG

touchstonejs-ui

Version:

React.js UI components for the TouchstoneJS platform http://touchstonejs.io

62 lines (53 loc) 1.68 kB
'use strict'; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var blacklist = require('blacklist'); var classnames = require('classnames'); var React = require('react/addons'); module.exports = React.createClass({ displayName: 'LabelTextarea', propTypes: { children: React.PropTypes.node, className: React.PropTypes.string, disabled: React.PropTypes.bool, first: React.PropTypes.bool, label: React.PropTypes.string, readOnly: React.PropTypes.bool, value: React.PropTypes.string }, getDefaultProps: function getDefaultProps() { return { rows: 3 }; }, render: function render() { var className = classnames(this.props.className, 'list-item', 'align-top', { 'is-first': this.props.first, 'u-selectable': this.props.disabled }); var props = blacklist(this.props, 'children', 'className', 'disabled', 'first', 'label', 'readOnly'); var renderInput = this.props.readOnly ? React.createElement( 'div', { className: 'field u-selectable' }, this.props.value ) : React.createElement('textarea', _extends({}, props, { className: 'field' })); return React.createElement( 'div', { className: className }, React.createElement( 'label', { className: 'item-inner' }, React.createElement( 'div', { className: 'field-label' }, this.props.label ), React.createElement( 'div', { className: 'field-control' }, renderInput, this.props.children ) ) ); } });