// CONTACTO — Formulario de cotización interactivo + WhatsApp + Formspree
const projectTypes = [
'Sistema a medida', 'Aplicación web', 'App móvil',
'E-commerce', 'Alojamiento web', 'Migración / mantenimiento', 'Capacitación',
];
const budgetRanges = ['< S/ 10K', 'S/ 10K – 30K', 'S/ 30K – 80K', 'S/ 80K+', 'Por definir'];
// 🔧 Configuración de envío
const WHATSAPP_NUMBER = '51979771040'; // +51 979 771 040
const MAIL_ENDPOINT = 'api/send.php'; // ruta al script PHP que envía vía SMTP de Hostinger
function Contact() {
const [form, setForm] = React.useState({
name: '', email: '', company: '', message: '',
type: 'Sistema a medida', budget: 'Por definir',
});
const [step, setStep] = React.useState(0);
const [sent, setSent] = React.useState(false);
const [sending, setSending] = React.useState(false);
const update = (k, v) => setForm(prev => ({ ...prev, [k]: v }));
const onSubmit = async (e) => {
e.preventDefault();
setSending(true);
// 1) Construir mensaje completo para WhatsApp (incluye TODOS los campos)
const lines = [
'*Nueva solicitud de cotización — TecnoEducando*',
'',
`· *Nombre:* ${form.name || '—'}`,
`· *Email:* ${form.email || '—'}`,
`· *Empresa:* ${form.company || '—'}`,
`· *Tipo de proyecto:* ${form.type}`,
`· *Presupuesto:* ${form.budget}`,
'',
'*Descripción del sistema:*',
form.message || '(sin descripción)',
].join('\n');
const waUrl = `https://wa.me/${WHATSAPP_NUMBER}?text=${encodeURIComponent(lines)}`;
// 2) Enviar copia por correo vía SMTP (api/send.php). Si falla, no bloquea WhatsApp.
let mailOk = false;
try {
const res = await fetch(MAIL_ENDPOINT, {
method: 'POST',
headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },
body: JSON.stringify({
name: form.name, email: form.email, company: form.company,
type: form.type, budget: form.budget, message: form.message,
website: '', // honeypot anti-spam
}),
});
if (res.ok) {
const data = await res.json().catch(() => ({}));
mailOk = !!data.ok;
}
} catch (err) { /* silencioso — WhatsApp es el canal principal */ }
// 3) Abrir WhatsApp con el mensaje pre-llenado
window.open(waUrl, '_blank', 'noopener,noreferrer');
setSending(false);
setSent(true);
};
return (
Recibe una propuesta técnica con alcance, estimación de horas y plan de implementación en menos de 72 horas hábiles. Sin compromiso.
Cuéntanos qué quieres construir.