X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBoard.vue;h=1b7fd6bc40cd98982d65730d4cfae6ef5a0b43f1;hb=41c80bb63b85b2696d3925c10784c3d7bb5d2aa3;hp=4e03b18788bc3a880fbabb705d6130fad15c03b3;hpb=7aa548e72ba8a4af4e2c7f63e7723ad10d2cd3a4;p=vchess.git diff --git a/client/src/components/Board.vue b/client/src/components/Board.vue index 4e03b187..1b7fd6bc 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", }, @@ -351,7 +363,7 @@ export default { }; -