La cabecera de la marca en el menú móvil no se expande completamente hasta cambiar el tamaño de la ventana

Tenemos un problema en el que el menú de encabezado de marca en la parte superior izquierda solo se expande parcialmente en dispositivos móviles al tocarlo. Lo hemos configurado para que no muestre la barra en dispositivos móviles. Si solo toco el menú de hamburguesa, se ve así.

Pero si luego redimensiono la ventana en cualquier dirección, se expande completamente y muestra todos los subenlaces.

¿Cómo consigo que se expanda completamente al tocarlo sin necesidad de redimensionar la ventana?

He descubierto que en nuestro foro, cuando simplemente hago clic en el menú hamburguesa, la clase “slide-in” no se agrega al div “menu-panel”.

Pero tan pronto como redimensiono la ventana, se agrega y el menú funciona correctamente.

Por lo que puedo ver, “menu-panel” y “slide-in” no provienen de nuestro tema. Pero parece que “slide-in” es importante para que funcione. ¿Por qué no se agregaría “slide-in” cuando se abre el menú? ¿Por qué el redimensionamiento de la ventana del navegador haría que se agregara de repente?

Así es como veo este componente en el móvil sin otros temas instalados:

No tuve que redimensionar para obtener esto, y cuando redimensiono, no obtengo la clase slide-in en absoluto…

Parece que estás en Discourse 3.2, en lugar de la versión actual 3.3. Hay actualizaciones para este componente que dependen de la versión 3.3, por lo que no las estás recibiendo en este momento.

Es posible que actualizar Discourse y el componente solucione todos sus problemas, pero si no es así, puede haber un conflicto con otras personalizaciones.

2 Me gusta

Tienes razón, estamos usando Discourse 3.2.3. Pensé que entendí de esta publicación que el problema también existe en la versión 3.3, pero la tuya se ve bien. Verificaré si es posible que actualicemos a la 3.3, o tal vez instalemos una versión anterior del componente brand-header.

¿Está publicado en algún lugar que el componente requiera la versión 3.3? No veo eso en ninguna parte.

¿Sabes cuándo se realizaron las actualizaciones que dependen de la 3.3? ¿O cuál podría ser la última versión que funcione con la 3.2?

1 me gusta

No lo requiere explícitamente, pero a veces, al hacer actualizaciones, sabemos que dependemos de una función más nueva de Discourse y fijamos el componente temático a una versión anterior de Discourse, lo que impedirá que reciba actualizaciones incompatibles.

Cuando esto se hace, los detalles están en un archivo .discourse-compatibility:

En este caso, estarías fijado al commit con el hash: 12e6f76e0508b262517efd5db2d7feca261dff86, que es DEV: move widgets to dedicated files, cleanup (#28) · discourse/discourse-brand-header@12e6f76 · GitHub

Desde ese cambio, el código del componente ha sido completamente refactorizado debido a cambios en la forma en que funciona la cabecera en Discourse.

Creo que esto resalta un buen problema a considerar, esta información está bastante oculta y es técnica. Quizás podamos añadir un mensaje en el panel de administración que diga que algunos componentes han dejado de recibir actualizaciones porque requieren características de la última versión de Discourse.

2 Me gusta

Hice un fork del componente, lo revertí al commit 12e6f76 y lo instalé en nuestro foro, pero el problema persiste. ¿No debería eso solucionarlo?

No, ese es el commit al que ya estás fijado, te estás perdiendo todo lo que viene después.

1 me gusta

Debo estar entendiendo algo mal. Antes no teníamos este problema. En algún momento, el problema ocurrió porque el componente hizo cambios que requieren Discourse 3.3 y actualizamos el componente, pero todavía estamos usando Discourse 3.2. ¿Es correcto? Si es así, ¿no sería la solución más sencilla revertir a la última versión del componente que funciona con Discourse 3.2?

El componente no habría recibido esos cambios para la versión 3.3. Cuando un componente se fija a una versión específica de Discourse, esencialmente se congela en su estado actual hasta que se actualiza Discourse.

Entonces no deberías necesitar hacer esto… la fijación debería hacer que permanezca automáticamente en la última versión compatible, pero es posible que este error ya existiera en la versión del componente que estás utilizando.

1 me gusta

Entiendo ahora… astuto. ¿Es seguro asumir que el mantenedor no hará ningún esfuerzo para que el componente funcione correctamente con la versión 3.2?

Hice una copia del foro y la actualicé a la versión 3.3 y sí, eso soluciona el problema. Estoy consultando con nuestro administrador para ver si es posible actualizar a la versión 3.3 en el foro principal.

¡Gracias!

1 me gusta

Sí, desafortunadamente, solo tenemos la capacidad de mantener los componentes temáticos en la última versión de Discourse, por lo que esto puede suceder ocasionalmente con versiones anteriores.

Finalmente pudimos actualizar el foro en producción a la versión 3.3 y de repente funciona. ¡Gracias de nuevo!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.