import Aview from "./Aview.ts"
import { isLogged, user_api, auth_api } from "../main.ts"
export default class extends Aview {
async getHTML() {
return `
`;
}
open: boolean = false;
async run() {
let uuid: String;
if (this.open)
{
this.open = false;
document.getElementById("taskbar-menu").innerHTML = "";
return ;
}
this.open = true;
document.getElementById("taskbar-menu").innerHTML = await this.getHTML();
async function getMainHTML() {
if (!(await isLogged()))
{
document.getElementById("menu-bottom-div")?.classList.add("hidden");
return `
`;
}
document.getElementById("menu-bottom-div")?.classList.remove("hidden");
uuid = document.cookie.match(new RegExp('(^| )' + "uuid" + '=([^;]+)'))[2];
const userdata_req = await fetch(`${user_api}/users/${uuid}`, {
method: "GET",
credentials: "include",
});
if (userdata_req.status == 404)
{
console.error("invalid user");
return ;
}
let userdata = await userdata_req.json();
return `
`;
}
document.getElementById("profile-items").innerHTML = await getMainHTML();
requestAnimationFrame(() => {
document.getElementById("menu-logout").addEventListener("click", async () => {
let req = fetch(`${auth_api}/logout`, {
method: "GET",
credentials: "include",
});
req.then((res) => {
isLogged();
if (res.status === 200)
this.run();
else
console.error("logout failed");
});
});
});
}
}