This commit is contained in:
Maciej Caderek
2022-03-29 04:47:41 +02:00
parent 999fed11ad
commit 6bf50bad10
6 changed files with 18 additions and 7 deletions

BIN
public/sfx/rewind.wav Normal file

Binary file not shown.

View File

@@ -124,7 +124,6 @@ const main = async () => {
game,
});
window.location.hash = `pgn/${compressPGN(game.pgn)}`;
setState("refreshHash", false);
await player.load(game);
setState("activeTab", "game");
@@ -153,7 +152,6 @@ const main = async () => {
if (hash) {
window.location.hash = `fen/${state.fen}`;
setState("refreshHash", false);
setState("activeTab", "game");
}
@@ -170,6 +168,8 @@ const main = async () => {
document.title = `SHARECHESS - FEN ${fen}`;
},
async load(data: string) {
setState("refreshHash", false);
if (isFEN(data)) {
await this.loadFEN(data);
return true;
@@ -239,7 +239,8 @@ const main = async () => {
/* Load game from the url */
const loadFromUrl = async () => {
const loadFromUrl = async (refreshHash: boolean = true) => {
setState("refreshHash", refreshHash);
const { pgn, fen } = extractUrlData();
await (pgn
@@ -250,9 +251,11 @@ const main = async () => {
"rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1",
false
));
setState("refreshHash", true);
};
await loadFromUrl();
await loadFromUrl(false);
/* Register events */
document.addEventListener("dblclick", function (el) {
@@ -273,11 +276,9 @@ const main = async () => {
window.addEventListener("hashchange", () => {
if (!state.refreshHash) {
setState("refreshHash", true);
console.log("No refresh");
return;
}
console.log("Refresh!");
loadFromUrl();
});
@@ -318,6 +319,7 @@ const main = async () => {
document.addEventListener("drop", async (e) => {
if (e.dataTransfer?.files && e.dataTransfer.files.length > 0) {
const content = await readFile(e.dataTransfer.files[0]);
setState("refreshHash", false);
handlers.loadPGN(content);
}
});

View File

@@ -88,6 +88,10 @@ class Player {
await this.board.frame(this.getPosition(), this.game.header);
this.board.render();
if (state.boardConfig.sounds) {
sfx.rewind.play();
}
}
async next() {

View File

@@ -17,6 +17,10 @@ const sfx = {
src: ["/sfx/snap.wav"],
volume: 0.6,
}),
rewind: new Howl({
src: ["/sfx/rewind.wav"],
volume: 0.2,
}),
};
export default sfx;

View File

@@ -1,7 +1,7 @@
import { Component, createSignal, Show } from "solid-js";
import { Handlers } from "../../types";
import readFile from "../../utils/readFile";
import { state } from "../../state";
import { setState, state } from "../../state";
import "./Load.css";
const Load: Component<{ handlers: Handlers; class?: string }> = (props) => {
@@ -40,6 +40,7 @@ const Load: Component<{ handlers: Handlers; class?: string }> = (props) => {
const target = e.target as HTMLInputElement;
if (target?.files && target.files.length > 0) {
const content = await readFile(target.files[0]);
setState("refreshHash", false);
props.handlers.loadPGN(content);
}
}}