Temo di essere stato un po’ troppo ottimista qui @pfaffman, scusa! Il PR che ho fatto introdurrebbe un nuovo wrapper <div> tra ogni singolo post, anche se l’outlet non veniva utilizzato. Non è proprio quello che vogliamo fare.
Potrebbero esserci modi per evitare il wrapper… ma niente di semplice che possiamo fare immediatamente.
Quindi penso che la migliore soluzione immediata per te sarà copiare l’implementazione di adplugin a cui hai fatto riferimento nell’OP.
Essenzialmente:
-
Crea un componente (Glimmer o classico, non importa) che renderizza ciò che desideri
-
Usa
registerWidgetShimper rendere quel componente disponibile come widget. L’esempio di adplugin sta creando un widget chiamato “after-post-ad”, che renderizza il componentePostBottomAd. Sta passando tutti gli attributi del widget(@data)all’argomento@modeldel componente. -
Usa
api.decorateWidgetper renderizzare il tuo nuovo widget shim nella posizionepost:after. Nel tuo caso, dato che lo desideri solo sul primo post, potresti fare qualcosa di simileapi.decorateWidget("post:after", (helper) => { if (helper.widget.model.post_number === 1) { return helper.attach("my-widget-shim"); } });
Quando alla fine faremo il glimmer-ify della pagina dell’argomento, dovrai rimuovere il widget shim/decorazione e sostituirlo con un plugin outlet. Dovrebbe essere abbastanza facile, dato che tutta la tua logica di visualizzazione nel componente sarà riutilizzabile nel plugin outlet.
Facci sapere come va! Felice di aiutarti con qualsiasi domanda di follow-up - so che ci sono molte parti in movimento qui.