game-creation-div-page.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import * as DivCommon from './div-page-common';
  2. export default function GameCreationDivPage(element, listener) {
  3. const id='game-creation';
  4. const className=GameCreationDivPage.name;
  5. let div = element.getChildByID(id);
  6. let divSelectDeckMode = element.getChildByID("deck-mode-select");
  7. let connectButton = element.getChildByName('loginButton');
  8. let username = element.getChildByName('username');
  9. let connectionStatus = element.getChildByID('connectionStatus');
  10. let onlineGame = element.getChildByName('onlineGame');
  11. let createGameButton = element.getChildByName('validGameCreation');
  12. let deckModeSelected = null;
  13. let advancedOptions = [];
  14. let clickEventListener = function(event) {
  15. let eventName = event.target.name;
  16. switch (eventName) {
  17. case "backToPrev":
  18. listener.onGoPreviousPage(gameCreationDivPage);
  19. break;
  20. case "validGameCreation":
  21. console.log(deckModeSelected);
  22. console.log(advancedOptions);
  23. listener.onValidGameCreation(deckModeSelected, advancedOptions);
  24. break;
  25. case "discard":
  26. case "popularity":
  27. if(event.target.checked){
  28. advancedOptions.push(eventName);
  29. } else {
  30. let index = advancedOptions.indexOf(eventName);
  31. if (index !== -1){
  32. advancedOptions.splice(index, 1);
  33. }
  34. }
  35. break;
  36. default:
  37. break;
  38. }
  39. };
  40. let changeDeckEventListener = function(event) {
  41. let eventValue = event.target.value;
  42. if (eventValue !== 0) {
  43. createGameButton.disabled = false;
  44. deckModeSelected = event.target.value;
  45. } else {
  46. createGameButton.disabled = true;
  47. deckModeSelected = event.target.value;
  48. }
  49. };
  50. div.addEventListener('click',clickEventListener);
  51. divSelectDeckMode.addEventListener('change',changeDeckEventListener);
  52. let onShow = function() {
  53. };
  54. let onHide = function() {
  55. };
  56. let gameCreationDivPage = {
  57. className,
  58. div,
  59. onShow,
  60. onHide
  61. };
  62. return Object.assign(
  63. gameCreationDivPage,
  64. DivCommon.canShow(gameCreationDivPage),
  65. DivCommon.canHide(gameCreationDivPage)
  66. );
  67. }