Insertar un componente Glimmer después del primer mensaje

Lamento tener que admitir que quizás fui un poco optimista aquí @pfaffman, ¡lo siento! El PR que hice introduciría un nuevo envoltorio <div> entre cada publicación, incluso si la salida no se estuviera utilizando. Eso no es realmente algo que queramos hacer.

Puede haber formas de evitar el envoltorio… pero nada sencillo que podamos hacer de inmediato.

Así que creo que la mejor solución inmediata para ti será copiar la implementación de adplugin a la que hiciste referencia en el OP.

Esencialmente:

  1. Crea un componente (Glimmer o clásico, no importa) que renderice lo que quieras.

  2. Usa registerWidgetShim para hacer que ese componente esté disponible como un widget. El ejemplo de adplugin está creando un widget llamado “after-post-ad”, que renderiza el componente PostBottomAd. Está pasando todos los atributos del widget (@data) al argumento @model del componente.

  3. Usa api.decorateWidget para renderizar tu nuevo widget shim en la posición post:after. En tu caso, dado que solo lo quieres en la primera publicación, podrías hacer algo como:

    api.decorateWidget("post:after", (helper) => {
      if (helper.widget.model.post_number === 1) {
        return helper.attach("my-widget-shim");
      }
    });
    

Cuando finalmente hagamos el “glimmer-ify” de la página del tema, deberás eliminar el widget shim/decoración y reemplazarlo con una salida de plugin. Eso debería ser bastante fácil, ya que toda tu lógica de visualización en el componente será reutilizable en la salida del plugin.

¡Cuéntanos cómo te va! Estaremos encantados de ayudarte con cualquier pregunta de seguimiento; sé que hay muchas partes móviles aquí.

3 Me gusta