X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FMoveList.vue;h=73c10f0fbf771c87084fa030e009effa547aab71;hb=144c900354f828ff2321a94db364bf436bff4586;hp=c63f2cdfe733691496d10b2015488502c74835bd;hpb=5157ce0b8872417fbeecd736c9d1ae750b24acdc;p=vchess.git diff --git a/client/src/components/MoveList.vue b/client/src/components/MoveList.vue index c63f2cdf..73c10f0f 100644 --- a/client/src/components/MoveList.vue +++ b/client/src/components/MoveList.vue @@ -3,16 +3,17 @@ div #scoreInfo(v-if="score!='*'") p {{ score }} p {{ message }} - table#movesList + table.moves-list tbody - tr(v-for="moveIdx in evenNumbers") - td {{ firstNum + moveIdx / 2 + 1 }} + tr(v-for="gmove,index in groupedMoves") + td(v-if="index%2==0") + | {{ firstNum + index / 2 + 1 }} td(:class="{'highlight-lm': cursor == moveIdx}" - data-label="White move" @click="() => gotoMove(moveIdx)") + @click="() => gotoMove(moveIdx)") | {{ moves[moveIdx].notation }} td(v-if="moveIdx < moves.length-1" :class="{'highlight-lm': cursor == moveIdx+1}" - data-label="Black move" @click="() => gotoMove(moveIdx+1)") + @click="() => gotoMove(moveIdx+1)") | {{ moves[moveIdx+1].notation }} // Else: just add an empty cell td(v-else) @@ -25,6 +26,8 @@ export default { props: ["moves","cursor","score","message","firstNum"], watch: { cursor: function(newValue) { + if (window.innerWidth <= 767) + return; //moves list is below: scrolling would hide chessboard if (newValue < 0) newValue = 0; //avoid rows[-1] --> error // $nextTick to wait for table > tr to be rendered @@ -41,8 +44,24 @@ export default { }, }, computed: { - evenNumbers: function() { - return [...Array(this.moves.length).keys()].filter(i => i%2==0); + groupedMoves: function() { + let groups = []; + let curCol = undefined; + for (let idx=0; idx < this.moves.length; idx++) + { + const m = this.moves[idx]; + if (m.color == curCol) + { + const gidx = groups.length - 1; + groups[gidx].moves.push(m); + } + else + { + curCol = m.color; + groups.push({moves: [m], idx: groups.length}); + } + } + return groups; }, }, methods: { @@ -56,6 +75,14 @@ export default {