import { CountrySelect } from '@/components/shared/CountrySelect'; import { Icon } from '@/ui/Icon'; import { Input } from '@/ui/Input'; import { Grid } from '@/ui/Grid'; import { Stack } from '@/ui/Stack'; import { Select } from '@/ui/Select'; import { Text } from '@/ui/Text'; import { ChevronRight, Clock } from 'lucide-react'; 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 ( First Name * ) => setPersonalInfo({ ...personalInfo, firstName: e.target.value }) } variant={errors.firstName ? 'error' : 'default'} errorMessage={errors.firstName} placeholder="John" disabled={loading} /> Last Name * ) => setPersonalInfo({ ...personalInfo, lastName: e.target.value }) } variant={errors.lastName ? 'error' : 'default'} errorMessage={errors.lastName} placeholder="Racer" disabled={loading} /> Display Name * (shown publicly) ) => setPersonalInfo({ ...personalInfo, displayName: e.target.value }) } variant={errors.displayName ? 'error' : 'default'} errorMessage={errors.displayName} placeholder="SpeedyRacer42" disabled={loading} /> Country * setPersonalInfo({ ...personalInfo, country: value }) } error={!!errors.country} errorMessage={errors.country ?? ''} disabled={loading} /> Timezone