GameInterface.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. 'use strict';
  2. const React = require('react/addons');
  3. const GameHeader = require('./GameHeader');
  4. const Immutable = require('immutable');
  5. const {Map} = Immutable;
  6. const Chess = require('chess.js');
  7. const GameInterface = React.createClass({
  8. propTypes: {
  9. io: React.PropTypes.object,
  10. params: React.PropTypes.array.isRequired
  11. },
  12. getInitialState() {
  13. return {
  14. modal: Map({open: false, message: ''}),
  15. soundsEnabled: false
  16. };
  17. },
  18. render() {
  19. return (
  20. <div>
  21. <GameHeader
  22. io={this.props.io}
  23. params={this.props.params}
  24. toggleModal={this._toggleModal} />
  25. <audio preload="auto" ref="moveSnd">
  26. <source src="/snd/move.mp3" />
  27. <source src="/snd/move.ogg" />
  28. </audio>
  29. <label id="sounds-label">
  30. <input type="checkbox"
  31. checked={this.state.soundsEnabled}
  32. onChange={this._toggleSounds} />
  33. <span> Enable sounds</span>
  34. </label>
  35. </div>
  36. );
  37. },
  38. _toggleModal(open, message) {
  39. this.setState({
  40. modal: Map({open: open, message: message})
  41. });
  42. },
  43. _toggleSounds() {
  44. this.setState({
  45. soundsEnabled: !this.state.soundsEnabled
  46. });
  47. }
  48. });
  49. module.exports = GameInterface;