content: /**
   * Copyright 2017 Red Hat Inc.
   *
   * Licensed under the Apache License, Version 2.0 (the "License"); you may
   * not use this file except in compliance with the License. You may obtain
   * a copy of the License at
   *
   *    http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
   * License for the specific language governing permissions and limitations
   * under the License.
   */
  
  import ClassNames from 'classnames';
  import { withFormsy } from 'formsy-react';
  import PropTypes from 'prop-types';
  import React from 'react';
  
  import InputDescription from './InputDescription';
  import InputErrorMessage from './InputErrorMessage';
  
  class HorizontalTextarea extends React.Component {
    changeValue(event) {
      this.props.setValue(event.target.value);
    }
  
    render() {
      let divClasses = ClassNames({
        'form-group': true,
        'has-error': this.props.showError(),
        // 'has-success': this.props.isValid(),
        required: this.props.isRequired()
      });
  
      return (
        <div className={divClasses}>
          <label
            htmlFor={this.props.name}
            className={`${this.props.labelColumnClasses} control-label`}
          >
            {this.props.title}
          </label>
          <div className={this.props.inputColumnClasses}>
            <textarea
              type={this.props.type}
              name={this.props.name}
              ref={this.props.name}
              id={this.props.name}
              rows={this.props.rows}
              className="form-control"
              onChange={this.changeValue.bind(this)}
              value={this.props.getValue() || ''}
              placeholder={this.props.placeholder}
              disabled={this.props.disabled}
            />
            <InputErrorMessage getErrorMessage={this.props.getErrorMessage} />
            <InputDescription description={this.props.description} />
          </div>
        </div>
      );
    }
  }
  HorizontalTextarea.propTypes = {
    description: PropTypes.string,
    disabled: PropTypes.bool,
    getErrorMessage: PropTypes.func,
    getValue: PropTypes.func,
    inputColumnClasses: PropTypes.string.isRequired,
    isRequired: PropTypes.func,
    isValid: PropTypes.func,
    labelColumnClasses: PropTypes.string.isRequired,
    name: PropTypes.string.isRequired,
    placeholder: PropTypes.string,
    rows: PropTypes.number,
    setValue: PropTypes.func,
    showError: PropTypes.func,
    title: PropTypes.string.isRequired,
    type: PropTypes.string
  };
  HorizontalTextarea.defaultProps = {
    inputColumnClasses: 'col-sm-10',
    labelColumnClasses: 'col-sm-2',
    rows: 3,
    type: 'text'
  };
  export default withFormsy(HorizontalTextarea);
  