diff --git a/components/member-list.js b/components/member-list.js index 2b6e8a1..3004eb5 100644 --- a/components/member-list.js +++ b/components/member-list.js @@ -1,5 +1,6 @@ import { html, Component } from "../lib/index.js"; import { getNickURL } from "../state.js"; +import { strip as stripANSI } from "../lib/ansi.js"; import Membership from "./membership.js"; class MemberItem extends Component { @@ -41,8 +42,20 @@ class MemberItem extends Component { let title = null; let user = this.props.user; - if (user && user.username && user.hostname) { - title = `${user.username}@${user.hostname}`; + if (user) { + let mask = ""; + if (user.username && user.hostname) { + mask = `${user.username}@${user.hostname}`; + } + + if (user.realname) { + title = stripANSI(user.realname); + if (mask) { + title = `${title} (${mask})`; + } + } else { + title = mask; + } } return html` diff --git a/lib/client.js b/lib/client.js index 0b2aed7..8e87958 100644 --- a/lib/client.js +++ b/lib/client.js @@ -7,6 +7,7 @@ const permanentCaps = [ "batch", "chghost", "echo-message", + "extended-join", "invite-notify", "labeled-response", "message-tags", diff --git a/state.js b/state.js index f61750d..00f8ae3 100644 --- a/state.js +++ b/state.js @@ -410,6 +410,13 @@ export const State = { if (msg.prefix.host) { who.hostname = msg.prefix.host; } + if (msg.params.length > 2) { + who.account = msg.params[1]; + if (who.account === "*") { + who.account = null; + } + who.realname = msg.params[2]; + } update = updateUser(msg.prefix.name, who); state = { ...state, ...update };