diff --git a/apps/edr-passenger-web/portal/src/app/booking/passengers/page.tsx b/apps/edr-passenger-web/portal/src/app/booking/passengers/page.tsx index e443ccf07..814a5009e 100644 --- a/apps/edr-passenger-web/portal/src/app/booking/passengers/page.tsx +++ b/apps/edr-passenger-web/portal/src/app/booking/passengers/page.tsx @@ -568,9 +568,8 @@ function createFormSchema(adultCount: number) { // Contact fields are only collected from — and validated against — adults. // Children's phone/email are inherited from the primary adult, not user-entered. if (isAdult) { - if (!p.email || p.email.trim().length === 0) { - ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'Email is required', path: ['passengers', i, 'email'] }); - } else { + // Email is optional — only validate its format when the user actually provides one. + if (p.email && p.email.trim().length > 0) { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailRegex.test(p.email)) { ctx.addIssue({ code: z.ZodIssueCode.custom, message: 'Invalid email format', path: ['passengers', i, 'email'] }); @@ -1191,7 +1190,7 @@ export default function PassengersPage() { {/* Email */}
- + - +