SendMoneyDialog.jsx 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import React from 'react';
  2. import Dialog from "./components/Dialog";
  3. import {gameService} from "./services/GameService";
  4. import Token from "./Token";
  5. import Note from "./Note";
  6. export default class SendMoneyDialog extends React.Component {
  7. state = {
  8. messages: '0'
  9. };
  10. selectPlayer = (player) => {
  11. this.setState({dest: player.id})
  12. }
  13. sendMoney = () => {
  14. if(this.state.dest) {
  15. gameService.sendMoney(this.props.player.id, this.state.dest, this.state.messages);
  16. this.props.dismiss();
  17. }
  18. }
  19. handleChange(evt) {
  20. const m = (evt.target.validity.valid) ? evt.target.value : this.state.messages;
  21. this.setState({ messages: m });
  22. }
  23. render() {
  24. const player = this.props.player;
  25. if (player) {
  26. const availablePlayers = this.props.game.players.filter(p => p.id !== player.id);
  27. const actions = [
  28. {
  29. name: 'Close',
  30. click: () => this.props.dismiss(),
  31. },
  32. {
  33. name: 'Send $' + this.state.messages,
  34. click: () => this.sendMoney(),
  35. },
  36. ];
  37. return (<Dialog actions={actions}>
  38. <div className="send-money-dialog">
  39. <h1>Send Money</h1>
  40. <div className="select-player">
  41. <h3>Select Player</h3>
  42. {availablePlayers.map(p => <div key={p.id} onClick={() => this.selectPlayer(p)}
  43. className="player">
  44. <Token token={p.token} selected={this.state.dest === p.id}/>
  45. {p.name}
  46. </div>)}
  47. </div>
  48. <div className="select-notes">
  49. <h3>Select notes</h3>
  50. <div className="notes">
  51. <input value={this.state.messages} onChange={event => this.setState({messages: event.target.value.replace(/\D/,'')})}/>
  52. </div>
  53. </div>
  54. </div>
  55. </Dialog>)
  56. } else {
  57. return (<div></div>);
  58. }
  59. }
  60. }