import { assessmentColor, assessmentLabel } from '@renderer/utils/reportAssessments'; import { Clock } from 'lucide-react'; import { ReportSection } from '../ReportSection'; import type { KeyEvent, ReportIdleAnalysis, ReportModelSwitches, } from '@renderer/types/sessionReport'; interface TimelineSectionProps { idle: ReportIdleAnalysis; modelSwitches: ReportModelSwitches; keyEvents: KeyEvent[]; } export const TimelineSection = ({ idle, modelSwitches, keyEvents }: TimelineSectionProps) => { const idleColor = assessmentColor(idle.idleAssessment); return ( {/* Idle stats */}
Idle Analysis {assessmentLabel(idle.idleAssessment)}
Idle Gaps
{idle.idleGapCount}
Total Idle
{idle.totalIdleHuman}
Active Time
{idle.activeWorkingHuman}
Idle %
{idle.idlePct}%
{/* Model switches */} {modelSwitches.count > 0 && (
Model Switches ({modelSwitches.count}) {modelSwitches.switchPattern && ( {assessmentLabel(modelSwitches.switchPattern)} )}
{modelSwitches.switches.map((sw, idx) => (
{sw.from} {sw.to} msg #{sw.messageIndex}
))}
)} {/* Key events */} {keyEvents.length > 0 && (
Key Events
{keyEvents.map((event, idx) => (
{event.timestamp.toLocaleTimeString()} {event.label} {event.deltaHuman && ( +{event.deltaHuman} )}
))}
)}
); };