import React, { useState } from 'react'; import type { HostedSessionConfig } from '../../../../packages/automation/domain/types/HostedSessionConfig'; interface SessionCreationFormProps { onSubmit: (config: HostedSessionConfig) => void; disabled: boolean; } export function SessionCreationForm({ onSubmit, disabled }: SessionCreationFormProps) { const [config, setConfig] = useState({ sessionName: 'POC Test Session', serverName: 'POC Server', password: 'test123', adminPassword: 'admin123', maxDrivers: 40, trackId: 'watkins-glen', carIds: ['porsche-911-gt3-r'], weatherType: 'dynamic', timeOfDay: 'afternoon', sessionDuration: 60, practiceLength: 15, qualifyingLength: 10, warmupLength: 5, raceLength: 30, startType: 'standing', restarts: 'single-file', damageModel: 'realistic', trackState: 'auto' }); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); onSubmit(config); }; const inputStyle: React.CSSProperties = { width: '100%', padding: '0.5rem', backgroundColor: '#2a2a2a', border: '1px solid #444', borderRadius: '4px', color: '#e0e0e0', fontSize: '14px' }; const labelStyle: React.CSSProperties = { display: 'block', marginBottom: '0.5rem', color: '#aaa', fontSize: '14px' }; const fieldStyle: React.CSSProperties = { marginBottom: '1rem' }; return (

Session Configuration

setConfig({ ...config, sessionName: e.target.value })} style={inputStyle} disabled={disabled} required />
setConfig({ ...config, serverName: e.target.value })} style={inputStyle} disabled={disabled} required />
setConfig({ ...config, maxDrivers: parseInt(e.target.value) })} style={inputStyle} disabled={disabled} min="1" max="60" required />
setConfig({ ...config, trackId: e.target.value })} style={inputStyle} disabled={disabled} required />
setConfig({ ...config, raceLength: parseInt(e.target.value) })} style={inputStyle} disabled={disabled} min="1" required />

Note: This POC will execute steps 1-18 and stop at step 18 (Track Conditions) for safety. The actual session creation will not be completed.

); }