$(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(); } }); });