X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=f401c6ef28ea1e8db393516285b6d28dc24be6a8;hb=1112f1fdd39a4599cebc4b0b03bee1d28f1236ee;hp=9bb913c4809c6782ac9a5f218e511d62338f6b43;hpb=6f2f94374f1e73c375edf732d9425e575e81fff7;p=vchess.git diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index 9bb913c4..f401c6ef 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -80,6 +80,7 @@ main option(value="") option( v-for="p in Object.values(people)" + v-if="!!p.name" :value="p.name" ) | {{ p.name }} @@ -266,9 +267,14 @@ export default { }); if (!this.newchallenge.V && this.newchallenge.vid > 0) this.loadNewchallVariant(); + }, + $route: function(to, from) { + if (to.path != "/") this.cleanBeforeDestroy(); } }, created: function() { + document.addEventListener('visibilitychange', this.visibilityChange); + window.addEventListener("beforeunload", this.cleanBeforeDestroy); if (this.st.variants.length > 0 && this.newchallenge.vid > 0) this.loadNewchallVariant(); const my = this.st.user; @@ -303,7 +309,6 @@ export default { this.conn.addEventListener("close", this.socketCloseListener); }, mounted: function() { - document.addEventListener('visibilitychange', this.visibilityChange); ["peopleWrap", "infoDiv", "newgameDiv"].forEach(eltName => { document.getElementById(eltName) .addEventListener("click", processModalClick); @@ -387,10 +392,14 @@ export default { ); }, beforeDestroy: function() { - document.removeEventListener('visibilitychange', this.visibilityChange); - this.send("disconnect"); + this.cleanBeforeDestroy(); }, methods: { + cleanBeforeDestroy: function() { + document.removeEventListener('visibilitychange', this.visibilityChange); + window.removeEventListener("beforeunload", this.cleanBeforeDestroy); + this.send("disconnect"); + }, getRandomnessClass: function(pc) { return { ["random-" + pc.randomness]: true