import React from 'react';
import ExpandingTextArea from 'components/ExpandingTextArea';

class PublishMetadataInputs extends React.Component {
  constructor (props) {
    super(props);
    this.toggleShowInputs = this.toggleShowInputs.bind(this);
    this.handleInput = this.handleInput.bind(this);
    this.handleSelect = this.handleSelect.bind(this);
  }
  toggleShowInputs () {
    this.props.onToggleMetadataInputs(!this.props.showMetadataInputs);
  }
  handleInput (event) {
    const target = event.target;
    const value = target.type === 'checkbox' ? target.checked : target.value;
    const name = target.name;
    this.props.onMetadataChange(name, value);
  }
  handleSelect (event) {
    const name = event.target.name;
    const selectedOption = event.target.selectedOptions[0].value;
    this.props.onMetadataChange(name, selectedOption);
  }
  render () {
    return (
      <div id='publish-details' className='row row--padded row--no-top row--wide'>
        {this.props.showMetadataInputs && (
          <div>
            <div className='row row--no-top'>
              <div className='column column--3 column--med-10 align-content-top'>
                <label htmlFor='publish-license' className='label'>Description:</label>
              </div><div className='column column--7 column--sml-10'>
                <ExpandingTextArea
                  id='publish-description'
                  className='textarea textarea--primary textarea--full-width'
                  rows={1}
                  maxLength={2000}
                  style={{ maxHeight: 200 }}
                  name='description'
                  placeholder='Optional description'
                  value={this.props.description}
                  onChange={this.handleInput} />
              </div>
            </div>

            <div className='row row--no-top'>
              <div className='column column--3 column--med-10'>
                <label htmlFor='publish-license' className='label'>License:</label>
              </div><div className='column column--7 column--sml-10'>
                <select type='text' name='license' id='publish-license' className='select select--primary' onChange={this.handleSelect}>
                  <option value=' '>Unspecified</option>
                  <option value='Public Domain'>Public Domain</option>
                  <option value='Creative Commons'>Creative Commons</option>
                </select>
              </div>
            </div>

            <div className='row row--no-top'>
              <div className='column column--3'>
                <label htmlFor='publish-nsfw' className='label'>Mature:</label>
              </div><div className='column column--7'>
                <input className='input-checkbox' type='checkbox' id='publish-nsfw' name='nsfw' value={this.props.nsfw} onChange={this.handleInput} />
              </div>
            </div>
          </div>
        )}
        <button className='button--secondary' onClick={this.toggleShowInputs}>{this.props.showMetadataInputs ? 'less' : 'more'}</button>
      </div>
    );
  }
}

export default PublishMetadataInputs;