import CONFIG from "./config.json"; const version_string = `StarKingdoms ${APP_VERSION} (${COMMIT_HASH}) made with by the StarKingdoms team`; document.getElementById("footer")!.innerHTML = version_string; // Dropdown stuff const custom_select = document.querySelector(".fm-select")!; const custom_select_btn = document.querySelector(".fm-select-button")!; custom_select_btn.addEventListener("click", (e) => { e.preventDefault(); custom_select.classList.toggle("active"); custom_select_btn.setAttribute("aria-expanded", custom_select_btn.getAttribute("aria-expanded") === "true" ? "false" : "true"); }); const selected_value = document.querySelector(".fm-selected-value")!; // Populate the main page server selector interface ConfigServer { name: string; url: string; api: string; } let inverse_server_lookup: {[name: string]: string} = {}; const dropdown = document.getElementById("fm-select-dropdown")!; for (let server_id in CONFIG.servers) { // @ts-ignore not sure why this complains let server: ConfigServer = CONFIG.servers[server_id]; let is_first = Object.keys(inverse_server_lookup).length == 0; let html_text = `
  • `; inverse_server_lookup[server.name] = server_id; dropdown.innerHTML += html_text; if (is_first) { selected_value.textContent = server.name; } } console.log(inverse_server_lookup); const options_list = document.querySelectorAll(".fm-select-dropdown li"); options_list.forEach((option) => { function handler(e: Event) { if (e.type === "click" && (e).clientX !== 0 && (e).clientY !== 0) { // @ts-ignore selected_value.textContent = this.children[1].textContent; custom_select.classList.remove("active"); } if (e.type === "keyup") { console.log((e).target!); // @ts-ignore selected_value.textContent = this.textContent; custom_select.classList.remove("active"); } } option.addEventListener("keyup", handler); option.addEventListener("click", handler); })