'update'
[vchess.git] / client / src / views / Hall.vue
index 95a9e95..ae45e65 100644 (file)
@@ -178,6 +178,7 @@ export default {
       // ==> Moves sent by connected remote player(s) if live game
       
 // TODO: this doesn't work: choose a SID at random
+      // --> do we have players' names ?
 
       let url = "/" + g.id;
       if (g.type == "live")
@@ -361,6 +362,7 @@ export default {
         }
         case "deletechallenge":
         {
+          // NOTE: the challenge may be already removed
           ArrayFun.remove(this.challenges, c => c.id == data.cid);
           break;
         }
@@ -482,7 +484,7 @@ export default {
       else //accept (or refuse) a challenge
       {
         c.accepted = true;
-        if (!!c.to[0])
+        if (!!c.to)
         {
           // TODO: if special FEN, show diagram after loading variant
           c.accepted = confirm("Accept challenge?");
@@ -490,17 +492,22 @@ export default {
         this.st.conn.send(JSON.stringify({
           code: (c.accepted ? "accept" : "refuse") + "challenge",
           cid: c.id, target: c.from.sid}));
-        if (c.type == "corr" && c.accepted)
+        if (c.accepted)
         {
-          ajax(
-            "/challenges",
-            "PUT",
-            {id: this.challenges[cIdx].id}
-          );
+          if (c.type == "corr")
+          {
+            ajax(
+              "/challenges",
+              "PUT",
+              {id: this.challenges[cIdx].id}
+            );
+          }
         }
-        if (!c.accepted)
+        else
         {
           ArrayFun.remove(this.challenges, ch => ch.id == c.id);
+          if (!c.to) //TODO: send to everyone except me and opponent ?
+            this.sendSomethingTo("", "deletechallenge", {cid: this.challenges[cIdx].id});
           if (c.type == "corr")
           {
             ajax(