export type FormFactor = 'mobile' | 'desktop'; const MOBILE_TOKENS = ['Mobile', 'iPhone', 'iPad', 'Android'] as const; /** * Classify a User-Agent string as 'mobile' or 'desktop'. * Defaults to 'desktop' when the UA is missing or unrecognized — the CSS * media-query fallback in globals.css handles desktop browsers resized below * the lg breakpoint, so a wrong-but-defaultish classification never breaks UX. */ export function classifyFormFactor(userAgent: string | null | undefined): FormFactor { if (!userAgent) return 'desktop'; return MOBILE_TOKENS.some((token) => userAgent.includes(token)) ? 'mobile' : 'desktop'; }