fix: version 2.8.2 -- overlay de progreso al actualizar + fix mountedRef en StrictMode

Agrega un overlay de pantalla completa (circulo girando + porcentaje estimado +
"Actualizando...") que bloquea todo clic mientras corre la auto-actualizacion, y recarga la
pagina sola al terminar. De paso corrige un bug real: el useEffect de mountedRef no
reactivaba el flag en su setup, asi que con React.StrictMode (dev) el polling de estado
nunca llegaba a correr -- no afectaba produccion (StrictMode no duplica efectos ahi) pero
ocultaba el problema al probar en dev. Tambien se corrigen un par de voseos que quedaron
en los textos de Actualizaciones.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-10-01 14:33:55 -05:00
parent 8214df62ae
commit d5f3f05470
7 changed files with 79 additions and 13 deletions
+22
View File
@@ -390,6 +390,28 @@ table.list-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.vault-icon-option.brand, .vault-card-icon.brand { background: #fff; }
.vault-icon-option.brand.selected { border-color: rgb(var(--accent)); }
/* --- Overlay de actualizacion (ver UpdaterPanel.jsx) ---
Bloquea toda la pantalla (no solo el panel) mientras corre scripts/apply-update.sh, porque el
backend y el frontend se reinician a mitad de proceso -- cualquier clic en ese rato no tiene
adonde ir. z-index por encima de dialog-overlay/detail-popup-overlay a proposito. */
.update-overlay {
position: fixed; inset: 0; background: rgb(0 0 0 / .7); z-index: 300;
display: flex; align-items: center; justify-content: center;
}
.update-spinner-wrap { position: relative; width: 150px; height: 150px; flex: none; }
.update-spinner-ring {
position: absolute; inset: 0; border-radius: 999px;
border: 6px solid rgb(255 255 255 / .2); border-top-color: rgb(var(--accent));
animation: update-spin 0.9s linear infinite;
}
.update-spinner-center {
position: absolute; inset: 0; display: flex; flex-direction: column; gap: 2px;
align-items: center; justify-content: center; text-align: center; color: #fff;
}
.update-spinner-label { font-size: .78rem; font-weight: 600; opacity: .85; }
.update-spinner-pct { font-size: 1.7rem; font-weight: 700; }
@keyframes update-spin { to { transform: rotate(360deg); } }
/* --- DetailPopup (ver DetailPopup.jsx) ---
Al elegir un item de un listado, la lista queda inactiva detras del overlay y el popup
presenta la pantalla de info/edicion completa. Regla dura: NUNCA se cierra con clic afuera