X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FSettings.vue;h=1cfbdc8f7d9134ca05b7c85607651618692948e4;hb=dac395887d96e2d642b209c6db6aaacc3ffacb34;hp=b7dd9b8ea88ae6ba7cf6972f8df8f55c66dc79aa;hpb=6cd07b4da66403ab2ff751b1c0361fa237cd0ed2;p=vchess.git diff --git a/client/src/components/Settings.vue b/client/src/components/Settings.vue index b7dd9b8e..1cfbdc8f 100644 --- a/client/src/components/Settings.vue +++ b/client/src/components/Settings.vue @@ -1,12 +1,14 @@ @@ -47,7 +50,24 @@ export default { st: store.state, }; }, - methods: { + mounted: function() { + const boardSize = localStorage.getItem("boardSize"); + if (!!boardSize) + document.getElementById("myRange").value = Math.floor(boardSize / 10); + // timeout to avoid calling too many time the adjust method + let timeoutLaunched = false; + window.addEventListener("resize", (e) => { + if (!timeoutLaunched) + { + timeoutLaunched = true; + setTimeout( () => { + this.adjustBoard(); + timeoutLaunched = false; + }, 500); + } + }); + }, + methods: { updateSettings: function(event) { const propName = event.target.id.substr(3).replace(/^\w/, c => c.toLowerCase()) @@ -56,14 +76,20 @@ export default { : event.target.value; }, adjustBoard: function() { - const board = document.querySelector(".game"); - if (!board) + const boardContainer = document.getElementById("boardContainer"); + if (!boardContainer) return; //no board on page - const multiplier = document.getElementById("myRange").value; - const boardSize = 10 * multiplier; + const k = document.getElementById("myRange").value; + const movesWidth = (window.innerWidth >= 768 ? 280 : 0); + const minBoardWidth = 240; //TODO: these 240 and 280 are arbitrary... + // Value of 0 is board min size; 100 is window.width [- movesWidth] + const boardSize = minBoardWidth + + k * (window.innerWidth - (movesWidth+minBoardWidth)) / 100; localStorage.setItem("boardSize", boardSize); - board.style.width = boardSize + "px"; + boardContainer.style.width = boardSize + "px"; + document.getElementById("gameContainer").style.width = + (boardSize + movesWidth) + "px"; }, - }, + }, };