Estou considerando usar a nova visualização Unified New como o feed principal/página inicial do meu site Discourse, mas gostaria que ela se comportasse um pouco mais como o X/Twitter ou o Facebook.
O que estou tentando alcançar é:
-
Um tópico aparece no feed Unified New.
-
O usuário rola a página para baixo e o tópico fica visível em sua área de visualização (viewport).
-
Assim que ele rolar a página além desse ponto, o Discourse considera aquele tópico como “visto” ou dispensado para aquele usuário.
-
Se ele atualizar a página ou voltar para
/newmais tarde, aquele tópico não aparece mais.
Idealmente, não gostaria que a linha desaparecesse imediatamente durante a rolagem, pois isso poderia causar saltos na página. Eu só gostaria que ela fosse marcada como vista/dispensada em segundo plano, para que ela some no próximo carregamento.
Também estou usando o Don’s Topic Preview Modal, que já faz o pré-carregamento (prefetch) dos tópicos ao redor da área de visualização. Por causa disso, eu gostaria de distinguir entre um tópico que está apenas sendo pré-carregado e o usuário realmente vendo-o.
Por exemplo, algo ao longo das linhas de:
O tópico está pelo menos 50% visível por 200–400 ms → marcar como visto → o usuário rola a página além dele → dispensá-lo do Unified New.
Alguém já implementou algo semelhante?
Existe alguma API ou método de front-end existente no Discourse para dispensar um tópico individual do Unified New para o usuário atual, ou isso exigiria um plugin/componente de tema?
Basicamente, estou tentando transformar o Unified New em um feed de rolagem mais personalizado de “coisas que você ainda não viu”, em vez de exigir que o usuário abra cada tópico individualmente.

