diff --git a/web/src/components/activity/ActivityFeed.tsx b/web/src/components/activity/ActivityFeed.tsx index 76e7b17c..690a133c 100644 --- a/web/src/components/activity/ActivityFeed.tsx +++ b/web/src/components/activity/ActivityFeed.tsx @@ -504,7 +504,11 @@ function StatusBadge({ status }: { status: string }) { ); } -function StatusHistoryPanel() { +interface StatusHistoryPanelProps { + onTaskClick?: (taskId: string) => void; +} + +function StatusHistoryPanel({ onTaskClick }: StatusHistoryPanelProps) { const { data: history, isLoading } = useStatusHistory(100); // Group by day @@ -564,7 +568,21 @@ function StatusHistoryPanel() { {grouped[day].map((entry) => (
entry.taskId && onTaskClick?.(entry.taskId)} + role={entry.taskId && onTaskClick ? 'button' : undefined} + tabIndex={entry.taskId && onTaskClick ? 0 : undefined} + onKeyDown={(e) => { + if ((e.key === 'Enter' || e.key === ' ') && entry.taskId && onTaskClick) { + e.preventDefault(); + onTaskClick(entry.taskId); + } + }} > {new Date(entry.timestamp).toLocaleTimeString([], { @@ -575,8 +593,14 @@ function StatusHistoryPanel() { - - {entry.taskTitle} + + {entry.taskTitle || '—'} {entry.durationMs && ( @@ -811,7 +835,7 @@ export function ActivityFeed({ onBack, onTaskClick }: ActivityFeedProps) { {/* Status History — 1/3 width */}

Status History

- +