X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FMoveList.vue;h=9ec968f8878dca3886efe93ebc2135e2b628a0e4;hb=107dc1bd5361e2538b1551bdcc37c1e90a444b83;hp=ccb07758296e00fb40d3dce05b2b0b0a19a6a54e;hpb=07052665845283c65b50a76537669d0602ba436b;p=vchess.git diff --git a/client/src/components/MoveList.vue b/client/src/components/MoveList.vue index ccb07758..9ec968f8 100644 --- a/client/src/components/MoveList.vue +++ b/client/src/components/MoveList.vue @@ -22,20 +22,23 @@ div @click="$emit('showrules')" ) | {{ st.tr["Rules"] }} - button.tooltip( + button( + :class="btnTooltipClass()" onClick="window.doClick('modalAdjust')" :aria-label="st.tr['Resize board']" ) img.inline(src="/images/icons/resize.svg") - button#analyzeBtn.tooltip( + button#analyzeBtn( v-if="canAnalyze" + :class="btnTooltipClass()" @click="$emit('analyze')" :aria-label="st.tr['Analyse']" ) img.inline(src="/images/icons/analyse.svg") #downloadDiv(v-if="canDownload") a#download(href="#") - button.tooltip( + button( + :class="btnTooltipClass()" @click="$emit('download')" :aria-label="st.tr['Download'] + ' PGN'" ) @@ -76,12 +79,6 @@ export default { mounted: function() { document.getElementById("adjuster") .addEventListener("click", processModalClick); - if ("ontouchstart" in window) { - // Disable tooltips on smartphones: - document.querySelectorAll("#aboveMoves .tooltip").forEach(elt => { - elt.classList.remove("tooltip"); - }); - } // Take full width on small screens: let boardSize = parseInt(localStorage.getItem("boardSize")); if (!boardSize) { @@ -96,15 +93,10 @@ export default { gameContainer.style.width = boardSize + movesWidth + "px"; document.getElementById("boardSize").value = (boardSize * 100) / (window.innerWidth - movesWidth); - // timeout to avoid calling too many time the adjust method - let timeoutLaunched = false; - window.addEventListener("resize", () => { - if (!timeoutLaunched) { - timeoutLaunched = true; - this.adjustBoard(); - setTimeout(() => { timeoutLaunched = false; }, 500); - } - }); + window.addEventListener("resize", this.adjustBoard); + }, + beforeDestroy: function() { + window.removeEventListener("resize", this.adjustBoard); }, watch: { cursor: function(newCursor) { @@ -148,15 +140,16 @@ export default { ) ); }, + btnTooltipClass: function() { + return { tooltip: !("ontouchstart" in window) }; + }, gotoMove: function(index) { - this.$emit("goto-move", index); + // Goto move except if click on current move: + if (this.cursor != index) this.$emit("goto-move", index); }, adjustBoard: function() { const boardContainer = document.getElementById("boardContainer"); if (!boardContainer) return; //no board on page - let arrows = document.getElementById("arrowCanvas"); - // TODO: arrows on board don't scale - if (!!arrows) this.$emit("reset-arrows"); const k = document.getElementById("boardSize").value; const movesWidth = window.innerWidth >= 768 ? 280 : 0; const minBoardWidth = 240; //TODO: these 240 and 280 are arbitrary... @@ -168,6 +161,7 @@ export default { boardContainer.style.width = boardSize + "px"; document.getElementById("gameContainer").style.width = boardSize + movesWidth + "px"; + this.$emit("redraw-board"); } } }; @@ -241,7 +235,7 @@ span#rulesBtn button margin: 0 &.active - background-color: #50E99A + background-color: #48C9B0 #aboveMoves button padding-bottom: 5px