/* global React */ // Slide-over panel: Cargar Avance (Institución Reportante) // HU.2.1 (carga + evidencias), HU.2.2 (historial), HU.2.3 (devolución/ajuste) const { useState: useStateA } = React; function CargarAvancePanel({ open, compromisoId, onClose, onSubmit }) { const I = window.Icons; // Buscar el compromiso si se pasó un id const compromiso = compromisoId ? window.MIS_COMPROMISOS.find(c => c.id === compromisoId) : window.MIS_COMPROMISOS.find(c => c.estadoCiclo === 'returned') || window.MIS_COMPROMISOS[0]; const isReturned = compromiso?.estadoCiclo === 'returned'; const [tab, setTab] = useStateA('avance'); // avance | historial const [descripcion, setDescripcion] = useStateA( isReturned ? 'En atención a la observación, se adjunta la matriz de conciliación específica por dependencia para el 2do trimestre 2025…' : '' ); const [medidas, setMedidas] = useStateA(''); const [resultados, setResultados] = useStateA(''); const [files, setFiles] = useStateA( isReturned ? [{ name: 'matriz_conciliacion_2Q2025.xlsx', size: '224 KB', type: 'xlsx' }] : [] ); const [links, setLinks] = useStateA([]); const [newLink, setNewLink] = useStateA(''); const [obsAtendidas, setObsAtendidas] = useStateA(new Set()); if (!open || !compromiso) return null; const addLink = () => { if (!newLink.trim()) return; setLinks(ls => [...ls, { url: newLink, label: '' }]); setNewLink(''); }; const toggleObs = i => { setObsAtendidas(prev => { const next = new Set(prev); if (next.has(i)) next.delete(i); else next.add(i); return next; }); }; const dueText = compromiso.d < 0 ? `Vencido hace ${Math.abs(compromiso.d)} días` : compromiso.d === 0 ? 'Vence hoy' : `Vence en ${compromiso.d} días`; return (