import { User, Clock, ChevronRight } from 'lucide-react'; import Input from '@/ui/Input'; import Heading from '@/ui/Heading'; import CountrySelect from '@/ui/CountrySelect'; export interface PersonalInfo { firstName: string; lastName: string; displayName: string; country: string; timezone: string; } interface FormErrors { [key: string]: string | undefined; } interface PersonalInfoStepProps { personalInfo: PersonalInfo; setPersonalInfo: (info: PersonalInfo) => void; errors: FormErrors; loading: boolean; } const TIMEZONES = [ { value: 'America/New_York', label: 'Eastern Time (ET)' }, { value: 'America/Chicago', label: 'Central Time (CT)' }, { value: 'America/Denver', label: 'Mountain Time (MT)' }, { value: 'America/Los_Angeles', label: 'Pacific Time (PT)' }, { value: 'Europe/London', label: 'Greenwich Mean Time (GMT)' }, { value: 'Europe/Berlin', label: 'Central European Time (CET)' }, { value: 'Europe/Paris', label: 'Central European Time (CET)' }, { value: 'Australia/Sydney', label: 'Australian Eastern Time (AET)' }, { value: 'Asia/Tokyo', label: 'Japan Standard Time (JST)' }, { value: 'America/Sao_Paulo', label: 'Brasília Time (BRT)' }, ]; export function PersonalInfoStep({ personalInfo, setPersonalInfo, errors, loading }: PersonalInfoStepProps) { return (
Personal Information

Tell us a bit about yourself

setPersonalInfo({ ...personalInfo, firstName: e.target.value }) } error={!!errors.firstName} errorMessage={errors.firstName} placeholder="John" disabled={loading} />
setPersonalInfo({ ...personalInfo, lastName: e.target.value }) } error={!!errors.lastName} errorMessage={errors.lastName} placeholder="Racer" disabled={loading} />
setPersonalInfo({ ...personalInfo, displayName: e.target.value }) } error={!!errors.displayName} errorMessage={errors.displayName} placeholder="SpeedyRacer42" disabled={loading} />
setPersonalInfo({ ...personalInfo, country: value }) } error={!!errors.country} errorMessage={errors.country ?? ''} disabled={loading} />
); }