This commit is contained in:
Maciej Caderek
2022-02-02 03:34:28 +01:00
parent 69da8c4f9d
commit 71bb21e099
3 changed files with 67 additions and 52 deletions

View File

@@ -10,6 +10,7 @@
<div class="layout"> <div class="layout">
<div id="setup" class="setup-box"></div> <div id="setup" class="setup-box"></div>
<div id="board" class="board-box"></div> <div id="board" class="board-box"></div>
<div id="controls" class="controls-box"></div>
<div id="moves" class="moves-box"></div> <div id="moves" class="moves-box"></div>
</div> </div>
<script type="module" src="/src/main.ts"></script> <script type="module" src="/src/main.ts"></script>

View File

@@ -78,15 +78,49 @@ const main = async () => {
await player.load(new Game().loadPGN(pgn)); await player.load(new Game().loadPGN(pgn));
}; };
// document.addEventListener("click", () => { const handlers = {
// player.next(); prev() {
// }); player.pause();
player.prev();
},
next() {
player.pause();
player.next();
},
first() {
player.pause();
player.first();
},
last() {
player.pause();
player.last();
},
toggleBorder() {
board.toggleBorder();
},
showBorder() {
board.showBorder();
},
hideBorder() {
board.hideBorder();
},
toggleExtraInfo() {
board.toggleExtraInfo();
},
flip() {
board.flip();
},
togglePlay() {
player.playing ? player.pause() : player.play();
},
};
document.addEventListener( document.addEventListener(
"contextmenu", "contextmenu",
(e) => { (e) => {
e.preventDefault(); e.preventDefault();
player.prev(); handlers.prev();
return false; return false;
}, },
false false
@@ -95,32 +129,28 @@ const main = async () => {
document.addEventListener("keydown", ({ key }) => { document.addEventListener("keydown", ({ key }) => {
switch (key) { switch (key) {
case "ArrowLeft": case "ArrowLeft":
player.pause(); handlers.prev();
player.prev();
break; break;
case "ArrowRight": case "ArrowRight":
player.pause(); handlers.next();
player.next();
break; break;
case "ArrowUp": case "ArrowUp":
player.pause(); handlers.first();
player.first();
break; break;
case "ArrowDown": case "ArrowDown":
player.pause(); handlers.last();
player.last();
break; break;
case " ": case " ":
player.playing ? player.pause() : player.play(); handlers.togglePlay();
break; break;
case "b": case "b":
board.toggleBorder(); handlers.toggleBorder();
break; break;
case "f": case "f":
board.flip(); handlers.flip();
break; break;
case "e": case "e":
board.toggleExtraInfo(); handlers.toggleExtraInfo();
break; break;
} }
}); });
@@ -131,41 +161,14 @@ const main = async () => {
hammer.add(new Hammer.Press({ time: 500 })); hammer.add(new Hammer.Press({ time: 500 }));
hammer.add(new Hammer.Tap({ taps: 1 })); hammer.add(new Hammer.Tap({ taps: 1 }));
hammer.on("swiperight", () => { hammer.on("swiperight", handlers.next);
player.pause(); hammer.on("swipeleft", handlers.prev);
player.prev(); hammer.on("swipeup", handlers.first);
}); hammer.on("swipedown", handlers.last);
hammer.on("pinchin", handlers.showBorder);
hammer.on("swipeleft", () => { hammer.on("pinchout", handlers.hideBorder);
player.playing ? player.pause() : player.play(); hammer.on("tap", handlers.togglePlay);
}); hammer.on("press", handlers.flip);
hammer.on("swipeup", () => {
player.pause();
player.first();
});
hammer.on("swipedown", () => {
player.pause();
player.last();
});
hammer.on("pinchin", () => {
board.showBorder();
});
hammer.on("pinchout", () => {
board.hideBorder();
});
hammer.on("tap", () => {
player.pause();
player.next();
});
hammer.on("press", () => {
board.flip();
});
// createDownloadLink(pgn, boardConfig).then((link) => { // createDownloadLink(pgn, boardConfig).then((link) => {
// document.body.appendChild(link); // document.body.appendChild(link);

View File

@@ -41,21 +41,32 @@ body {
.layout { .layout {
display: grid; display: grid;
grid-template-columns: 1fr 2fr 1fr; grid-template-columns: 1fr 2fr 1fr;
grid-template-areas:
"setup board controls"
"setup board moves";
} }
.moves-box { .moves-box {
background: rgba(255, 192, 203, 0.5); background: rgba(255, 192, 203, 0.5);
height: 100vh; grid-area: moves;
} }
.board-box { .board-box {
background: rgba(255, 166, 0, 0.5); background: rgba(255, 166, 0, 0.5);
height: 100vh; height: 100vh;
grid-area: board;
} }
.setup-box { .setup-box {
background: rgba(135, 207, 235, 0.5); background: rgba(135, 207, 235, 0.5);
height: 100vh; height: 100vh;
grid-area: setup;
}
.controls-box {
background: rgba(0, 255, 0, 0.5);
height: 100px;
grid-area: controls;
} }
@media screen and (max-width: 1024px) { @media screen and (max-width: 1024px) {