💄 style: Show message author in minimap (#9797)

* feat: Show message author

* fix: Use debug instead

* Update index.tsx
This commit is contained in:
René Wang
2025-10-21 10:30:34 +08:00
committed by GitHub
parent b8c59be3a7
commit f6daefb0a2
20 changed files with 84 additions and 27 deletions
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "الانتقال إلى الرسالة رقم {{index}}",
"nextMessage": "الرسالة التالية",
"previousMessage": "الرسالة السابقة"
"previousMessage": "الرسالة السابقة",
"senderAssistant": "المساعد",
"senderUser": "أنت"
},
"newAgent": "مساعد جديد",
"newGroupChat": "إنشاء دردشة جماعية جديدة",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Отиди до съобщение № {{index}}",
"nextMessage": "Следващо съобщение",
"previousMessage": "Предишно съобщение"
"previousMessage": "Предишно съобщение",
"senderAssistant": "Асистент",
"senderUser": "Ти"
},
"newAgent": "Нов агент",
"newGroupChat": "Създаване на нов групов чат",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Zur Nachricht Nr. {{index}} springen",
"nextMessage": "Nächste Nachricht",
"previousMessage": "Vorherige Nachricht"
"previousMessage": "Vorherige Nachricht",
"senderAssistant": "Assistent",
"senderUser": "Du"
},
"newAgent": "Neuer Assistent",
"newGroupChat": "Neue Gruppe erstellen",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Jump to message {{index}}",
"nextMessage": "Next message",
"previousMessage": "Previous message"
"previousMessage": "Previous message",
"senderAssistant": "Assistant",
"senderUser": "You"
},
"newAgent": "New Assistant",
"newGroupChat": "New Group Chat",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Ir al mensaje número {{index}}",
"nextMessage": "Mensaje siguiente",
"previousMessage": "Mensaje anterior"
"previousMessage": "Mensaje anterior",
"senderAssistant": "Asistente",
"senderUser": "Tú"
},
"newAgent": "Nuevo asistente",
"newGroupChat": "Crear nuevo chat de grupo",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "رفتن به پیام شماره {{index}}",
"nextMessage": "پیام بعدی",
"previousMessage": "پیام قبلی"
"previousMessage": "پیام قبلی",
"senderAssistant": "دستیار",
"senderUser": "شما"
},
"newAgent": "دستیار جدید",
"newGroupChat": "ایجاد چت گروهی جدید",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Aller au message n° {{index}}",
"nextMessage": "Message suivant",
"previousMessage": "Message précédent"
"previousMessage": "Message précédent",
"senderAssistant": "Assistant",
"senderUser": "Vous"
},
"newAgent": "Nouvel agent",
"newGroupChat": "Nouveau groupe de discussion",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Vai al messaggio n. {{index}}",
"nextMessage": "Messaggio successivo",
"previousMessage": "Messaggio precedente"
"previousMessage": "Messaggio precedente",
"senderAssistant": "Assistente",
"senderUser": "Tu"
},
"newAgent": "Nuovo assistente",
"newGroupChat": "Nuova chat di gruppo",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "メッセージ {{index}} へジャンプ",
"nextMessage": "次のメッセージ",
"previousMessage": "前のメッセージ"
"previousMessage": "前のメッセージ",
"senderAssistant": "アシスタント",
"senderUser": "あなた"
},
"newAgent": "新しいエージェント",
"newGroupChat": "新しいグループチャットを作成",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "{{index}}번째 메시지로 이동",
"nextMessage": "다음 메시지",
"previousMessage": "이전 메시지"
"previousMessage": "이전 메시지",
"senderAssistant": "도우미",
"senderUser": "당신"
},
"newAgent": "새 도우미",
"newGroupChat": "새 그룹 채팅 만들기",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Ga naar bericht {{index}}",
"nextMessage": "Volgend bericht",
"previousMessage": "Vorig bericht"
"previousMessage": "Vorig bericht",
"senderAssistant": "Assistent",
"senderUser": "Jij"
},
"newAgent": "Nieuwe assistent",
"newGroupChat": "Nieuwe groepschat",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Przejdź do wiadomości nr {{index}}",
"nextMessage": "Następna wiadomość",
"previousMessage": "Poprzednia wiadomość"
"previousMessage": "Poprzednia wiadomość",
"senderAssistant": "Asystent",
"senderUser": "Ty"
},
"newAgent": "Nowy asystent",
"newGroupChat": "Utwórz nowy czat grupowy",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Ir para a mensagem nº {{index}}",
"nextMessage": "Próxima mensagem",
"previousMessage": "Mensagem anterior"
"previousMessage": "Mensagem anterior",
"senderAssistant": "Assistente",
"senderUser": "Você"
},
"newAgent": "Novo Assistente",
"newGroupChat": "Criar novo grupo",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Перейти к сообщению № {{index}}",
"nextMessage": "Следующее сообщение",
"previousMessage": "Предыдущее сообщение"
"previousMessage": "Предыдущее сообщение",
"senderAssistant": "Ассистент",
"senderUser": "Вы"
},
"newAgent": "Создать помощника",
"newGroupChat": "Создать групповой чат",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "{{index}} numaralı mesaja atla",
"nextMessage": "Sonraki mesaj",
"previousMessage": "Önceki mesaj"
"previousMessage": "Önceki mesaj",
"senderAssistant": "Asistan",
"senderUser": "Sen"
},
"newAgent": "Yeni Asistan",
"newGroupChat": "Yeni grup sohbeti oluştur",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "Chuyển đến tin nhắn thứ {{index}}",
"nextMessage": "Tin nhắn tiếp theo",
"previousMessage": "Tin nhắn trước"
"previousMessage": "Tin nhắn trước",
"senderAssistant": "Trợ lý",
"senderUser": "Bạn"
},
"newAgent": "Tạo trợ lý mới",
"newGroupChat": "Tạo nhóm mới",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "跳转至第 {{index}} 条消息",
"nextMessage": "下一条消息",
"previousMessage": "上一条消息"
"previousMessage": "上一条消息",
"senderAssistant": "助手",
"senderUser": "你"
},
"newAgent": "新建助手",
"newGroupChat": "新建群聊",
+3 -1
View File
@@ -228,7 +228,9 @@
"minimap": {
"jumpToMessage": "跳轉至第 {{index}} 條訊息",
"nextMessage": "下一條訊息",
"previousMessage": "上一條訊息"
"previousMessage": "上一條訊息",
"senderAssistant": "助理",
"senderUser": "您"
},
"newAgent": "新建助手",
"newGroupChat": "建立群組",
@@ -1,7 +1,7 @@
'use client';
import { Icon } from '@lobehub/ui';
import { Tooltip } from 'antd';
import { Popover, Tooltip } from 'antd';
import { createStyles, useTheme } from 'antd-style';
import debug from 'debug';
import { ChevronDown, ChevronUp } from 'lucide-react';
@@ -114,6 +114,19 @@ const useStyles = createStyles(({ css, token }) => ({
indicatorContentActive: css`
background: ${token.colorPrimary};
`,
popoverContent: css`
max-width: 300px;
`,
popoverLabel: css`
margin-block-end: 4px;
font-size: 12px;
font-weight: 600;
color: ${token.colorTextSecondary};
`,
popoverText: css`
color: ${token.colorText};
word-break: break-word;
`,
rail: css`
pointer-events: auto;
@@ -174,6 +187,7 @@ const getPreviewText = (content: string | undefined) => {
interface MinimapIndicator {
id: string;
preview: string;
role: 'user' | 'assistant';
virtuosoIndex: number;
width: number;
}
@@ -203,6 +217,7 @@ const ChatMinimap = () => {
acc.push({
id: message.id,
preview: getPreviewText(message.content),
role: message.role,
virtuosoIndex,
width: getIndicatorWidth(message.content),
});
@@ -317,16 +332,20 @@ const ChatMinimap = () => {
</button>
</Tooltip>
<Flexbox className={styles.railContent}>
{indicators.map(({ id, width, preview, virtuosoIndex }, position) => {
{indicators.map(({ id, width, preview, role, virtuosoIndex }, position) => {
const isActive = activeIndicatorPosition === position;
const senderLabel =
role === 'user' ? t('minimap.senderUser') : t('minimap.senderAssistant');
const popoverContent = preview ? (
<div className={styles.popoverContent}>
<div className={styles.popoverLabel}>{senderLabel}</div>
<div className={styles.popoverText}>{preview}</div>
</div>
) : undefined;
return (
<Tooltip
key={id}
mouseEnterDelay={0.1}
placement={'left'}
title={preview || undefined}
>
<Popover content={popoverContent} key={id} mouseEnterDelay={0.1} placement={'left'}>
<button
aria-current={isActive ? 'true' : undefined}
aria-label={t('minimap.jumpToMessage', { index: position + 1 })}
@@ -344,7 +363,7 @@ const ChatMinimap = () => {
)}
/>
</button>
</Tooltip>
</Popover>
);
})}
</Flexbox>
+2
View File
@@ -247,6 +247,8 @@ export default {
jumpToMessage: '跳转至第 {{index}} 条消息',
nextMessage: '下一条消息',
previousMessage: '上一条消息',
senderAssistant: '助手',
senderUser: '你',
},
newAgent: '新建助手',