diff options
| Commit | a28a5052313f0921865d0eb2632fb41c16a60367 (patch) | |
|---|---|---|
| Author | 2021-02-28 14:24:18 +0200 | |
| Committer | 2021-02-28 14:24:18 +0200 | |
| Files | a39c5c61b1ee6db75872fde46bb364c1e968ecba /scripts/core | |
| pusg-front-end-main.tar pusg-front-end-main.tar.gz pusg-front-end-main.zip | ||
| Parent | a9863b87c9ccd4d10fdcd6849436d6a50fae243e (diff) | |
* Added Welcome Message
* Added Refresh Login when returning from Game
* Killed Home Session when starting new game
* Moved functionality from Socket Service to respective classes (refactoring)
1 files changed, 49 insertions, 0 deletions
| -rw-r--r-- | scripts/core/home.js | 49 |
diff --git a/scripts/core/home.js b/scripts/core/home.js index b9c4ea8..df46b87 100644 --- a/scripts/core/home.js +++ b/scripts/core/home.js @@ -34,6 +34,7 @@ const supportedCommands = { class Home { constructor() { this.commands = supportedCommands; + this.cachedMessages = []; } isCommand(command) { @@ -44,6 +45,44 @@ class Home { this.commands[command].invoke(); } + initEvents() { + app.eventService.addEventHandler('LoggedIn', () => { + app.htmlService.clearElement('.history-messages'); + }); + + app.eventService.addEventHandler('OnLoggedIn', (users) => { + users.forEach(user => { + if(!app.htmlService.getElement(`#${user}`)) { + const userNode = app.htmlService + .getElementFromTemplate('user', { + user: user, + }); + + app.htmlService.attachElement(app.htmlService.createElement(userNode), '.participants'); + } + }); + }); + + app.eventService.addEventHandler('OnLoggedOut', (users) => { + users.forEach(user => { + app.htmlService.getElement(`#${user}`).remove(); + }); + }); + + app.eventService.addEventHandler('OnReceiveMessage', ([user, message]) => { + const messageNode = app.htmlService + .getElementFromTemplate('message', { + user: user, + message: message + }); + + this.cachedMessages.push(messageNode); + + app.htmlService.attachElement(app.htmlService.createElement(messageNode) + , '.history-messages'); + }); + } + init() { app.htmlService.addEventHandler('#main-chat-input', 'keyup', (e) => { if (e.key === 'Enter' || e.keyCode === 13) { @@ -64,6 +103,16 @@ class Home { } } }); + + if(app.userService.isLoggedIn()) { + app.htmlService.clearElement('.history-messages'); + this.cachedMessages.forEach(cachedMessage => { + app.htmlService.attachElement(app.htmlService.createElement(cachedMessage) + , '.history-messages'); + }); + } + + this.initEvents(); } } |