From 2d79e192842265904a45c8acecf370a98741ca09 Mon Sep 17 00:00:00 2001 From: Olayinka Adelakun Date: Thu, 18 Jun 2026 15:55:37 -0400 Subject: [PATCH] fix lighthouse errors on panel --- src/frontend/src/components/core/codeTabsComponent/index.tsx | 3 +++ src/frontend/src/locales/de.json | 4 ++++ src/frontend/src/locales/en.json | 4 ++++ src/frontend/src/locales/es.json | 4 ++++ src/frontend/src/locales/fr.json | 4 ++++ src/frontend/src/locales/ja.json | 4 ++++ src/frontend/src/locales/pt.json | 4 ++++ src/frontend/src/locales/zh-Hans.json | 4 ++++ .../src/pages/FlowPage/components/TraceComponent/SpanNode.tsx | 3 +++ 9 files changed, 34 insertions(+) diff --git a/src/frontend/src/components/core/codeTabsComponent/index.tsx b/src/frontend/src/components/core/codeTabsComponent/index.tsx index f188d67395..a6695dc71d 100644 --- a/src/frontend/src/components/core/codeTabsComponent/index.tsx +++ b/src/frontend/src/components/core/codeTabsComponent/index.tsx @@ -1,4 +1,5 @@ import { useState } from "react"; +import { useTranslation } from "react-i18next"; import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; import { oneDark, @@ -19,6 +20,7 @@ export default function SimplifiedCodeTabComponent({ language, maxHeight, }: SimplifiedCodeTabProps) { + const { t } = useTranslation(); const [isCopied, setIsCopied] = useState(false); const dark = useDarkStore((state) => state.dark); @@ -51,6 +53,7 @@ export default function SimplifiedCodeTabComponent({ className="text-muted-foreground hover:bg-card" data-testid="copy-code-button" onClick={copyToClipboard} + aria-label={isCopied ? t("chat.copiedCode") : t("chat.copyCode")} > {isCopied ? ( diff --git a/src/frontend/src/locales/de.json b/src/frontend/src/locales/de.json index 259c3889de..bba45aa9bb 100644 --- a/src/frontend/src/locales/de.json +++ b/src/frontend/src/locales/de.json @@ -217,6 +217,8 @@ "chat.cannotOpenDescription": "Dies ist kein Chat-Ablauf.", "chat.cannotOpenTitle": "Der Chat lässt sich nicht öffnen", "chat.copied": "Kopiert!", + "chat.copyCode": "Copy code", + "chat.copiedCode": "Code copied", "chat.copyMessage": "Nachricht kopieren", "chat.defaultSession": "Standardsitzung", "chat.deleteSessionsCount_one": "{{count}} -Sitzung löschen", @@ -1940,6 +1942,8 @@ "trace.clearAllRecords": "Alle Datensätze löschen", "trace.tableAriaLabel": "Trace runs table", "trace.statusFilterLabel": "Filter by status", + "trace.expandSpan": "Expand span", + "trace.collapseSpan": "Collapse span", "trace.clearDates": "Termine löschen", "trace.clearError": "Fehler beim Löschen von Datensätzen", "trace.clearedSuccess": "Datensätze wurden erfolgreich gelöscht", diff --git a/src/frontend/src/locales/en.json b/src/frontend/src/locales/en.json index 57a949d026..e6cfae746c 100644 --- a/src/frontend/src/locales/en.json +++ b/src/frontend/src/locales/en.json @@ -1327,6 +1327,8 @@ "trace.clearDates": "Clear dates", "trace.tableAriaLabel": "Trace runs table", "trace.statusFilterLabel": "Filter by status", + "trace.expandSpan": "Expand span", + "trace.collapseSpan": "Collapse span", "flow.restoreVersion": "Restore this version of your flow", "flow.saveVersion": "Save a version of your flow", "flow.moreOptions": "More options", @@ -1500,6 +1502,8 @@ "chat.options": "Options", "chat.editMessage": "Edit message", "chat.copied": "Copied!", + "chat.copyCode": "Copy code", + "chat.copiedCode": "Code copied", "chat.copyMessage": "Copy message", "chat.helpful": "Helpful", "chat.notHelpful": "Not helpful", diff --git a/src/frontend/src/locales/es.json b/src/frontend/src/locales/es.json index 2d706e3875..5cba8b38b7 100644 --- a/src/frontend/src/locales/es.json +++ b/src/frontend/src/locales/es.json @@ -217,6 +217,8 @@ "chat.cannotOpenDescription": "Esto no es un flujo de chat.", "chat.cannotOpenTitle": "No se puede abrir el chat", "chat.copied": "Copiado", + "chat.copyCode": "Copy code", + "chat.copiedCode": "Code copied", "chat.copyMessage": "Copiar mensaje", "chat.defaultSession": "Sesión predeterminada", "chat.deleteSessionsCount_one": "Eliminar una sesión de « {{count}} »", @@ -1940,6 +1942,8 @@ "trace.clearAllRecords": "Borrar todos los registros", "trace.tableAriaLabel": "Trace runs table", "trace.statusFilterLabel": "Filter by status", + "trace.expandSpan": "Expand span", + "trace.collapseSpan": "Collapse span", "trace.clearDates": "Borrar fechas", "trace.clearError": "Error al borrar registros", "trace.clearedSuccess": "Los registros se han borrado correctamente", diff --git a/src/frontend/src/locales/fr.json b/src/frontend/src/locales/fr.json index a46d154d01..a87d5aebe4 100644 --- a/src/frontend/src/locales/fr.json +++ b/src/frontend/src/locales/fr.json @@ -217,6 +217,8 @@ "chat.cannotOpenDescription": "Ce n'est pas un flux de conversation.", "chat.cannotOpenTitle": "Impossible d'ouvrir la discussion", "chat.copied": "Copié", + "chat.copyCode": "Copy code", + "chat.copiedCode": "Code copied", "chat.copyMessage": "Copier le message", "chat.defaultSession": "Session par défaut", "chat.deleteSessionsCount_one": "Supprimer la session d' {{count}}", @@ -1940,6 +1942,8 @@ "trace.clearAllRecords": "Effacer tous les enregistrements", "trace.tableAriaLabel": "Trace runs table", "trace.statusFilterLabel": "Filter by status", + "trace.expandSpan": "Expand span", + "trace.collapseSpan": "Collapse span", "trace.clearDates": "Effacer les dates", "trace.clearError": "Erreur lors de la suppression des enregistrements", "trace.clearedSuccess": "Les enregistrements ont été effacés avec succès", diff --git a/src/frontend/src/locales/ja.json b/src/frontend/src/locales/ja.json index 9569499794..3c6a6e53ce 100644 --- a/src/frontend/src/locales/ja.json +++ b/src/frontend/src/locales/ja.json @@ -217,6 +217,8 @@ "chat.cannotOpenDescription": "これはチャットフローではありません。", "chat.cannotOpenTitle": "チャットが開けません", "chat.copied": "コピーされました", + "chat.copyCode": "Copy code", + "chat.copiedCode": "Code copied", "chat.copyMessage": "メッセージをコピーする", "chat.defaultSession": "デフォルトのセッション", "chat.deleteSessionsCount_one": "{{count}} のセッションを削除する", @@ -1940,6 +1942,8 @@ "trace.clearAllRecords": "すべての記録を消去", "trace.tableAriaLabel": "Trace runs table", "trace.statusFilterLabel": "Filter by status", + "trace.expandSpan": "Expand span", + "trace.collapseSpan": "Collapse span", "trace.clearDates": "日付を消去", "trace.clearError": "レコードの削除中にエラーが発生しました", "trace.clearedSuccess": "レコードのクリアに成功しました", diff --git a/src/frontend/src/locales/pt.json b/src/frontend/src/locales/pt.json index 1c954f1fba..e3797e18db 100644 --- a/src/frontend/src/locales/pt.json +++ b/src/frontend/src/locales/pt.json @@ -217,6 +217,8 @@ "chat.cannotOpenDescription": "Isso não é um fluxo de chat.", "chat.cannotOpenTitle": "Não é possível abrir o chat", "chat.copied": "Copiado!", + "chat.copyCode": "Copy code", + "chat.copiedCode": "Code copied", "chat.copyMessage": "Copiar mensagem", "chat.defaultSession": "Sessão padrão", "chat.deleteSessionsCount_one": "Excluir a sessão do {{count}}", @@ -1940,6 +1942,8 @@ "trace.clearAllRecords": "Limpar todos os registros", "trace.tableAriaLabel": "Trace runs table", "trace.statusFilterLabel": "Filter by status", + "trace.expandSpan": "Expand span", + "trace.collapseSpan": "Collapse span", "trace.clearDates": "Limpar datas", "trace.clearError": "Erro ao limpar registros", "trace.clearedSuccess": "Os registros foram apagados com sucesso", diff --git a/src/frontend/src/locales/zh-Hans.json b/src/frontend/src/locales/zh-Hans.json index 087c7ad959..995e200129 100644 --- a/src/frontend/src/locales/zh-Hans.json +++ b/src/frontend/src/locales/zh-Hans.json @@ -217,6 +217,8 @@ "chat.cannotOpenDescription": "这不是一个聊天流程。", "chat.cannotOpenTitle": "无法打开聊天窗口", "chat.copied": "已复制!", + "chat.copyCode": "Copy code", + "chat.copiedCode": "Code copied", "chat.copyMessage": "复制消息", "chat.defaultSession": "默认会话", "chat.deleteSessionsCount_one": "删除 {{count}} 会话", @@ -1940,6 +1942,8 @@ "trace.clearAllRecords": "清除所有记录", "trace.tableAriaLabel": "Trace runs table", "trace.statusFilterLabel": "Filter by status", + "trace.expandSpan": "Expand span", + "trace.collapseSpan": "Collapse span", "trace.clearDates": "清除日期", "trace.clearError": "清除记录时发生错误", "trace.clearedSuccess": "记录已成功清除", diff --git a/src/frontend/src/pages/FlowPage/components/TraceComponent/SpanNode.tsx b/src/frontend/src/pages/FlowPage/components/TraceComponent/SpanNode.tsx index 2a76b25a8f..75dc7303e1 100644 --- a/src/frontend/src/pages/FlowPage/components/TraceComponent/SpanNode.tsx +++ b/src/frontend/src/pages/FlowPage/components/TraceComponent/SpanNode.tsx @@ -1,4 +1,5 @@ import { useMemo } from "react"; +import { useTranslation } from "react-i18next"; import IconComponent from "@/components/common/genericIconComponent"; import useFlowStore from "@/stores/flowStore"; import { cn } from "@/utils/utils"; @@ -22,6 +23,7 @@ export function SpanNode({ onToggle, onSelect, }: SpanNodeProps) { + const { t } = useTranslation(); const nodes = useFlowStore((state) => state.nodes); const componentIconMap = useMemo(() => { const map = new Map(); @@ -71,6 +73,7 @@ export function SpanNode({ }} tabIndex={-1} aria-hidden={!hasChildren} + aria-label={hasChildren ? (isExpanded ? t("trace.collapseSpan") : t("trace.expandSpan")) : undefined} >