Fixed corr challenge refused bug
[vchess.git] / client / src / views / Hall.vue
index 2141cf9..c943ff5 100644 (file)
@@ -254,7 +254,7 @@ export default {
       let names = {};
       response.challenges.forEach(c => {
         if (c.uid != this.st.user.id) names[c.uid] = "";
-        else if (!!c.target && c.target != this.st.user.id)
+        else if (c.target && c.target != this.st.user.id)
           names[c.target] = "";
       });
       const addChallenges = () => {
@@ -407,6 +407,15 @@ export default {
     processChat: function(chat) {
       this.send("newchat", { data: chat });
     },
+    getOppsid: function(c) {
+      let oppsid = c.from.sid; //may not be defined if corr + offline opp
+      if (!oppsid) {
+        oppsid = Object.keys(this.people).find(
+          sid => this.people[sid].id == c.from.id
+        );
+      }
+      return oppsid;
+    },
     // Messaging center:
     socketMessageListener: function(msg) {
       if (!this.conn) return;
@@ -797,7 +806,9 @@ export default {
         };
         this.launchGame(c);
       } else {
-        this.send("refusechallenge", { data: c.id, target: c.from.sid });
+        const oppsid = this.getOppsid(c);
+        if (oppsid)
+          this.send("refusechallenge", { data: c.id, target: oppsid });
       }
       this.send("deletechallenge", { data: c.id });
     },
@@ -857,13 +868,8 @@ export default {
         vid: c.vid,
         cadence: c.cadence
       };
-      let oppsid = c.from.sid; //may not be defined if corr + offline opp
-      if (!oppsid) {
-        oppsid = Object.keys(this.people).find(
-          sid => this.people[sid].id == c.from.id
-        );
-      }
       const notifyNewgame = () => {
+        const oppsid = this.getOppsid(c);
         if (oppsid)
           //opponent is online
           this.send("startgame", { data: gameInfo, target: oppsid });