fix: navbar hover gris (overlayColor) + soporte UI/UX mejorado + políticas en dialog

- Navbar: reemplaza hoverColor deprecated por IconButton.styleFrom(overlayColor)
- Support: rediseño completo con tarjetas, secciones y manejo correcto de URLs vacías
- Políticas/Términos: carga desde GET /settings/policies y muestra en dialog in-app

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-06-27 19:32:11 -05:00
co-authored by Claude Sonnet 4.6
parent d359974de5
commit 97d8535d54
2 changed files with 341 additions and 185 deletions
+10 -5
View File
@@ -39,8 +39,13 @@ class _NavbarState extends State<Navbar> {
final iconColor = isDark ? Colors.white70 : const Color(0xFF475569);
final bgColor = isDark ? const Color(0xFF1E293B) : Colors.white;
final hoverColor = isDark
? Colors.white.withOpacity(0.08)
: const Color(0xFF42A4EF).withOpacity(0.08);
? Colors.white.withOpacity(0.10)
: const Color(0xFF42A4EF).withOpacity(0.10);
final overlayColor = WidgetStateProperty.resolveWith<Color?>((states) {
if (states.contains(WidgetState.hovered)) return hoverColor;
if (states.contains(WidgetState.pressed)) return hoverColor.withOpacity(0.2);
return Colors.transparent;
});
final reputation = scoreProvider.reputation;
final pendingCount =
@@ -63,7 +68,7 @@ class _NavbarState extends State<Navbar> {
if (size.width <= 700)
IconButton(
icon: Icon(Icons.menu, color: iconColor, size: 22),
hoverColor: hoverColor,
style: IconButton.styleFrom(overlayColor: hoverColor),
onPressed: SideMenuProvider.openMenu,
),
@@ -89,7 +94,7 @@ class _NavbarState extends State<Navbar> {
// Toggle día/noche
IconButton(
tooltip: isDark ? 'Modo día' : 'Modo noche',
hoverColor: hoverColor,
style: IconButton.styleFrom(overlayColor: hoverColor),
icon: Icon(
isDark ? Icons.light_mode : Icons.dark_mode,
color: isDark ? Colors.amber : iconColor,
@@ -104,7 +109,7 @@ class _NavbarState extends State<Navbar> {
children: [
IconButton(
tooltip: 'Notificaciones',
hoverColor: hoverColor,
style: IconButton.styleFrom(overlayColor: hoverColor),
icon: Icon(
pendingCount > 0
? Icons.notifications_active