A função ‘voltar’ no Safari/iOS (iPhone 8, versão mais recente do iOS) é pouco confiável; ao sair da lista de tópicos para um tópico, ela frequentemente não retorna à posição correta na lista. No meu próprio fórum, isso acontece quase sempre. No Meta, às vezes funciona para mim, mas na maioria das vezes não. Isso ocorre tanto ao clicar no botão ‘voltar’ quanto ao deslizar para a direita.
Por curiosidade, isso funciona no modo de segurança?
Desculpe, esqueci de mencionar isso: testei o modo de segurança tanto no meu próprio fórum quanto aqui no Meta, com o mesmo resultado.
No aplicativo do hub iOS ou no Safari móvel nativo? Não consigo reproduzir nenhum problema ao usar o botão voltar ou o gesto de deslizar para trás na lista de tópicos aqui no meta.
Você tem etapas específicas de reprodução?
Ah, espere, consigo reproduzir o deslizar para trás, mas não o botão voltar. O deslizar para trás não parece lembrar a posição real da rolagem na lista de tópicos, mas o botão voltar sempre lembra.
No Safari nativo do mobile. Inicialmente, tive a sensação de que estava relacionado à atualização da lista de tópicos, mas isso não parece ser o caso. Para mim, isso ocorre 100% das vezes no Meta agora.
Passos para reproduzir:
- Faça login no Meta
- Recarregue a página inicial do Meta (este passo parece não ser necessário, mas quis descartar o problema de atualização da lista de tópicos)
- Role uma página para baixo
- Selecione um tópico
- Deslize para a direita ou clique em voltar
Também tentei o seguinte, todos com o mesmo resultado:
- Desativei o bloqueador de anúncios Crystal nas regras de bloqueio de conteúdo.
- Abri o Meta em uma aba anônima sem fazer login.
- Testei em um iPhone SE.
- Testei no Chrome em um Galaxy S6
Isso realmente parece ser reprodutível para mim, @eviltrout.. talvez tenhamos regredido aqui? @j.jaffeux?
Isso deve resolver:
Detalhes na mensagem do commit. Aguardarei a aprovação do Robin antes de mesclar isso na próxima semana. Obrigado pelo relatório detalhado ![]()
Isso foi mesclado, por favor, me avise como está indo.
Este tópico foi automaticamente fechado 3 dias após a última resposta. Novas respostas não são mais permitidas.
Após uma discussão com @bartv, investiguei mais e descobri que há, de fato, uma regressão.
Acho que ela vem de:
Basicamente, neste caso, scrollOnLoad está indefinido:
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/components/topic-list.js.es6#L71
Sugiro a seguinte correção:
Você pode revisar na próxima semana, @markvanlan, por favor?
@bartv Acabei de mesclar a segunda correção. Por favor, me avise como ficou quando tiver um tempo.
Como observação lateral, me pergunto se não poderíamos melhorar ainda mais essa lógica? No momento, ela armazena a posição de um tópico a cada rolagem de página, mas especialmente no mobile, isso pode significar que, ao voltar, o tópico em que você clicou não está na viewport, mesmo que não esteja muito longe.
Aqui testei no Meta, mas não funcionou para mim: ao tocar em ‘voltar’ de um tópico, retorno ao topo da lista de tópicos.
E +1 para retornar à posição exata na lista de tópicos.
Funciona para mim, por favor, faça um vídeo quando tiver tempo.
Eu adicionei ao meu post. Espero que ajude. Me avise se precisar que eu inclua outras coisas.
O que o vídeo mostra é esperado: você não fez um « rolagem de página », ou seja, ele não carregou mais tópicos, então não atualizou a posição do último tópico visto.
É isso que minha nota lateral propôs melhorar.
Ah, posso confirmar que FUNCIONA quando rolo para baixo o suficiente para forçar o carregamento de novos tópicos. Não esperava essa limitação — para um usuário, isso é um pouco confuso/inconsistente.
Sim, eu também não gosto muito disso, por isso sugeri que melhorássemos. Mas, pelo que sei, isso não é uma regressão, ao contrário das outras coisas que corrigi.
Putz, realmente houve outra regressão nesse commit e acho que isso deve resolver:
e trazer o comportamento que estávamos falando!