'use client'; import { FileText, Globe, Lock, Gamepad2 } from 'lucide-react'; import Input from '@/components/ui/Input'; import type { LeagueConfigFormModel, } from '@gridpilot/racing/application'; interface LeagueBasicsSectionProps { form: LeagueConfigFormModel; onChange?: (form: LeagueConfigFormModel) => void; errors?: { name?: string; visibility?: string; }; readOnly?: boolean; } export function LeagueBasicsSection({ form, onChange, errors, readOnly, }: LeagueBasicsSectionProps) { const basics = form.basics; const disabled = readOnly || !onChange; const updateBasics = (patch: Partial) => { if (!onChange) return; onChange({ ...form, basics: { ...form.basics, ...patch, }, }); }; return (
{/* League name */}
updateBasics({ name: e.target.value })} placeholder="e.g., GridPilot Sprint Series" error={!!errors?.name} errorMessage={errors?.name} disabled={disabled} autoFocus />

Choose a clear, memorable name that describes your league

{/* Description */}