rontend v1.3.6:

CORREGIDO: Sistema anti-duplicados para webhooks de respuestas
Agregado lastSaveTimestamp ref para rastrear el último guardado de cada pregunta
Validación: Si se intenta guardar la misma pregunta en menos de 1 segundo, se ignora
Logs en consola cuando se detecta y previene un guardado duplicado
This commit is contained in:
2025-12-08 09:11:50 -03:00
parent 49d3ef9db1
commit 7fd37d0992
5 changed files with 58 additions and 3 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "checklist-frontend",
"private": true,
"version": "1.3.5",
"version": "1.3.6",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -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.5';
const CACHE_NAME = 'ayutec-v1.3.6';
const urlsToCache = [
'/',
'/index.html'

View File

@@ -4247,6 +4247,9 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0)
const [aiAnalyzing, setAiAnalyzing] = useState(false)
// Sistema anti-duplicados: rastrear último guardado por pregunta
const lastSaveTimestamp = useRef({})
// AI Assistant Chat
const [showAIChat, setShowAIChat] = useState(false)
const [aiChatMessages, setAiChatMessages] = useState([])
@@ -4419,6 +4422,17 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
return
}
// ANTI-DUPLICADOS: Verificar si se guardó en el último segundo
const now = Date.now()
const lastSave = lastSaveTimestamp.current[questionId] || 0
if (now - lastSave < 1000) {
console.log(`⏭️ Saltando guardado duplicado para pregunta ${questionId} (última guardada hace ${now - lastSave}ms)`)
return
}
// Marcar timestamp de guardado
lastSaveTimestamp.current[questionId] = now
try {
const token = localStorage.getItem('token')
const API_URL = import.meta.env.VITE_API_URL || ''

View File

@@ -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.5
Ayutec v1.3.6
</p>
</a>
</div>