¿Puede Unified New descartar temas después de que un usuario los pase por alto?

Estoy considerando usar la nueva vista Unified New como el feed principal o página de inicio de mi sitio de Discourse, pero me gustaría que se comportara un poco más como X/Twitter o Facebook.

Lo que estoy intentando lograr es:

  • Un tema aparece en el feed Unified New.

  • El usuario hace scroll hacia abajo y el tema ha sido visible en su área de visualización (viewport).

  • Una vez que el usuario ha desplazado más allá de él, Discourse considera que ese tema ha sido «visto» o descartado para ese usuario.

  • Si actualizan la página o vuelven a /new más tarde, ese tema ya no aparece.

Idealmente, no querría que la fila desapareciera de inmediato mientras se hace scroll, ya que eso podría causar saltos en la página. Solo querría que se marcara como visto/descartado en segundo plano para que desaparezca en la siguiente carga.

También estoy usando Don’s Topic Preview Modal, que ya realiza la preobtención (prefetch) de temas alrededor del viewport. Por eso, querría distinguir entre un tema que simplemente se ha preobtenido y uno que el usuario está viendo realmente.

Por ejemplo, algo así:

El tema está al menos un 50% visible durante 200–400 ms → marcar como visto → el usuario lo desplaza fuera de la vista → descartarlo de Unified New.

¿Alguien ha implementado algo similar?

¿Existe una API de Discourse o un método de frontend existente para descartar un tema individual de Unified New para el usuario actual, o ¿requeriría esto un componente de plugin/tema?

Básicamente, estoy intentando convertir Unified New en un feed de scroll más personalizado de «cosas que aún no has visto», en lugar de requerir que el usuario abra cada tema individualmente.

4 Me gusta

No creo que esto sea algo que exista actualmente, así que lo moveré a Contribute > Feature.

Aunque las acciones en lote existen, no resulta muy fluido simplemente ‘marcarlas’ mientras haces scroll.

1 me gusta

Ya que el modal de temas ya utiliza la precarga, veré si puedo crear un componente que se cierre una vez que se complete la precarga.

¿Hay alguna forma de mostrar /new como página de inicio solo para usuarios iniciados? Obviamente, los usuarios no iniciados recibirán un error 404.

¿Te ayuda esto?

Puedes cambiar “latest” por “new” aquí. Lo probé y creo que funciona.

También existe Custom Homepage for Groups, que debería funcionar utilizando el grupo trust_level_0, al cual todos los usuarios se agregan automáticamente.

2 Me gusta

Ahora sabía que había una forma más sencilla de hacerlo… solo se trataba de encontrarla.

1 me gusta

Este tema se puede cerrar o eliminar, no entendí bien qué hacía /new, asumí que mostraba publicaciones de las últimas x horas. Claramente no es así, por lo que esto le muestra a los nuevos usuarios una página en blanco.

1 me gusta