From: Benjamin Auder <benjamin.auder@somewhere>
Date: Wed, 3 Jul 2019 15:21:55 +0000 (+0200)
Subject: Fix challenge persistence issue
X-Git-Url: https://git.auder.net/doc/%7B%7B%20asset%28%27mixstore/current/img/common.css?a=commitdiff_plain;h=f6f2bef10910ddb3430a40f4ab393b225250234a;p=vchess.git

Fix challenge persistence issue
---

diff --git a/client/src/store.js b/client/src/store.js
index 055fff9d..070b22cc 100644
--- a/client/src/store.js
+++ b/client/src/store.js
@@ -50,7 +50,7 @@ export const store =
     };
     const socketCloseListener = () => {
       this.state.conn = new WebSocket(params.socketUrl + "/?sid=" + mysid);
-    }
+    };
     this.state.conn.onclose = socketCloseListener;
     const supportedLangs = ["en","es","fr"];
     this.state.lang = localStorage["lang"] ||
diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue
index c7dc588b..6a576220 100644
--- a/client/src/views/Hall.vue
+++ b/client/src/views/Hall.vue
@@ -113,6 +113,15 @@ export default {
   created: function() {
     // Always add myself to players' list
     this.people.push(this.st.user);
+    // Retrieve live challenge (not older than 30 minute) if any:
+    const chall = JSON.parse(localStorage.getItem("challenge") || "false");
+    if (!!chall)
+    {
+      if ((Date.now() - chall.added)/1000 <= 30*60)
+        this.challenges.push(chall);
+      else
+        localStorage.removeItem("challenge");
+    }
     if (this.st.user.id > 0)
     {
     // Ask server for current corr games (all but mines)
@@ -407,6 +416,7 @@ export default {
         chall.vname = vname;
         chall.from = this.st.user;
         this.challenges.push(chall);
+        localStorage.setItem("challenge", JSON.stringify(chall));
         document.getElementById("modalNewgame").checked = false;
       };
       const cIdx = this.challenges.findIndex(