The ‘back’ function in Safari/iOS (iPhone 8, latest iOS version) is unreliable; when going from the topic list to a topic, it will often not take you back to the correct position in the topic list. On my own forum this happens pretty much always. On Meta, it sometimes works for me, but more often it doesn’t. This happens both when clicking the ‘back’ button and when swiping to the right.
Out of curiosity does it work in safe mode ?
Sorry I forgot to mention that: I tested safe mode both on my own forum and here on Meta with the same result.
In the iOS hub app or in native mobile safari? I can’t repro any problem using the back button or back swipe from the topic list here on meta.
Do you have specific repro steps?
Oh wait, I can repro for back swipe, but not back button. Back swipe doesn’t seem to remember the actual scroll position in the topic list, but back button always does.
In native mobile safari. At first I had a hunch it was related to the topic list refreshing, but that doesn’t seem to be the case. It happens 100% of the time for me on Meta now.
Repro steps:
- Log in to Meta
- Reload the Meta homepage (this step doesn’t seem necessary but I wanted to rule out the topic list refresh issue)
- Scroll one page down
- Select a topic
- Swipe right or click back
I also tried the following, all with the same result:
- Disabled the Crystal ad blocker in content blocking.
- Opened Meta in a private tab without logging in.
- Tested on an iPhone SE.
- Tested in Chrome on a Galaxy S6
That does seem to repro for me @eviltrout … perhaps we regressed here? @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!