You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.3 KiB

  1. import IconButton from './icon_button';
  2. import PureRenderMixin from 'react-addons-pure-render-mixin';
  3. const FollowForm = React.createClass({
  4. propTypes: {
  5. text: React.PropTypes.string.isRequired,
  6. is_submitting: React.PropTypes.bool,
  7. onChange: React.PropTypes.func.isRequired,
  8. onSubmit: React.PropTypes.func.isRequired
  9. },
  10. mixins: [PureRenderMixin],
  11. handleChange (e) {
  12. this.props.onChange(e.target.value);
  13. },
  14. handleKeyUp (e) {
  15. if (e.keyCode === 13) {
  16. this.props.onSubmit();
  17. }
  18. },
  19. handleSubmit () {
  20. this.props.onSubmit();
  21. },
  22. render () {
  23. return (
  24. <div style={{ display: 'flex', lineHeight: '20px', padding: '10px', background: '#373b4a' }}>
  25. <input type='text' disabled={this.props.is_submitting} placeholder='username@domain' value={this.props.text} onKeyUp={this.handleKeyUp} onChange={this.handleChange} className='follow-form__input' style={{ flex: '1 1 auto', boxSizing: 'border-box', display: 'block', border: 'none', padding: '10px', fontFamily: 'Roboto', color: '#282c37', fontSize: '14px', margin: '0' }} />
  26. <div style={{ padding: '10px', paddingRight: '0' }}><IconButton title='Follow' size={20} icon='user-plus' onClick={this.handleSubmit} disabled={this.props.is_submitting} /></div>
  27. </div>
  28. );
  29. }
  30. });
  31. export default FollowForm;