From 14684d8e75bfc9113657de6678dec7c03aeba7a1 Mon Sep 17 00:00:00 2001 From: David Hill Date: Tue, 17 Feb 2026 15:02:06 +0000 Subject: [PATCH] tweak(ui): refine user message hover meta Moves the interrupted state into the user message hover metadata and updates the copy tooltip to 'Copy message'. --- packages/ui/src/components/message-part.tsx | 17 +++++++++-------- packages/ui/src/i18n/ar.ts | 1 + packages/ui/src/i18n/br.ts | 1 + packages/ui/src/i18n/bs.ts | 1 + packages/ui/src/i18n/da.ts | 1 + packages/ui/src/i18n/de.ts | 1 + packages/ui/src/i18n/en.ts | 1 + packages/ui/src/i18n/es.ts | 1 + packages/ui/src/i18n/fr.ts | 1 + packages/ui/src/i18n/ja.ts | 1 + packages/ui/src/i18n/ko.ts | 1 + packages/ui/src/i18n/no.ts | 1 + packages/ui/src/i18n/pl.ts | 1 + packages/ui/src/i18n/ru.ts | 1 + packages/ui/src/i18n/th.ts | 1 + packages/ui/src/i18n/zh.ts | 1 + packages/ui/src/i18n/zht.ts | 1 + 17 files changed, 25 insertions(+), 8 deletions(-) diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 55db971b5..bdd323b71 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -562,7 +562,13 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp const meta = createMemo(() => { const agent = props.message.agent - const items = [agent ? agent[0]?.toUpperCase() + agent.slice(1) : "", provider(), model(), stamp()] + const items = [ + agent ? agent[0]?.toUpperCase() + agent.slice(1) : "", + provider(), + model(), + stamp(), + props.interrupted ? i18n.t("ui.message.interrupted") : "", + ] return items.filter((x) => !!x).join(" \u00B7 ") }) @@ -618,18 +624,13 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp
- - - {i18n.t("ui.message.interrupted")} - - {meta()} @@ -642,7 +643,7 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp event.stopPropagation() handleCopy() }} - aria-label={copied() ? i18n.t("ui.message.copied") : i18n.t("ui.message.copy")} + aria-label={copied() ? i18n.t("ui.message.copied") : i18n.t("ui.message.copyMessage")} />
diff --git a/packages/ui/src/i18n/ar.ts b/packages/ui/src/i18n/ar.ts index f4d6c8788..c17692675 100644 --- a/packages/ui/src/i18n/ar.ts +++ b/packages/ui/src/i18n/ar.ts @@ -97,6 +97,7 @@ export const dict = { "ui.message.expand": "توسيع الرسالة", "ui.message.collapse": "طي الرسالة", "ui.message.copy": "نسخ", + "ui.message.copyMessage": "نسخ الرسالة", "ui.message.copied": "تم النسخ!", "ui.message.interrupted": "تمت المقاطعة", "ui.message.attachment.alt": "مرفق", diff --git a/packages/ui/src/i18n/br.ts b/packages/ui/src/i18n/br.ts index 2dda9d92b..1cb98c67c 100644 --- a/packages/ui/src/i18n/br.ts +++ b/packages/ui/src/i18n/br.ts @@ -97,6 +97,7 @@ export const dict = { "ui.message.expand": "Expandir mensagem", "ui.message.collapse": "Recolher mensagem", "ui.message.copy": "Copiar", + "ui.message.copyMessage": "Copiar mensagem", "ui.message.copied": "Copiado!", "ui.message.interrupted": "Interrompido", "ui.message.attachment.alt": "anexo", diff --git a/packages/ui/src/i18n/bs.ts b/packages/ui/src/i18n/bs.ts index 21e9e5354..31670ad79 100644 --- a/packages/ui/src/i18n/bs.ts +++ b/packages/ui/src/i18n/bs.ts @@ -101,6 +101,7 @@ export const dict = { "ui.message.expand": "Proširi poruku", "ui.message.collapse": "Sažmi poruku", "ui.message.copy": "Kopiraj", + "ui.message.copyMessage": "Kopiraj poruku", "ui.message.copied": "Kopirano!", "ui.message.interrupted": "Prekinuto", "ui.message.attachment.alt": "prilog", diff --git a/packages/ui/src/i18n/da.ts b/packages/ui/src/i18n/da.ts index 9d8221698..ecc575013 100644 --- a/packages/ui/src/i18n/da.ts +++ b/packages/ui/src/i18n/da.ts @@ -96,6 +96,7 @@ export const dict = { "ui.message.expand": "Udvid besked", "ui.message.collapse": "Skjul besked", "ui.message.copy": "Kopier", + "ui.message.copyMessage": "Kopier besked", "ui.message.copied": "Kopieret!", "ui.message.interrupted": "Afbrudt", "ui.message.attachment.alt": "vedhæftning", diff --git a/packages/ui/src/i18n/de.ts b/packages/ui/src/i18n/de.ts index 09d5141e3..0935ecfa5 100644 --- a/packages/ui/src/i18n/de.ts +++ b/packages/ui/src/i18n/de.ts @@ -100,6 +100,7 @@ export const dict = { "ui.message.expand": "Nachricht erweitern", "ui.message.collapse": "Nachricht reduzieren", "ui.message.copy": "Kopieren", + "ui.message.copyMessage": "Nachricht kopieren", "ui.message.copied": "Kopiert!", "ui.message.interrupted": "Unterbrochen", "ui.message.attachment.alt": "Anhang", diff --git a/packages/ui/src/i18n/en.ts b/packages/ui/src/i18n/en.ts index b89fea3c3..86ab63506 100644 --- a/packages/ui/src/i18n/en.ts +++ b/packages/ui/src/i18n/en.ts @@ -97,6 +97,7 @@ export const dict = { "ui.message.expand": "Expand message", "ui.message.collapse": "Collapse message", "ui.message.copy": "Copy", + "ui.message.copyMessage": "Copy message", "ui.message.copied": "Copied", "ui.message.interrupted": "Interrupted", "ui.message.attachment.alt": "attachment", diff --git a/packages/ui/src/i18n/es.ts b/packages/ui/src/i18n/es.ts index 6dbf9f599..b611e49f3 100644 --- a/packages/ui/src/i18n/es.ts +++ b/packages/ui/src/i18n/es.ts @@ -97,6 +97,7 @@ export const dict = { "ui.message.expand": "Expandir mensaje", "ui.message.collapse": "Colapsar mensaje", "ui.message.copy": "Copiar", + "ui.message.copyMessage": "Copiar mensaje", "ui.message.copied": "¡Copiado!", "ui.message.interrupted": "Interrumpido", "ui.message.attachment.alt": "adjunto", diff --git a/packages/ui/src/i18n/fr.ts b/packages/ui/src/i18n/fr.ts index 6a6114dc1..8080deac9 100644 --- a/packages/ui/src/i18n/fr.ts +++ b/packages/ui/src/i18n/fr.ts @@ -97,6 +97,7 @@ export const dict = { "ui.message.expand": "Développer le message", "ui.message.collapse": "Réduire le message", "ui.message.copy": "Copier", + "ui.message.copyMessage": "Copier le message", "ui.message.copied": "Copié !", "ui.message.interrupted": "Interrompu", "ui.message.attachment.alt": "pièce jointe", diff --git a/packages/ui/src/i18n/ja.ts b/packages/ui/src/i18n/ja.ts index 7cce41666..356dc9b0f 100644 --- a/packages/ui/src/i18n/ja.ts +++ b/packages/ui/src/i18n/ja.ts @@ -96,6 +96,7 @@ export const dict = { "ui.message.expand": "メッセージを展開", "ui.message.collapse": "メッセージを折りたたむ", "ui.message.copy": "コピー", + "ui.message.copyMessage": "メッセージをコピー", "ui.message.copied": "コピーしました!", "ui.message.interrupted": "中断", "ui.message.attachment.alt": "添付ファイル", diff --git a/packages/ui/src/i18n/ko.ts b/packages/ui/src/i18n/ko.ts index 108f98ae9..2eb8597b3 100644 --- a/packages/ui/src/i18n/ko.ts +++ b/packages/ui/src/i18n/ko.ts @@ -97,6 +97,7 @@ export const dict = { "ui.message.expand": "메시지 펼치기", "ui.message.collapse": "메시지 접기", "ui.message.copy": "복사", + "ui.message.copyMessage": "메시지 복사", "ui.message.copied": "복사됨!", "ui.message.interrupted": "중단됨", "ui.message.attachment.alt": "첨부 파일", diff --git a/packages/ui/src/i18n/no.ts b/packages/ui/src/i18n/no.ts index 70c5df5b0..9921ed460 100644 --- a/packages/ui/src/i18n/no.ts +++ b/packages/ui/src/i18n/no.ts @@ -100,6 +100,7 @@ export const dict: Record = { "ui.message.expand": "Utvid melding", "ui.message.collapse": "Skjul melding", "ui.message.copy": "Kopier", + "ui.message.copyMessage": "Kopier melding", "ui.message.copied": "Kopiert!", "ui.message.interrupted": "Avbrutt", "ui.message.attachment.alt": "vedlegg", diff --git a/packages/ui/src/i18n/pl.ts b/packages/ui/src/i18n/pl.ts index f017ac880..31bf71e0a 100644 --- a/packages/ui/src/i18n/pl.ts +++ b/packages/ui/src/i18n/pl.ts @@ -96,6 +96,7 @@ export const dict = { "ui.message.expand": "Rozwiń wiadomość", "ui.message.collapse": "Zwiń wiadomość", "ui.message.copy": "Kopiuj", + "ui.message.copyMessage": "Kopiuj wiadomość", "ui.message.copied": "Skopiowano!", "ui.message.interrupted": "Przerwano", "ui.message.attachment.alt": "załącznik", diff --git a/packages/ui/src/i18n/ru.ts b/packages/ui/src/i18n/ru.ts index 81e3f9fb5..cb9e62105 100644 --- a/packages/ui/src/i18n/ru.ts +++ b/packages/ui/src/i18n/ru.ts @@ -96,6 +96,7 @@ export const dict = { "ui.message.expand": "Развернуть сообщение", "ui.message.collapse": "Свернуть сообщение", "ui.message.copy": "Копировать", + "ui.message.copyMessage": "Копировать сообщение", "ui.message.copied": "Скопировано!", "ui.message.interrupted": "Прервано", "ui.message.attachment.alt": "вложение", diff --git a/packages/ui/src/i18n/th.ts b/packages/ui/src/i18n/th.ts index 238b03782..bd6de1463 100644 --- a/packages/ui/src/i18n/th.ts +++ b/packages/ui/src/i18n/th.ts @@ -97,6 +97,7 @@ export const dict = { "ui.message.expand": "ขยายข้อความ", "ui.message.collapse": "ย่อข้อความ", "ui.message.copy": "คัดลอก", + "ui.message.copyMessage": "คัดลอกข้อความ", "ui.message.copied": "คัดลอกแล้ว!", "ui.message.interrupted": "ถูกขัดจังหวะ", "ui.message.attachment.alt": "ไฟล์แนบ", diff --git a/packages/ui/src/i18n/zh.ts b/packages/ui/src/i18n/zh.ts index 5f6eaaaeb..11733e9c8 100644 --- a/packages/ui/src/i18n/zh.ts +++ b/packages/ui/src/i18n/zh.ts @@ -101,6 +101,7 @@ export const dict = { "ui.message.expand": "展开消息", "ui.message.collapse": "收起消息", "ui.message.copy": "复制", + "ui.message.copyMessage": "复制消息", "ui.message.copied": "已复制!", "ui.message.interrupted": "已中断", "ui.message.attachment.alt": "附件", diff --git a/packages/ui/src/i18n/zht.ts b/packages/ui/src/i18n/zht.ts index c413fe8cd..8e756de22 100644 --- a/packages/ui/src/i18n/zht.ts +++ b/packages/ui/src/i18n/zht.ts @@ -101,6 +101,7 @@ export const dict = { "ui.message.expand": "展開訊息", "ui.message.collapse": "收合訊息", "ui.message.copy": "複製", + "ui.message.copyMessage": "複製訊息", "ui.message.copied": "已複製!", "ui.message.interrupted": "已中斷", "ui.message.attachment.alt": "附件",