✅ Frontend v1.3.1
Fix aplicado: Ahora cuando envías una imagen en el chat: Se sube al servidor (S3) El servidor devuelve la URL permanente en attached_files El frontend actualiza el mensaje del usuario reemplazando la blob URL con la URL de S3 Se libera la blob URL antigua para evitar memory leaks
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "checklist-frontend",
|
||||
"private": true,
|
||||
"version": "1.3.0",
|
||||
"version": "1.3.2",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Service Worker para PWA con detección de actualizaciones
|
||||
// IMPORTANTE: Actualizar esta versión cada vez que se despliegue una nueva versión
|
||||
const CACHE_NAME = 'ayutec-v1.3.0';
|
||||
const CACHE_NAME = 'ayutec-v1.3.2';
|
||||
const urlsToCache = [
|
||||
'/',
|
||||
'/index.html'
|
||||
|
||||
@@ -5206,8 +5206,8 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Photos */}
|
||||
{(currentQuestion.photo_requirement !== 'none' || currentQuestion.allow_photos) && (
|
||||
{/* Photos - Solo mostrar si NO es 'none' */}
|
||||
{currentQuestion.photo_requirement !== 'none' && (
|
||||
<div>
|
||||
<label className="block text-sm font-medium text-gray-700 mb-2">
|
||||
Fotografías / Documentos
|
||||
@@ -5713,6 +5713,32 @@ function AIAssistantChatModal({ question, inspection, allAnswers, messages, setM
|
||||
const data = await response.json()
|
||||
console.log('📥 Respuesta de IA:', data)
|
||||
|
||||
// Actualizar el mensaje del usuario con las URLs reales de S3
|
||||
if (data.attached_files && data.attached_files.length > 0) {
|
||||
setMessages(prev => {
|
||||
const updated = [...prev]
|
||||
const lastUserMsgIndex = updated.length - 1
|
||||
if (updated[lastUserMsgIndex].role === 'user' && updated[lastUserMsgIndex].files) {
|
||||
// Reemplazar blob URLs con URLs de S3
|
||||
updated[lastUserMsgIndex].files = updated[lastUserMsgIndex].files.map((file, idx) => {
|
||||
const serverFile = data.attached_files[idx]
|
||||
if (serverFile?.url) {
|
||||
// Liberar blob URL anterior
|
||||
if (file.preview) {
|
||||
URL.revokeObjectURL(file.preview)
|
||||
}
|
||||
return {
|
||||
...file,
|
||||
preview: serverFile.url // Ahora es URL de S3
|
||||
}
|
||||
}
|
||||
return file
|
||||
})
|
||||
}
|
||||
return updated
|
||||
})
|
||||
}
|
||||
|
||||
// Crear mensaje del asistente con archivos adjuntos (usando URLs del servidor)
|
||||
const assistantMessage = {
|
||||
role: 'assistant',
|
||||
|
||||
@@ -153,7 +153,7 @@ export default function Sidebar({ user, activeTab, setActiveTab, sidebarOpen, se
|
||||
className="w-10 h-10 object-contain bg-white rounded p-1"
|
||||
/>
|
||||
<p className="text-xs text-indigo-300 font-medium hover:text-indigo-200">
|
||||
Ayutec v1.3.0
|
||||
Ayutec v1.3.2
|
||||
</p>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user