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! ![]()