content: import React from 'react';
  import Select from 'react-select';
  import fetch from 'isomorphic-fetch';
  
  
  const GithubUsers = React.createClass({
  	displayName: 'GithubUsers',
  	propTypes: {
  		label: React.PropTypes.string,
  	},
  	getInitialState () {
  		return {
  			multi: true
  		};
  	},
  	onChange (value) {
  		this.setState({
  			value: value,
  		});
  	},
  	switchToMulti () {
  		this.setState({
  			multi: true,
  			value: [this.state.value],
  		});
  	},
  	switchToSingle () {
  		this.setState({
  			multi: false,
  			value: this.state.value ? this.state.value[0] : null
  		});
  	},
  	getUsers (input) {
  		return fetch(`https://api.github.com/search/users?q=${input}`)
        .then((response) => response.json())
        .then((json) => {
          return { options: json.items };
        });
  	},
  	gotoUser (value, event) {
  		window.open(value.html_url);
  	},
  	render () {
  		return (
  			<div className="section">
  				<h3 className="section-heading">{this.props.label}</h3>
  				<Select.Async multi={this.state.multi} value={this.state.value} onChange={this.onChange} onValueClick={this.gotoUser} valueKey="id" labelKey="login" loadOptions={this.getUsers} minimumInput={1} backspaceRemoves={false} />
  				<div className="checkbox-list">
  					<label className="checkbox">
  						<input type="radio" className="checkbox-control" checked={this.state.multi} onChange={this.switchToMulti}/>
  						<span className="checkbox-label">Multiselect</span>
  					</label>
  					<label className="checkbox">
  						<input type="radio" className="checkbox-control" checked={!this.state.multi} onChange={this.switchToSingle}/>
  						<span className="checkbox-label">Single Value</span>
  					</label>
  				</div>
  				<div className="hint">This example uses fetch.js for showing Async options with Promises</div>
  			</div>
  		);
  	}
  });
  
  module.exports = GithubUsers;
  