// Multi-step Pre-arrival request form const { useState: useStateF, useMemo: useMemoF } = React; function PreArrivalForm({ t }) { const [step, setStep] = useStateF(0); const [data, setData] = useStateF({ facility: "", tail: "", aircraftType: "", regCountry: "", eta: "", etd: "", pax: "", crew: "", services: [], notes: "", name: "", org: "", email: "", phone: "", contactPref: t.prearrival.contactOptions[2], }); const [errors, setErrors] = useStateF({}); const [submitted, setSubmitted] = useStateF(false); const update = (k, v) => { setData(d => ({ ...d, [k]: v })); if (errors[k]) setErrors(e => ({ ...e, [k]: null })); }; const toggleService = (s) => { setData(d => ({ ...d, services: d.services.includes(s) ? d.services.filter(x => x !== s) : [...d.services, s] })); }; const validateStep = (s) => { const e = {}; if (s === 0 && !data.facility) e.facility = true; if (s === 1) { if (!data.tail) e.tail = true; if (!data.aircraftType) e.aircraftType = true; } if (s === 2) { if (!data.eta) e.eta = true; } if (s === 4) { if (!data.name) e.name = true; if (!data.email) e.email = true; } setErrors(e); return Object.keys(e).length === 0; }; const next = () => { if (!validateStep(step)) return; if (step < 4) setStep(s => s + 1); else handleSubmit(); }; const back = () => setStep(s => Math.max(0, s - 1)); const handleSubmit = () => { if (!validateStep(4)) return; setSubmitted(true); }; const goStep = (i) => { if (i <= step || submitted) { setStep(i); } }; if (submitted) { return (
REQ-{Math.floor(Math.random() * 90000 + 10000)} · CRM SYNCED

{t.prearrival.successTitle}

{t.prearrival.successLede}

Facility
{data.facility}
Tail
{data.tail}
Type
{data.aircraftType}
ETA · ETD
{data.eta} → {data.etd || "—"}
PAX · Crew
{data.pax || "—"} · {data.crew || "—"}
Services
{data.services.join(", ") || "—"}
Contact
{data.name}, {data.org || "—"}
{data.email} · {data.phone || "—"}
{t.prearrival.successContact}
DXB FBO — +971 4 207 3411 DWC FBO — +971 56 174 3146
); } return (
{/* Stepper */}
{t.prearrival.steps.map((s, i) => ( ))}
{/* Body */}
{step === 0 && (
{t.prearrival.steps[0]}

{t.prearrival.facilityLabel}

{t.prearrival.facilityHelp}

{[ { v: "Dubai International — DXB", code: "OMDB" }, { v: "Dubai World Central — DWC", code: "OMDW" }, ].map((f, i) => ( ))}
{errors.facility &&
{t.prearrival.requiredMsg}
}
)} {step === 1 && (
{t.prearrival.steps[1]}

{t.prearrival.typeLabel}

update("tail", e.target.value.toUpperCase())} /> {errors.tail && {t.prearrival.requiredMsg}}
update("aircraftType", e.target.value)} /> {errors.aircraftType && {t.prearrival.requiredMsg}}
update("regCountry", e.target.value)} />
)} {step === 2 && (
{t.prearrival.steps[2]}

{t.prearrival.eta} / {t.prearrival.etd}

update("eta", e.target.value)} /> {errors.eta && {t.prearrival.requiredMsg}}
update("etd", e.target.value)} />
update("pax", e.target.value)} />
update("crew", e.target.value)} />
)} {step === 3 && (
{t.prearrival.steps[3]}

{t.prearrival.servicesLabel}

{t.prearrival.services.map((s, i) => ( ))}