Fix promotion bug on smartphones
[vchess.git] / public / javascripts / components / game.js
index e229cdf..17f3b18 100644 (file)
@@ -257,7 +257,11 @@ Vue.component('my-game', {
                                                                attrs: { "src": '/images/pieces/' +
                                                                        VariantRules.getPpath(m.appear[0].c+m.appear[0].p) + '.svg' },
                                                                'class': { 'choice-piece': true },
-                                                               on: { "click": e => { this.play(m); this.choices=[]; } },
+                                                               on: {
+                                                                       "click": e => { this.play(m); this.choices=[]; },
+                                                                       // NOTE: add 'touchstart' event to fix a problem on smartphones
+                                                                       "touchstart": e => { this.play(m); this.choices=[]; },
+                                                               },
                                                        })
                                                ]
                                        );
@@ -1316,7 +1320,8 @@ Vue.component('my-game', {
                                const storageVariant = localStorage.getItem("comp-variant");
                                if (!!storageVariant)
                                {
-                                       if (storageVariant !== variant)
+                                       const score = localStorage.getItem("comp-score");
+                                       if (storageVariant !== variant && score == "*")
                                        {
                                                if (!confirm("Unfinished " + storageVariant +
                                                        " computer game will be erased"))
@@ -1324,12 +1329,8 @@ Vue.component('my-game', {
                                                        return;
                                                }
                                        }
-                                       else
-                                       {
-                                               const score = localStorage.getItem("comp-score");
-                                               if (score == "*")
-                                                       return this.continueGame("computer");
-                                       }
+                                       else if (score == "*")
+                                               return this.continueGame("computer");
                                }
                        }
                        this.vr = new VariantRules(fen, []);