From 1a5172c69ae1630f9c874b295cbbf58a335864f1 Mon Sep 17 00:00:00 2001 From: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 10 May 2026 08:40:32 +0000 Subject: [PATCH] fix(web): add title= to truncated text spans (UI audit #1) Adds hover-tooltip affordance for ellipsis-truncated values across: - EntriesTab: symbol, stock_instance_id - AdminTab: env keys/values, bot config keys/values (refactored second block from arrow-fn to block-body to scope displayValue) - HistoryTab: trade reason - MarketOpportunities: symbol (both top and bottom lists) - TradeProfileManager: profile name, profile email Addresses Pattern E in docs/ui/UI_AUDIT.md. Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> EOF --- web/src/components/MarketOpportunities.tsx | 4 ++-- web/src/components/TradeProfileManager.tsx | 4 ++-- web/src/tabs/AdminTab.tsx | 23 ++++++++++++---------- web/src/tabs/EntriesTab.tsx | 4 ++-- web/src/tabs/HistoryTab.tsx | 2 +- 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/web/src/components/MarketOpportunities.tsx b/web/src/components/MarketOpportunities.tsx index dc7d62b..2296399 100644 --- a/web/src/components/MarketOpportunities.tsx +++ b/web/src/components/MarketOpportunities.tsx @@ -29,7 +29,7 @@ export const TopVolatile = ({ botState }: MarketOpportunitiesProps) => { {topSymbols .map(symbol => (
- {symbol} + {symbol} = 0 ? 'success' : 'danger'} size="sm"> {botState.symbols[symbol].change24h >= 0 ? '+' : ''}{botState.symbols[symbol].change24h?.toFixed(2)}% @@ -71,7 +71,7 @@ export const AISetups = ({ botState }: MarketOpportunitiesProps) => { {aiSymbols .map(symbol => (
- {symbol} + {symbol} {botState.symbols[symbol].rules['AIAnalysisRule']?.metadata?.confidence}% Conf diff --git a/web/src/components/TradeProfileManager.tsx b/web/src/components/TradeProfileManager.tsx index ac4ad8a..aceb67d 100644 --- a/web/src/components/TradeProfileManager.tsx +++ b/web/src/components/TradeProfileManager.tsx @@ -666,7 +666,7 @@ export const TradeProfileManager = ({ botState = DEFAULT_BOT_STATE }: TradeProfi
-

{p.name}

+

{p.name}

{email && ( - {email} + {email} )}
diff --git a/web/src/tabs/AdminTab.tsx b/web/src/tabs/AdminTab.tsx index 8b2245b..358d48b 100644 --- a/web/src/tabs/AdminTab.tsx +++ b/web/src/tabs/AdminTab.tsx @@ -562,8 +562,8 @@ export const AdminTab = ({ botState, socket }: AdminTabProps) => { .filter(([key]) => key.startsWith('VITE_') || key === 'MODE') .map(([key, value]) => (
- {key} - + {key} + {String(value)}
@@ -579,14 +579,17 @@ export const AdminTab = ({ botState, socket }: AdminTabProps) => {
{botConfig ? (
- {Object.entries(botConfig).map(([key, value]) => ( -
- {key} - - {Array.isArray(value) ? value.join(', ') : String(value)} - -
- ))} + {Object.entries(botConfig).map(([key, value]) => { + const displayValue = Array.isArray(value) ? value.join(', ') : String(value); + return ( +
+ {key} + + {displayValue} + +
+ ); + })}
) : (
diff --git a/web/src/tabs/EntriesTab.tsx b/web/src/tabs/EntriesTab.tsx index 610cd9a..e5d3211 100644 --- a/web/src/tabs/EntriesTab.tsx +++ b/web/src/tabs/EntriesTab.tsx @@ -165,7 +165,7 @@ export const EntriesTab = ({ botState = DEFAULT_BOT_STATE }: EntriesTabProps) =>
-

{entry.symbol}

+

{entry.symbol}

{entry.is_real_trade ? 'Real' : 'Paper'} @@ -220,7 +220,7 @@ export const EntriesTab = ({ botState = DEFAULT_BOT_STATE }: EntriesTabProps) =>
- {entry.stock_instance_id} + {entry.stock_instance_id}
diff --git a/web/src/tabs/HistoryTab.tsx b/web/src/tabs/HistoryTab.tsx index ea7dc25..579ba7b 100644 --- a/web/src/tabs/HistoryTab.tsx +++ b/web/src/tabs/HistoryTab.tsx @@ -643,7 +643,7 @@ export const HistoryTab = ({ botState }: HistoryTabProps) => {
- + {t.reason}