$(document).ready(function() {
const $chatToggle = $('#chat-toggle');
const $chatBox = $('#chatBox');
const $closeChat = $('#closeChat');
const $chatMessages = $('#chatMessages');
const $userInput = $('#userInput');
const thisClass = this;
$chatToggle.on('click', function() {
$chatBox.css("display", "flex");
setTimeout(() => {
$chatBox.css({
opacity: 1,
transform: "translateY(0)"
});
}, 10);
$userInput.focus();
});
$closeChat.on('click', function() {
$chatBox.css({
opacity: 0,
transform: "translateY(40px)"
});
setTimeout(() => {
$chatBox.css("display", "none");
}, 350);
});
window.sendMessage = async function() {
const text = $.trim($userInput.val());
if (!text) return;
appendMessage(text, 'user');
$userInput.val('');
/* Mostrar "escribiendo..." */
const $typing = $('
Lexi está escribiendo...
');
$chatMessages.append($typing);
$chatMessages.scrollTop($chatMessages[0].scrollHeight);
try {
var formData = new FormData();
formData.append('email', PreSettings["email"]);
formData.append('userMessage', text);
const response = await fetch('api/ia/chat', {
method: 'POST',
headers: {
'Authorization': PreSettings["token"]
},
body: formData
});
if (!response.ok) throw new Error('Error al conectar con la API');
const data = await response.json();
$typing.remove();
/* Mostrar la respuesta de Lía (propiedad "reply" del PHP) */
appendMessage(data.reply, 'bot');
} catch (error) {
console.error(error);
$typing.remove();
appendMessage('⚠️ Error al conectar con la IA. Intenta nuevamente más tarde.', 'bot');
}
}
/* Función auxiliar para agregar mensajes */
function appendMessage(text, sender) {
const $msg = $('').addClass('message ' + sender).html(text);
$chatMessages.append($msg);
$chatMessages.scrollTop($chatMessages[0].scrollHeight);
}
/* Si quieres enviar al presionar Enter: */
$("#userInput").on('keypress', function(e) {
if (e.which === 13) {
e.preventDefault();
sendMessage();
}
});
});