planet-wars/backend/static/script/lobby.js
ajuvercr 33abe9515f
Misc #18 (#22)
* make lobby game post refresh page better

* frontend side of handling specific games

* add link button in lobby

* add share button
2020-04-11 08:21:08 +02:00

44 lines
1.1 KiB
JavaScript

const ids = {};
["map_holder", "name", "turns", "nop", "lobby"].forEach(id => ids[id] = document.getElementById(id));
var last_map;
var last_url;
async function handle_map_click(url, event) {
if (last_map) {
last_map.classList.remove("selected");
}
last_map = event.target;
event.target.classList.add("selected");
last_url = url;
const c = await fetch(url);
ids["map_holder"].innerHTML = await c.text();
}
async function refresh_state() {
const c = await fetch("/partial/state");
ids["lobby"].innerHTML = await c.text();
}
async function start_game() {
const obj = {
"nop": parseInt(ids["nop"].value),
"name": ids["name"].value,
"map": last_url,
"max_turns": parseInt(ids["turns"].value),
};
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = async function() {
console.log(this);
// TODO: make response visible
};
xhr.open("POST", "/lobby");
xhr.addEventListener("loadend", refresh_state);
xhr.send(JSON.stringify(obj));
}
window.onload = () => refresh_state();