Sovrascrittura dei file .gjs - non possibile?

Ciao,

con un aggiornamento recente uno dei nostri componenti si è rotto. Il componente in precedenza estendeva il pulsante di citazione inline che era quote-button.hbs. Questo file non esiste più - invece tutto il codice è stato spostato in un file gjs post-text-selection-toolbar.gjs e se provo a sovrascriverlo nel “vecchio modo” il browser si lamenta con il seguente messaggio.

component-templates.js:62 [discourse/theme-48/discourse/templates/components/post-text-selection-toolbar] post-text-selection-toolbar è stato creato utilizzando gjs e il suo template non può essere sovrascritto. Ignorando la sovrascrittura.

Ciò significa che questo pezzo di interfaccia utente in Discourse può essere indirizzato solo dai PluginOutlets definiti lì?

  <PluginOutlet
                @name="quote-share-buttons-after"
                @connectorTagName="span"
              />

 <PluginOutlet @name="quote-button-after" @connectorTagName="div" />

Cosa succede se avessi bisogno di un maggiore controllo sullo stato dei pulsanti e sui nuovi pulsanti aggiunti. Sento che questo limita la funzionalità.

Qualcuno sa come gestire questo caso?

3 Mi Piace

Ciao :waving_hand:

Penso che ora sia possibile con api.renderInOutlet?

5 Mi Piace

Ciao @Sören_Geier - è corretto, dovrai usare i plugin outlet per apportare modifiche in questa parte dell’interfaccia utente. I plugin outlet sono un modo molto più robusto per estendere le cose e saranno più affidabili negli aggiornamenti principali di Discourse.

Se i plugin outlet esistenti non funzionano per il tuo caso d’uso, faccelo sapere e saremo lieti di considerare l’introduzione di nuovi.

In questo caso, potresti essere interessato alla proposta in DEV: Add outlet and API for adding/controlling post selection buttons by keegangeorge · Pull Request #23782 · discourse/discourse · GitHub. Questa introduce un ‘wrapper plugin outlet’ che consentirà a temi/plugin di sostituire completamente l’implementazione principale, se necessario.

Questo è un modo alternativo per renderizzare le cose nei Plugin Outlet, sì. Ma è più una questione di stile di codice: non introduce nuove funzionalità rispetto ai file /connectors/....

7 Mi Piace