// Modals — SOFIA Chat send, SOFIA Call launch, Schedule call, Submit to client, // Interview kit, Bulk campaign. LIGHT theme. const { useEffect: ueM, useState: usM } = React; // ---------- SOFIA Chat — send WhatsApp ---------- function SofiaChatModal({ open, onClose, candidate, defaultTemplate }) { const toast = useToast(); const [template, setTemplate] = usM(defaultTemplate?.id || 't1'); const [body, setBody] = usM(''); const [phase, setPhase] = usM('compose'); ueM(() => { if (!open) return; const t = DATA.TEMPLATES.find((x) => x.id === template); if (!candidate || !t) return; const text = t.body .replace('{{nombre}}', candidate.name.split(' ')[0]) .replace('{{rol}}', 'Asesor Bilingüe') .replace('{{cliente}}', 'Acme Retail') .replace('{{salario}}', 'USD $950') .replace('{{modalidad}}', 'Híbrido') .replace('{{fecha}}', 'mañana 10:00 am'); setBody(text); }, [open, template, candidate]); ueM(() => { if (open) setPhase('compose'); }, [open]); const send = () => { setPhase('sending'); setTimeout(() => { setPhase('sent'); toast?.push({ title: 'Mensaje enviado vía SOFIA Chat', body: `WhatsApp entregado a ${candidate?.name}.`, tone: 'success', }); setTimeout(() => onClose?.(), 950); }, 1100); }; if (!candidate) return null; return ( } title="Enviar mensaje vía SOFIA Chat" subtitle={`WhatsApp Business · destinatario: ${candidate.name}`} onClose={onClose} />
Plantilla
{DATA.TEMPLATES.map((t) => ( ))}
Vista previa
{candidate.name}
WhatsApp · en línea