MCPcopy Create free account
hub / github.com/MathMan05/Fermi / createBanHTML

Method createBanHTML

src/webpage/guild.ts:1052–1107  ·  view source on GitHub ↗
(ban: banObj)

Source from the content-addressed store, hash-verified

1050 method: "PUT",
1051 headers,
1052 });
1053 if (!ret.ok) {
1054 new Dialog((await ret.json()).message).show();
1055 return;
1056 }
1057 banMenu.returnFromSub();
1058 });
1059 opt.addButtonInput("", I18n.submit(), () => {
1060 opt.submit();
1061 });
1062 });
1063 const makeBanMenu = () => {
1064 const banDiv = document.createElement("div");
1065 const bansp = ProgessiveDecodeJSON<banObj[]>(
1066 this.info.api + "/guilds/" + this.id + "/bans",
1067 {
1068 headers: this.headers,
1069 },
1070 );
1071 const createBanHTML = (ban: banObj) => {
1072 const div = document.createElement("div");
1073 div.classList.add("flexltr", "bandiv");
1074 let src: string;
1075 if (ban.user.avatar !== null) {
1076 src =
1077 `${this.info.cdn}/avatars/${ban.user.id}/${ban.user.avatar}.png` +
1078 new CDNParams({expectedSize: 96});
1079 } else {
1080 const int = Number((BigInt(ban.user.id) >> 22n) % 6n);
1081 src = `${this.info.cdn}/embed/avatars/${int}.png`;
1082 }
1083 const img = createImg(src);
1084 img.classList.add("pfp");
1085 const divUserRes = document.createElement("div");
1086 divUserRes.classList.add("flexttb");
1087
1088 const username = document.createElement("span");
1089 username.textContent = ban.user.username;
1090
1091 divUserRes.append(username);
1092 if (ban.reason) {
1093 const reason = document.createElement("span");
1094 reason.innerText = ban.reason;
1095 divUserRes.append(I18n.guild.banReason(ban.reason));
1096 }
1097 div.append(img, divUserRes);
1098 div.onclick = async (_) => {
1099 const opt = banMenu.addSubOptions(ban.user.username);
1100
1101 opt.addHTMLArea(img.cloneNode(true) as HTMLElement);
1102 opt.addText(ban.user.username);
1103 if (ban.reason) opt.addText(I18n.guild.banReason(ban.reason));
1104 //FIXME the API sends back the wrong response, so I don't have this info
1105 /*
1106 const moreInfo = (await (
1107 await fetch(this.info.api + "/guilds/" + this.id + "/bans/" + ban.user.id, {
1108 headers: this.headers,
1109 })

Callers

nothing calls this directly

Calls 8

createImgFunction · 0.85
loadPageFunction · 0.85
addMethod · 0.80
returnFromSubMethod · 0.80
addSubOptionsMethod · 0.45
addHTMLAreaMethod · 0.45
addTextMethod · 0.45
addButtonInputMethod · 0.45

Tested by

no test coverage detected