import React from 'react'; interface SessionProgress { sessionId: string; currentStep: number; state: string; completedSteps: number[]; hasError: boolean; errorMessage: string | null; } interface SessionProgressMonitorProps { sessionId: string | null; progress: SessionProgress | null; isRunning: boolean; } const STEP_NAMES: { [key: number]: string } = { 1: 'Navigate to Hosted Racing', 2: 'Click Create a Race', 3: 'Fill Race Information', 4: 'Configure Server Details', 5: 'Set Admins', 6: 'Add Admin', 7: 'Set Time Limits', 8: 'Set Cars', 9: 'Add Car', 10: 'Set Car Classes', 11: 'Set Track', 12: 'Add Track', 13: 'Configure Track Options', 14: 'Set Time of Day', 15: 'Configure Weather', 16: 'Set Race Options', 17: 'Configure Team Driving', 18: 'Set Track Conditions' }; export function SessionProgressMonitor({ sessionId, progress, isRunning }: SessionProgressMonitorProps) { const getStateColor = (state: string) => { switch (state) { case 'IN_PROGRESS': return '#0066cc'; case 'COMPLETED': return '#28a745'; case 'FAILED': return '#dc3545'; case 'STOPPED_AT_STEP_18': return '#ffc107'; default: return '#6c757d'; } }; const getStateLabel = (state: string) => { switch (state) { case 'IN_PROGRESS': return 'Running'; case 'COMPLETED': return 'Completed'; case 'FAILED': return 'Failed'; case 'STOPPED_AT_STEP_18': return 'Stopped at Step 18'; default: return state; } }; if (!sessionId && !isRunning) { return (
Configure and start an automation session to see progress here.
Automation stopped at step 18 (Track Conditions) as configured. This prevents accidental session creation during POC demonstration.
{progress.errorMessage}