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

Method generateListHTML

src/webpage/localuser.ts:1493–1644  ·  view source on GitHub ↗
(elms: Map<Role | "offline" | "online", (Member | User)[]>, channel: Channel)

Source from the content-addressed store, hash-verified

1491 return;
1492 }
1493 if (user.getStatus() === "offline" || user.getStatus() === "invisible") {
1494 return;
1495 }
1496 if (member instanceof Member) {
1497 if (role !== "online" && member.hasRole(role.id)) {
1498 list.push(member);
1499 members.delete(member);
1500 }
1501 }
1502 });
1503 if (!list.length) continue;
1504 list.sort((a, b) => {
1505 return a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1;
1506 });
1507 }
1508 const online = [...members];
1509 online.sort((a, b) => {
1510 return a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1;
1511 });
1512 elms.set("online", online);
1513 this.generateListHTML(elms, channel);
1514 }
1515 instanceString(): string {
1516 const insts = getInstances();
1517 if (insts) {
1518 for (const inst of insts) {
1519 if (trimTrailingSlashes(inst.url ?? "") === trimTrailingSlashes(this.info.wellknown)) {
1520 return inst.name;
1521 }
1522 }
1523 }
1524 console.log("failed with", insts, this.info.wellknown);
1525 return this.info.wellknown;
1526 }
1527 readonly roleListMap = new WeakMap<
1528 HTMLDivElement,
1529 {
1530 role: Role | "offline" | "online";
1531 memberListMap: Map<HTMLElement, User>;
1532 }
1533 >();
1534 listGuild?: Guild;
1535 generateListHTML(elms: Map<Role | "offline" | "online", (Member | User)[]>, channel: Channel) {
1536 const div = document.getElementById("sideDiv") as HTMLDivElement;
1537 let roleMap = new Map<
1538 Role | "offline" | "online",
1539 {elm: HTMLDivElement; memberListMap: Map<HTMLElement, User>}
1540 >();
1541 if (channel.guild !== this.listGuild) {
1542 this.listGuild = channel.guild;
1543 div.innerHTML = "";
1544 }
1545 Array.from(div.children)
1546 .map((_) => [this.roleListMap.get(_ as HTMLDivElement), _ as HTMLDivElement] as const)
1547 .forEach(([role, elm]) => {
1548 if (role && elms.get(role.role)?.length) {
1549 if (document.contains(elm))
1550 roleMap.set(role.role, {elm, memberListMap: role.memberListMap});

Callers 1

memberListUpdateMethod · 0.95

Calls 4

addMethod · 0.80
onlineMethod · 0.80
removeMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected