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:
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "checklist-frontend",
|
"name": "checklist-frontend",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.3.5",
|
"version": "1.3.6",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// Service Worker para PWA con detección de actualizaciones
|
// Service Worker para PWA con detección de actualizaciones
|
||||||
// IMPORTANTE: Actualizar esta versión cada vez que se despliegue una nueva versión
|
// 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 = [
|
const urlsToCache = [
|
||||||
'/',
|
'/',
|
||||||
'/index.html'
|
'/index.html'
|
||||||
|
|||||||
@@ -4247,6 +4247,9 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
|
|||||||
const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0)
|
const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0)
|
||||||
const [aiAnalyzing, setAiAnalyzing] = useState(false)
|
const [aiAnalyzing, setAiAnalyzing] = useState(false)
|
||||||
|
|
||||||
|
// Sistema anti-duplicados: rastrear último guardado por pregunta
|
||||||
|
const lastSaveTimestamp = useRef({})
|
||||||
|
|
||||||
// AI Assistant Chat
|
// AI Assistant Chat
|
||||||
const [showAIChat, setShowAIChat] = useState(false)
|
const [showAIChat, setShowAIChat] = useState(false)
|
||||||
const [aiChatMessages, setAiChatMessages] = useState([])
|
const [aiChatMessages, setAiChatMessages] = useState([])
|
||||||
@@ -4419,6 +4422,17 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
|
|||||||
return
|
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 {
|
try {
|
||||||
const token = localStorage.getItem('token')
|
const token = localStorage.getItem('token')
|
||||||
const API_URL = import.meta.env.VITE_API_URL || ''
|
const API_URL = import.meta.env.VITE_API_URL || ''
|
||||||
|
|||||||
@@ -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"
|
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">
|
<p className="text-xs text-indigo-300 font-medium hover:text-indigo-200">
|
||||||
Ayutec v1.3.5
|
Ayutec v1.3.6
|
||||||
</p>
|
</p>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
41
lineas.ps1
Normal file
41
lineas.ps1
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
param(
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[string]$Fecha
|
||||||
|
)
|
||||||
|
|
||||||
|
# Convertir fecha dd/mm/aaaa → yyyy-mm-dd
|
||||||
|
try {
|
||||||
|
$dateObj = [datetime]::ParseExact($Fecha, "dd/MM/yyyy", $null)
|
||||||
|
} catch {
|
||||||
|
Write-Host "❌ Formato inválido. Usa dd/mm/aaaa (ej: 05/12/2025)"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
$FechaISO = $dateObj.ToString("yyyy-MM-dd")
|
||||||
|
|
||||||
|
$desde = "$FechaISO 00:00"
|
||||||
|
$hasta = "$FechaISO 23:59"
|
||||||
|
|
||||||
|
$added = 0
|
||||||
|
$removed = 0
|
||||||
|
|
||||||
|
git log --since="$desde" --until="$hasta" --pretty=tformat: --numstat |
|
||||||
|
ForEach-Object {
|
||||||
|
$cols = $_.Split()
|
||||||
|
|
||||||
|
# Saltar líneas vacías
|
||||||
|
if ($cols.Length -lt 2) { return }
|
||||||
|
|
||||||
|
# Si Git muestra "-", ignorar esta línea
|
||||||
|
if ($cols[0] -eq "-" -or $cols[1] -eq "-") { return }
|
||||||
|
|
||||||
|
# Sumar líneas
|
||||||
|
$added += [int]$cols[0]
|
||||||
|
$removed += [int]$cols[1]
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Fecha ingresada: $Fecha"
|
||||||
|
Write-Host "Fecha usada (ISO): $FechaISO"
|
||||||
|
Write-Host "Líneas añadidas: $added"
|
||||||
|
Write-Host "Líneas eliminadas: $removed"
|
||||||
|
Write-Host "Total neto: " ($added - $removed)
|
||||||
Reference in New Issue
Block a user