Modal de temas al estilo de Facebook: ¿es mejor?

Me encantaría probar tu versión @Don :heart_eyes:

Hola :waving_hand:

¡Claro que sí! Originalmente, construí esta función directamente en mi propio tema personalizado, así que tuve que extraerla y dividirla en un componente de tema independiente.

En mi propio sitio, activo el modal mediante un botón dedicado, mientras que este componente de tema lo activa directamente al hacer clic en un tema.

Puedes probarlo en Theme Creator aquí:

Vaya, parece muy rápido. Me gusta mucho. Me interesaría mucho que lo hicieras de código abierto. Buen trabajo.

No he usado el «libro de fotos» en un periodo de tiempo contado en décadas, así que no tengo referencia al respecto, pero de todos modos… Don, esto se ve realmente elegante. No esperaba que me gustara, pero en un teléfono apuesto a que podría ser realmente genial. Otra vez sin referencia a Facebook, pero para mí esto está a mitad de camino entre un foro normal y un chat.

Se ve y se siente muy fluido. Muy genial :chefs_kiss:

Parece que realiza muchas solicitudes de red… Me estoy encontrando constantemente con límites de velocidad al probarlo en el creador de temas. Al parecer, debe obtener todo el contenido de los temas de la lista de temas, incluso si no entras en el tema (lo que explica por qué se siente tan rápido).

Sí, originalmente construí este componente para mi propio sitio, que utiliza un diseño de tarjetas personalizado donde solo caben 1–2 temas en la pantalla a la vez. En esa configuración, la precarga según el viewport funciona sin problemas sin alcanzar los límites de tasa. Sin embargo, en las listas de temas basadas en tablas estándar de Discourse, hay muchos más temas visibles simultáneamente, lo que hace que la cola de precarga se llene mucho más rápido durante el desplazamiento.

Ese es, de hecho, el motivo principal por el que aún no he compartido oficialmente el componente: sabía que este comportamiento necesitaba adaptarse primero para los diseños estándar.

Tienes toda la razón: para que esto sea un componente sólido y de propósito general, necesito optimizarlo.

He añadido algunos ajustes que antes estaban codificados, para que el componente pueda adaptarse fácilmente a diferentes diseños.

¿Hay alguna posibilidad de que lo publiquen como código abierto para que pueda probarlo un poco? :slight_smile: Me gusta :wink:

Creo que esto encajaría mejor con tu tema, seamos honestos, y no con la lista estándar de temas.

Acabo de añadir dos nuevas opciones para hacerlo mucho más flexible en diseños personalizados:

  • trigger_style: Elige entre hacer clickeable toda la fila del tema (row) o añadir un pequeño icono de expansión (button) que abre la vista previa mientras deja el enlace normal del tema intacto.

  • plugin_outlet: Al usar el estilo de botón, puedes especificar la salida de plugin exacta donde se renderiza el icono de expansión (por defecto es topic-list-after-title).

Esto permite que los temas personalizados adjunten el botón activador a sus propias salidas de plugin según sea necesario.

De hecho, acabo de activar este componente independiente exacto en mi sitio. Eliminé por completo mi código original de mi tema y lo reemplacé con este componente ejecutándose a través de <PluginOutlet />.

Además, también corregí un error con la funcionalidad de seguimiento de lectura.

Me gustaría probarlo en un entorno de producción en vivo durante un breve período para asegurarme de que todo es sólido antes de hacerlo de código abierto.


Por cierto, he cambiado temporalmente la vista previa del Creador de Temas al tipo de activador button durante un breve período para que puedas probarlo.