La función ‘atrás’ en Safari/iOS (iPhone 8, última versión de iOS) es poco fiable; al pasar de la lista de temas a un tema, a menudo no te devuelve a la posición correcta en la lista. En mi propio foro, esto ocurre casi siempre. En Meta, a veces funciona para mí, pero con más frecuencia no lo hace. Esto sucede tanto al hacer clic en el botón ‘atrás’ como al deslizar hacia la derecha.
Por curiosidad, ¿funciona en modo seguro?
Lo siento, olvidé mencionarlo: probé el modo seguro tanto en mi propio foro como aquí en Meta, con el mismo resultado.
¿En la aplicación del centro de iOS o en Safari móvil nativo? No puedo replicar ningún problema usando el botón de retroceso o el deslizar hacia atrás desde la lista de temas aquí en Meta.
¿Tienes pasos específicos para replicarlo?
Ah, espera, puedo replicarlo para el deslizar hacia atrás, pero no para el botón de retroceso. El deslizar hacia atrás no parece recordar la posición real del desplazamiento en la lista de temas, pero el botón de retroceso siempre lo hace.
En Safari móvil nativo. Al principio tenía la sensación de que estaba relacionado con la actualización de la lista de temas, pero parece que no es así. En Meta, me ocurre el 100% de las veces.
Pasos para reproducir:
- Inicia sesión en Meta
- Recarga la página principal de Meta (este paso parece no ser necesario, pero quería descartar el problema de actualización de la lista de temas)
- Desplázate una página hacia abajo
- Selecciona un tema
- Desliza hacia la derecha o haz clic en volver
También probé lo siguiente, todos con el mismo resultado:
- Desactivé el bloqueador de anuncios Crystal en la protección de contenido.
- Abrí Meta en una pestaña privada sin iniciar sesión.
- Realicé pruebas en un iPhone SE.
- Realicé pruebas en Chrome en un Galaxy S6.
Eso parece reproducirse en mi caso @eviltrout… ¿quizás hayamos tenido un retroceso aquí? @j.jaffeux?
Esto debería solucionarlo:
Los detalles están en el mensaje del commit. Esperaremos la aprobación de Robin antes de fusionarlo la próxima semana. Gracias por el informe detallado ![]()
Esto está fusionado, avísame cómo va, por favor.
Este tema se cerró automáticamente 3 días después de la última respuesta. Ya no se permiten nuevas respuestas.
Tras una conversación con @bartv, investigué más y descubrí que efectivamente existe una regresión.
Creo que proviene de:
Básicamente, en este caso, scrollOnLoad está indefinido:
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/components/topic-list.js.es6#L71
Sugiero la siguiente solución:
¿Podrías revisarlo la próxima semana, @markvanlan?
@bartv Acabo de fusionar la segunda corrección; por favor, avísame cómo va cuando tengas un momento.
Como nota al margen, me pregunto si no podríamos mejorar aún más esta lógica. Por ahora, guarda la posición de un tema en cada desplazamiento de página, pero especialmente en móviles puede significar que, al volver, el tema en el que hiciste clic no esté en la vista, aunque no esté muy lejos.
Acabo de probarlo aquí en Meta, pero no me funciona: cuando toco ‘atrás’ desde un tema, vuelvo al principio de la lista de temas.
Y +1 para volver a la posición exacta en la lista de temas.
A mí sí me funciona. Por favor, haz un video cuando tengas tiempo.
Lo he añadido a mi publicación. Espero que ayude. Avísame si necesitas que incluya otras cosas.
Lo que muestra el video es lo esperado: no se realizó un «desplazamiento de página», es decir, no se cargaron más temas, por lo que no se actualizó la posición del último tema visto.
Esto es lo que mi nota lateral proponía para mejorar.
¡Ah, puedo confirmar que SÍ funciona cuando haces scroll hacia abajo lo suficiente para forzar la carga de nuevos temas! No esperaba esa limitación; como usuario, es un poco confusa e inconsistente.
Sí, tampoco me gusta mucho, por eso propuse que lo mejoráramos. Pero, por lo que sé, esto no es una regresión como las otras cosas que arreglé.
Maldita sea, efectivamente hubo otra regresión en este commit y creo que esto debería solucionarlo:
¡y traerá el comportamiento del que estábamos hablando!