import {client, navigateTo} from "../index.js"; import AbstractAuthentifiedView from "./abstracts/AbstractAuthentifiedView.js"; export default class extends AbstractAuthentifiedView { constructor(params) { super(params, "Tournament"); this.id = params.id; } pressButton() { this.tournament.toggle_participation(); } async receive(data) { if (data.detail === "nb_participants" || data.detail === "update_participants") document.getElementById("nb_participants").innerText = `${data.nb_participants} / ${this.tournament.nb_players}` if (data.detail === "go_to") navigateTo(data.url); if (data.detail === "is_participant") this.updateParticipating(data.is_participant) if (data.detail === "error") document.getElementById("display").innerText = data.error_message } async updateParticipating(state) { document.getElementById("button").value = state ? `Leave ${this.tournament.name}` : `Join ${this.tournament.name}`; document.getElementById("display").innerText = state ? "You are a particpant" : "You are not a participant"; } async ondisconnect(event) { } async postInit() { this.tournament = await client.tournaments.getTournament(this.id); if (this.tournament === null) return 1; this.tournament.join(this.receive.bind(this), this.ondisconnect.bind(this)); let button = document.getElementById("button") button.onclick = this.pressButton.bind(this); document.getElementById("name").innerText = this.tournament.name; document.getElementById("nb_players").innerText = this.tournament.nb_players; document.getElementById("nb_players_by_game").innerText = this.tournament.nb_players_by_game; document.getElementById("level").innerText = this.tournament.level; document.getElementById("state").innerText = this.tournament.state; if (this.tournament.state === "waiting") button.disabled = false; } async getHtml() { return `
Loading...
Number of players Loading...
Number of players by game Loading...
Number of round Loading...
Number of player Loading...
status Loading...
` } }