CreateGameForm.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. 'use strict';
  2. const React = require('react/addons');
  3. const CreateGameForm = React.createClass({
  4. propTypes: {
  5. link: React.PropTypes.string.isRequired,
  6. time: React.PropTypes.string.isRequired,
  7. inc: React.PropTypes.string.isRequired,
  8. onChangeForm: React.PropTypes.func.isRequired,
  9. createGame: React.PropTypes.func.isRequired
  10. },
  11. mixins: [React.addons.PureRenderMixin],
  12. render() {
  13. return (
  14. <form onSubmit={this.props.createGame}>
  15. <fieldset>
  16. <label>
  17. <span>Minutes per side: </span>
  18. <input
  19. type="number"
  20. name="time"
  21. value={this.props.time}
  22. onChange={this.props.onChangeForm}
  23. min="1"
  24. max="50"
  25. required />
  26. </label>
  27. <label style={{paddingLeft: '2em'}}>
  28. <span>Increment in seconds: </span>
  29. <input
  30. type="number"
  31. name="inc"
  32. value={this.props.inc}
  33. onChange={this.props.onChangeForm}
  34. min="0"
  35. max="50"
  36. required />
  37. </label>
  38. </fieldset>
  39. <input
  40. id="game-link"
  41. type="text"
  42. value={this.props.link || 'Game link will be generated here.'}
  43. onClick={e => e.target.select()}
  44. readOnly />
  45. <button type="submit" className="btn">Play</button>
  46. </form>
  47. );
  48. }
  49. });
  50. module.exports = CreateGameForm;