(elms: Map<Role | "offline" | "online", (Member | User)[]>, channel: Channel)
| 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}); |
no test coverage detected