Fixes about lastate
[vchess.git] / client / src / components / BaseGame.vue
index f64c68f..aa606aa 100644 (file)
@@ -222,6 +222,7 @@ export default {
       const L = this.moves.length;
       this.cursor = L-1;
       this.lastMove = (L > 0 ? this.moves[L-1]  : null);
+      this.incheck = [];
     },
     analyzePosition: function() {
       const newUrl = "/analyze/" + this.game.vname +
@@ -272,12 +273,18 @@ export default {
     },
     animateMove: function(move, callback) {
       let startSquare = document.getElementById(getSquareId(move.start));
+      // TODO: error "flush nextTick callbacks" when observer reloads page:
+      // this late check is not a fix!
+      if (!startSquare)
+        return;
       let endSquare = document.getElementById(getSquareId(move.end));
       let rectStart = startSquare.getBoundingClientRect();
       let rectEnd = endSquare.getBoundingClientRect();
       let translation = {x:rectEnd.x-rectStart.x, y:rectEnd.y-rectStart.y};
       let movingPiece =
         document.querySelector("#" + getSquareId(move.start) + " > img.piece");
+      if (!movingPiece) //TODO: shouldn't happen
+        return;
       // HACK for animation (with positive translate, image slides "under background")
       // Possible improvement: just alter squares on the piece's way...
       const squares = document.getElementsByClassName("board");