mirror of
https://github.com/lobehub/lobe-chat.git
synced 2026-06-16 12:36:07 +00:00
💄 style: Show message author in minimap (#9797)
* feat: Show message author * fix: Use debug instead * Update index.tsx
This commit is contained in:
@@ -228,7 +228,9 @@
|
||||
"minimap": {
|
||||
"jumpToMessage": "الانتقال إلى الرسالة رقم {{index}}",
|
||||
"nextMessage": "الرسالة التالية",
|
||||
"previousMessage": "الرسالة السابقة"
|
||||
"previousMessage": "الرسالة السابقة",
|
||||
"senderAssistant": "المساعد",
|
||||
"senderUser": "أنت"
|
||||
},
|
||||
"newAgent": "مساعد جديد",
|
||||
"newGroupChat": "إنشاء دردشة جماعية جديدة",
|
||||
|
||||
@@ -228,7 +228,9 @@
|
||||
"minimap": {
|
||||
"jumpToMessage": "Отиди до съобщение № {{index}}",
|
||||
"nextMessage": "Следващо съобщение",
|
||||
"previousMessage": "Предишно съобщение"
|
||||
"previousMessage": "Предишно съобщение",
|
||||
"senderAssistant": "Асистент",
|
||||
"senderUser": "Ти"
|
||||
},
|
||||
"newAgent": "Нов агент",
|
||||
"newGroupChat": "Създаване на нов групов чат",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -228,7 +228,9 @@
|
||||
"minimap": {
|
||||
"jumpToMessage": "رفتن به پیام شماره {{index}}",
|
||||
"nextMessage": "پیام بعدی",
|
||||
"previousMessage": "پیام قبلی"
|
||||
"previousMessage": "پیام قبلی",
|
||||
"senderAssistant": "دستیار",
|
||||
"senderUser": "شما"
|
||||
},
|
||||
"newAgent": "دستیار جدید",
|
||||
"newGroupChat": "ایجاد چت گروهی جدید",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -228,7 +228,9 @@
|
||||
"minimap": {
|
||||
"jumpToMessage": "メッセージ {{index}} へジャンプ",
|
||||
"nextMessage": "次のメッセージ",
|
||||
"previousMessage": "前のメッセージ"
|
||||
"previousMessage": "前のメッセージ",
|
||||
"senderAssistant": "アシスタント",
|
||||
"senderUser": "あなた"
|
||||
},
|
||||
"newAgent": "新しいエージェント",
|
||||
"newGroupChat": "新しいグループチャットを作成",
|
||||
|
||||
@@ -228,7 +228,9 @@
|
||||
"minimap": {
|
||||
"jumpToMessage": "{{index}}번째 메시지로 이동",
|
||||
"nextMessage": "다음 메시지",
|
||||
"previousMessage": "이전 메시지"
|
||||
"previousMessage": "이전 메시지",
|
||||
"senderAssistant": "도우미",
|
||||
"senderUser": "당신"
|
||||
},
|
||||
"newAgent": "새 도우미",
|
||||
"newGroupChat": "새 그룹 채팅 만들기",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -228,7 +228,9 @@
|
||||
"minimap": {
|
||||
"jumpToMessage": "Перейти к сообщению № {{index}}",
|
||||
"nextMessage": "Следующее сообщение",
|
||||
"previousMessage": "Предыдущее сообщение"
|
||||
"previousMessage": "Предыдущее сообщение",
|
||||
"senderAssistant": "Ассистент",
|
||||
"senderUser": "Вы"
|
||||
},
|
||||
"newAgent": "Создать помощника",
|
||||
"newGroupChat": "Создать групповой чат",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -228,7 +228,9 @@
|
||||
"minimap": {
|
||||
"jumpToMessage": "跳转至第 {{index}} 条消息",
|
||||
"nextMessage": "下一条消息",
|
||||
"previousMessage": "上一条消息"
|
||||
"previousMessage": "上一条消息",
|
||||
"senderAssistant": "助手",
|
||||
"senderUser": "你"
|
||||
},
|
||||
"newAgent": "新建助手",
|
||||
"newGroupChat": "新建群聊",
|
||||
|
||||
@@ -228,7 +228,9 @@
|
||||
"minimap": {
|
||||
"jumpToMessage": "跳轉至第 {{index}} 條訊息",
|
||||
"nextMessage": "下一條訊息",
|
||||
"previousMessage": "上一條訊息"
|
||||
"previousMessage": "上一條訊息",
|
||||
"senderAssistant": "助理",
|
||||
"senderUser": "您"
|
||||
},
|
||||
"newAgent": "新建助手",
|
||||
"newGroupChat": "建立群組",
|
||||
|
||||
+28
-9
@@ -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>
|
||||
|
||||
@@ -247,6 +247,8 @@ export default {
|
||||
jumpToMessage: '跳转至第 {{index}} 条消息',
|
||||
nextMessage: '下一条消息',
|
||||
previousMessage: '上一条消息',
|
||||
senderAssistant: '助手',
|
||||
senderUser: '你',
|
||||
},
|
||||
|
||||
newAgent: '新建助手',
|
||||
|
||||
Reference in New Issue
Block a user