import { connect } from "./socket.js";
const colors = {
1: "blue",
2: "blue",
3: "blue",
4: "blue",
5: "green",
6: "green",
7: "green",
8: "green",
9: "red",
10: "red",
11: "red",
12: "red"
};
export const tpl = {
card: ({ val, draggable = false }) => `
`,
joker: ({ val = 0, draggable = false }) => `
`,
msgBoxes: {
tpl: ({ title, content, buttons }) => `
${title}
${buttons.map(button => button.tpl).join``}
`,
joinGame: {
title: "join game",
content: `
Game room
Your name
`,
buttons: [{
tpl: ``,
event: e => {
alert("join");
}
}, {
tpl: ``,
event: e => {
removemsgBox(e.target.parentNode.parentNode.parentNode);
}
}]
},
newGame: {
title: "new game",
content: `
Game room
Your name
`,
buttons: [{
tpl: ``,
event: e => {
const box = e.target.parentNode.parentNode.parentNode;
connect({
gameroom: box.querySelector("input[name='gameroom']").value,
playername: box.querySelector("input[name='playername']").value
});
}
}, {
tpl: ``,
event: e => {
removemsgBox(e.target.parentNode.parentNode.parentNode);
}
}]
},
waitforPlayer: {
title: "waiting for players",
content: `
actually connected: 1
`,
buttons: [{
tpl: ``,
event: e => {
removemsgBox(e.target.parentNode.parentNode.parentNode);
}
}]
}
}
};
const removemsgBox = node => {
document.querySelector("body").removeChild(node);
if(document.querySelectorAll(".msgBox").length === 0 && document.querySelector("div#menu").style.display === "none")
document.querySelector("#black").style.display = "none";
};
export const removeAllmsgBox = () => {
document.querySelectorAll(".msgbox").forEach(msgbox => {
removemsgBox(msgbox);
});
};
export const msgBox = type => {
if(document.querySelector("#black").style.display === "none")
document.querySelector("#black").style.display = "block";
document.querySelector("body").insertAdjacentHTML("afterbegin",
[tpl.msgBoxes[type]].map(tpl.msgBoxes.tpl).join``
);
document.querySelectorAll(".msgBox:first-child input[type='button']").forEach((button, i) => {
button.addEventListener("click", tpl.msgBoxes[type].buttons[i].event);
});
return document.querySelector(".msgBox:first-child");
};