aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2024-02-20 22:50:09 +0100
committerSimon Ser <contact@emersion.fr>2024-02-20 22:50:09 +0100
commit038cc68ee436bb3038dc672381af46bdba13c824 (patch)
tree07fbedba2038788ef263756f41913df1121bf32f
parent15cc54687629d87b7af2cf29c4b041e243152c18 (diff)
downloadgamja-038cc68ee436bb3038dc672381af46bdba13c824.tar.gz
gamja-038cc68ee436bb3038dc672381af46bdba13c824.zip
components/buffer-list: show realname as tooltip
-rw-r--r--components/buffer-list.js14
-rw-r--r--components/member-list.js2
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) {