X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBoard.vue;h=eb9e6e4cdcc56ec412c6099917fe12fe92ca8c99;hb=7b3cf1b79954a47000527dd0c3f0fc1cecb5315d;hp=4e03b18788bc3a880fbabb705d6130fad15c03b3;hpb=7aa548e72ba8a4af4e2c7f63e7723ad10d2cd3a4;p=vchess.git diff --git a/client/src/components/Board.vue b/client/src/components/Board.vue index 4e03b187..eb9e6e4c 100644 --- a/client/src/components/Board.vue +++ b/client/src/components/Board.vue @@ -21,7 +21,15 @@ export default { }, render(h) { if (!this.vr) - return; + { + // Return empty div of class 'game' to avoid error when setting size + return h("div", + { + "class": { + "game": true, + }, + }); + } const [sizeX,sizeY] = [V.size.x,V.size.y]; // Precompute hints squares to facilitate rendering let hintSquares = ArrayFun.init(sizeX, sizeY, false); @@ -29,7 +37,11 @@ export default { // Also precompute in-check squares let incheckSq = ArrayFun.init(sizeX, sizeY, false); this.incheck.forEach(sq => { incheckSq[sq[0]][sq[1]] = true; }); - const squareWidth = 40; //TODO: compute this + + let boardElt = document.querySelector(".game"); + const squareWidth = (!!boardElt + ? boardElt.offsetWidth / sizeY + : 40); //arbitrary value (not relevant) const choices = h( 'div', { @@ -37,7 +49,7 @@ export default { 'class': { 'row': true }, style: { "display": (this.choices.length > 0 ? "block" : "none"), - "top": "-" + ((sizeY/2)*squareWidth+squareWidth/2) + "px", + "top": ((sizeY/2)*squareWidth+squareWidth/2) + "px", "width": (this.choices.length * squareWidth) + "px", "height": squareWidth + "px", }, @@ -248,6 +260,12 @@ export default { elementArray ); }, + mounted: function() { + // NOTE (TODO?): could also be dependent on page type (game, analyze, variant) + const boardSize = localStorage.getItem("boardSize"); + if (!!boardSize) + document.querySelector(".game").style.width = boardSize + "px"; + }, methods: { mousedown: function(e) { e = e || window.event; @@ -382,7 +400,7 @@ div.board11 padding-bottom: 9.1% .game - width: 80vh + //width: #{'min(80vw, 500px)'} margin: 0 auto .board cursor: pointer