diff options
author | Simon Ser <contact@emersion.fr> | 2024-02-20 22:50:09 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2024-02-20 22:50:09 +0100 |
commit | 038cc68ee436bb3038dc672381af46bdba13c824 (patch) | |
tree | 07fbedba2038788ef263756f41913df1121bf32f | |
parent | 15cc54687629d87b7af2cf29c4b041e243152c18 (diff) | |
download | gamja-038cc68ee436bb3038dc672381af46bdba13c824.tar.gz gamja-038cc68ee436bb3038dc672381af46bdba13c824.zip |
components/buffer-list: show realname as tooltip
-rw-r--r-- | components/buffer-list.js | 14 | ||||
-rw-r--r-- | components/member-list.js | 2 |
2 files changed, 13 insertions, 3 deletions
diff --git a/components/buffer-list.js b/components/buffer-list.js index 590dbed..c08e45e 100644 --- a/components/buffer-list.js +++ b/components/buffer-list.js @@ -1,4 +1,5 @@ import * as irc from "../lib/irc.js"; +import { strip as stripANSI } from "../lib/ansi.js"; import { html, Component } from "../lib/index.js"; import { BufferType, Unread, ServerStatus, getBufferURL, getServerName } from "../state.js"; @@ -19,6 +20,7 @@ function BufferItem(props) { name = getServerName(props.server, props.bouncerNetwork); } + let title; let classes = ["type-" + props.buffer.type]; if (props.active) { classes.push("active"); @@ -26,7 +28,8 @@ function BufferItem(props) { if (props.buffer.unread != Unread.NONE) { classes.push("unread-" + props.buffer.unread); } - if (props.buffer.type === BufferType.SERVER) { + switch (props.buffer.type) { + case BufferType.SERVER: let isError = props.server.status === ServerStatus.DISCONNECTED; if (props.bouncerNetwork && props.bouncerNetwork.error) { isError = true; @@ -34,12 +37,20 @@ function BufferItem(props) { if (isError) { classes.push("error"); } + break; + case BufferType.NICK: + let user = props.server.users.get(name); + if (user && irc.isMeaningfulRealname(user.realname, name)) { + title = stripANSI(user.realname); + } + break; } return html` <li class="${classes.join(" ")}"> <a href=${getBufferURL(props.buffer)} + title=${title} onClick=${handleClick} onMouseDown=${handleMouseDown} >${name}</a> @@ -47,7 +58,6 @@ function BufferItem(props) { `; } - export default function BufferList(props) { let items = Array.from(props.buffers.values()).map((buf) => { let server = props.servers.get(buf.server); diff --git a/components/member-list.js b/components/member-list.js index d7fa439..283892d 100644 --- a/components/member-list.js +++ b/components/member-list.js @@ -41,7 +41,7 @@ class MemberItem extends Component { `; }; - let title = null; + let title; let user = this.props.user; let classes = ["nick"]; if (user) { |