Update conversations.php

This commit is contained in:
Lizandro Guarnizo
2026-01-23 23:11:03 -05:00
parent a590882063
commit de35d5a7dd
+54 -35
View File
@@ -1685,6 +1685,20 @@
container.scrollTop = container.scrollHeight; container.scrollTop = container.scrollHeight;
} }
// Insertar mensaje saliente en la vista inmediatamente (simular envío)
addMessageToView(content, type = 'outgoing') {
const msg = {
message_id: 'local_' + Date.now(),
direction: type === 'outgoing' ? 'outgoing' : 'incoming',
content: content,
created_at: new Date().toISOString(),
status: 'sent'
};
this.conversations.push(msg);
this.renderconversations();
this.scrollToBottom();
}
async sendMessage() { async sendMessage() {
const input = document.getElementById('message-input'); const input = document.getElementById('message-input');
const message = input.value.trim(); const message = input.value.trim();
@@ -1714,42 +1728,47 @@
return; return;
} }
// send template // send template via helper (match chat_window format)
const resp = await apiCall('send_message.php', { body: { recipient, type: 'template', template_name: template, language: (document.getElementById('templateSelect').selectedOptions[0] ? document.getElementById('templateSelect').selectedOptions[0].dataset.language : 'es') } }); const templateName = template;
if (resp && resp.success) { const language = (document.getElementById('templateSelect').selectedOptions[0] ? document.getElementById('templateSelect').selectedOptions[0].dataset.language : 'es');
showAlert && showAlert('Plantilla enviada', 'success'); await this.sendTemplateMessage(templateName, language, null);
await this.loadconversations(this.currentUserId, false);
await this.loadConversations();
} else {
throw new Error(resp && resp.error ? resp.error : 'Error enviando plantilla');
}
} else { } else {
const response = await fetch('api/send_message.php', { // send text message using recipient (phone number) to match chat_window behavior
method: 'POST', const recipient = this.getConversationPhone(this.currentUserId);
headers: { if (!recipient) {
'Content-Type': 'application/json', alert('No se pudo determinar el número de destino');
}, console.error('sendMessage(text): missing recipient for user', this.currentUserId);
body: JSON.stringify({ return;
user_id: this.currentUserId, }
message: message,
reply_to: replyTo // prepare request body similar to chat_window
}) const requestBody = {
}); recipient: recipient,
// Clear reply data attribute type: 'text',
input.dataset.replyTo = null; message: message
};
const result = await response.json(); if (replyTo) requestBody.reply_to = replyTo;
if (result.success) { try {
input.value = ''; const result = await this.apiCall('send_message.php', { body: requestBody });
// Recargar mensajes // Clear reply data attribute
await this.loadconversations(this.currentUserId, false); input.dataset.replyTo = null;
// Actualizar lista de conversaciones
this.loadConversations(); if (result && result.success) {
// Actualizar respuestas rápidas input.value = '';
await this.loadQuickReplies(); // Mostrar inmediatamente en la vista
} else { this.addMessageToView(message, 'outgoing');
alert('Error al enviar mensaje: ' + (result.error || 'Error desconocido')); showAlert && showAlert('Mensaje enviado correctamente', 'success');
// Recargar mensajes y conversaciones en background
this.loadconversations(this.currentUserId, false).catch(e=>console.warn(e));
this.loadConversations().catch(e=>console.warn(e));
this.loadQuickReplies().catch(e=>console.warn(e));
} else {
throw new Error(result && result.error ? result.error : 'Error desconocido');
}
} catch (err) {
console.error('Error sending text message', err);
alert('Error al enviar mensaje: ' + (err.message || err));
} }
} }
} catch (error) { } catch (error) {