F NAV - Pestañas de navegación móvil

Actualización rápida sobre mi Fork de “F-NAV para Móvil” con Botón Atrás, Submenú Personalizado y Controles de Visibilidad

¿Por qué este fork?

  • Proporciona un botón de “Atrás” en la cabecera de las páginas de temas que imita la UX común de las aplicaciones móviles
  • Ofrece un tipo de pestaña “customMenu” que abre un submenú configurable (ideal para enlazar a múltiples destinos; lo usamos para añadir enlaces pre-rellenados personalizados de “Nuevo Tema”)
  • Añade visibilidad basada en grupos a pestañas y elementos de menú, para que puedas mostrar ciertos elementos solo al personal, etc.
  • Pequeñas correcciones con algunas deprecaciones y pulido de estilos/accesibilidad
Resumen de las nuevas características añadidas
  • Icono de Atrás en la Cabecera (opcional)
    • Reemplaza el logo de inicio de la cabecera con una flecha hacia atrás en las páginas de temas
    • Comportamiento: retrocede si hay historial, de lo contrario, navega a “/”
    • Activa/desactiva con la configuración: header_back_icon_enabled
  • Tipo de pestaña Submenú Personalizado
    • Nueva función f_nav_tabs: customMenu
    • Nueva configuración: f_nav_submenu_items
      • Configura elementos de menú con etiqueta y URL (icono opcional)
      • Ideal para acceso rápido a múltiples páginas desde una sola pestaña
  • Controles de visibilidad basados en grupos
    • Las pestañas, los elementos del submenú y los profile_extra_items se pueden limitar a grupos seleccionados
    • Comportamiento:
      • Grupos vacíos => visibles para todos
      • Si se establecen grupos => solo los miembros de al menos un grupo seleccionado pueden ver
      • Los usuarios anónimos no pueden ver los elementos restringidos
  • Opcional: Ocultar la barra de navegación en las páginas de temas
    • Activa/desactiva con la configuración: hide_nav_in_topic
  • Artefactos de “build” comprimidos y documentación de pruebas
    • Artefactos de build de conveniencia (v1–v5) en builds/
    • TESTING_GUIDE.md y TEST_RESULTS.md documentando la validación manual

Mejoras a características existentes

  • Elementos y pestañas de F‑NAV
    • Añade el getter visibleTabs para respetar la visibilidad de grupo
    • Integra el nuevo componente CustomSubmenu en el flujo de FNavItem
  • Avatar/menú de perfil en la cabecera
    • La detección de vista móvil se ha movido al componente, mejorando el comportamiento y resolviendo advertencias
    • Los elementos extra del perfil ahora admiten visibilidad basada en grupos
  • Estilo y accesibilidad
    • Nuevo SCSS para el submenú personalizado y el icono de atrás
    • Estados consistentes de hover/activo/focus-visible
    • Radio de borde consistente con variables principales; relleno/espaciado refinado (por ejemplo, relleno del botón atrás establecido en 0)

Correcciones de errores y mantenimiento

  • Resuelve las advertencias de deprecación de site.mobileView moviendo las comprobaciones de los inicializadores a la renderización del componente
  • Corrige un caso límite de renderización moviendo una función fuera del bloque
  • Pequeño pulido para igualar los comportamientos de la cabecera de Discourse (estados hover/activo, transiciones de opacidad)
  • Pequeñas limpiezas de CSS (por ejemplo, asegurar que el relleno del botón atrás sea cero, evitar cambios accidentales de tamaño)

Comparación de alto nivel (Rama Original vs. Fork)

  • Original (main): pestañas móviles F‑NAV + importación opcional de chat; sin botón de atrás ni submenú personalizado
  • Fork (feat/home-logo-arrow-back):
    • Añade la característica del icono de atrás en la cabecera con fallback de enrutamiento
    • Introduce la función de pestaña “customMenu” con elementos de submenú configurables
    • Añade visibilidad restringida por grupos para pestañas, elementos de submenú y elementos de perfil
    • Opcionalmente oculta el F‑NAV en las páginas de temas
    • Mejora la accesibilidad y la consistencia de los estados de interacción
    • Proporciona documentación de pruebas y builds empaquetados

Notas:

  • Este componente se dirige a versiones recientes de Discourse que admiten el nivel 1.14+ de la API de Plugins de Discourse (como se indica en los inicializadores)
  • Si dependes de la visibilidad basada en grupos, asegúrate de que tus grupos y membresías estén configurados primero

Advertencia: Por favor, prueba con precaución ya que no soy un programador, y el TC fue creado y probado completamente con IA. Funciona mejor con 3.6beta1.

¡Un saludo a Don por este gran componente; es una adición fantástica! :heart:

2 Me gusta