diff --git a/index.html b/index.html index 7df951b..d5365ae 100644 --- a/index.html +++ b/index.html @@ -10,6 +10,7 @@
+
diff --git a/src/main.ts b/src/main.ts index c214cda..b6c909c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -78,15 +78,49 @@ const main = async () => { await player.load(new Game().loadPGN(pgn)); }; - // document.addEventListener("click", () => { - // player.next(); - // }); + const handlers = { + 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( "contextmenu", (e) => { e.preventDefault(); - player.prev(); + handlers.prev(); return false; }, false @@ -95,32 +129,28 @@ const main = async () => { document.addEventListener("keydown", ({ key }) => { switch (key) { case "ArrowLeft": - player.pause(); - player.prev(); + handlers.prev(); break; case "ArrowRight": - player.pause(); - player.next(); + handlers.next(); break; case "ArrowUp": - player.pause(); - player.first(); + handlers.first(); break; case "ArrowDown": - player.pause(); - player.last(); + handlers.last(); break; case " ": - player.playing ? player.pause() : player.play(); + handlers.togglePlay(); break; case "b": - board.toggleBorder(); + handlers.toggleBorder(); break; case "f": - board.flip(); + handlers.flip(); break; case "e": - board.toggleExtraInfo(); + handlers.toggleExtraInfo(); break; } }); @@ -131,41 +161,14 @@ const main = async () => { hammer.add(new Hammer.Press({ time: 500 })); hammer.add(new Hammer.Tap({ taps: 1 })); - hammer.on("swiperight", () => { - player.pause(); - player.prev(); - }); - - hammer.on("swipeleft", () => { - player.playing ? player.pause() : player.play(); - }); - - 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(); - }); + hammer.on("swiperight", handlers.next); + hammer.on("swipeleft", handlers.prev); + hammer.on("swipeup", handlers.first); + hammer.on("swipedown", handlers.last); + hammer.on("pinchin", handlers.showBorder); + hammer.on("pinchout", handlers.hideBorder); + hammer.on("tap", handlers.togglePlay); + hammer.on("press", handlers.flip); // createDownloadLink(pgn, boardConfig).then((link) => { // document.body.appendChild(link); diff --git a/src/style.css b/src/style.css index d6e4fe1..b0b0e2e 100644 --- a/src/style.css +++ b/src/style.css @@ -41,21 +41,32 @@ body { .layout { display: grid; grid-template-columns: 1fr 2fr 1fr; + grid-template-areas: + "setup board controls" + "setup board moves"; } .moves-box { background: rgba(255, 192, 203, 0.5); - height: 100vh; + grid-area: moves; } .board-box { background: rgba(255, 166, 0, 0.5); height: 100vh; + grid-area: board; } .setup-box { background: rgba(135, 207, 235, 0.5); 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) {