Se quitan respuestas del asistente y se agrega boton de cerrar modal

This commit is contained in:
2025-11-25 15:21:32 -06:00
parent 93c79eee77
commit 29231206c0
3 changed files with 42 additions and 8 deletions

View File

@@ -258,9 +258,6 @@ export default function AIChatModal({ open, onClose, context, onAccept }) {
}
]
};
console.log("handleConversation -> payload:", payload);
const { data: invokeData, error } = await supabase.functions.invoke(
"modal-conversation",
{
@@ -295,9 +292,11 @@ export default function AIChatModal({ open, onClose, context, onAccept }) {
// 3) fallback
assistantText = assistantText || "Sin respuesta del modelo.";
console.log("💬 Respuesta detectada:", assistantText);
setMessages(prev => [
...prev,
{ role: "assistant", content: cleanAssistantResponse(assistantText) }
]);
setMessages(prev => [...prev, { role: "assistant", content: assistantText }]);
setAttachedFiles([]);
setAttachedPreviews([]);
@@ -406,10 +405,42 @@ export default function AIChatModal({ open, onClose, context, onAccept }) {
onClose();
}
};
const cleanAssistantResponse = (text) => {
if (!text) return text;
// Frases que quieres eliminar (puedes agregar más)
const patterns = [
/^claro[, ]*/i,
/^por supuesto[, ]*/i,
/^aquí tienes[, ]*/i,
/^con gusto[, ]*/i,
/^hola[, ]*/i,
/^perfecto[, ]*/i,
/^entendido[, ]*/i,
/^muy bien[, ]*/i,
/^ok[, ]*/i,
];
let cleaned = text.trim();
for (const p of patterns) {
cleaned = cleaned.replace(p, "").trim();
}
return cleaned;
};
return (
<Dialog open={open} onOpenChange={onClose}>
<DialogContent className="max-w-6xl w-[95vw] h-[85vh] p-6 flex flex-col">
<DialogContent className="max-w-6xl w-[95vw] h-[85vh] p-6 flex flex-col relative">
{/* Botón siempre visible */}
<button
onClick={onClose}
className="absolute top-3 right-3 text-gray-400 hover:text-gray-600 transition z-50"
>
</button>
<DialogHeader>
<DialogTitle>Asistente Inteligente</DialogTitle>
</DialogHeader>