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;
