- props: ["moves","cursor"], //TODO: other props for e.g. players names + connected indicator
- // --> we could also add turn indicator here
- data: function() {
- return {
- something: "", //TODO?
- };
- },
- // TODO: extend rendering for more than 2 colors: would be a parameter
- // in that case some moves for some colors could be just skipped (if a player lost)
+ props: ["moves","cursor","score","message","firstNum"],
+ watch: {
+ cursor: function(newCursor) {
+ if (window.innerWidth <= 767)
+ return; //moves list is below: scrolling would hide chessboard
+ // Count grouped moves until the cursor (if multi-moves):
+ let groupsCount = -1;
+ let curCol = undefined;
+ for (let i=0; i<newCursor; i++)
+ {
+ const m = this.moves[i];
+ if (m.color != curCol)
+ {
+ groupsCount++;
+ curCol = m.color;
+ }
+ }
+ // $nextTick to wait for table > tr to be rendered
+ this.$nextTick( () => {
+ let rows = document.querySelectorAll('#movesList tr');
+ if (rows.length > 0)
+ {
+ rows[Math.floor(Math.max(groupsCount,0)/2)].scrollIntoView({
+ behavior: "auto",
+ block: "nearest",
+ });
+ }
+ });
+ },
+ },