Anulando archivos .gjs - ¿no es posible?

Hola,

con una actualización reciente, uno de nuestros componentes se rompió. El componente anteriormente extendía el botón de cita en línea, que era quote-button.hbs. Este archivo ya no existe; en cambio, todo el código se trasladó a un archivo gjs post-text-selection-toolbar.gjs y si intento anularlo de la “manera antigua”, el navegador se queja con el siguiente mensaje.

component-templates.js:62 [discourse/theme-48/discourse/templates/components/post-text-selection-toolbar] post-text-selection-toolbar fue creado usando gjs y su plantilla no puede ser anulada. Ignorando anulación.

¿Significa eso que esta parte de la interfaz de usuario en Discourse solo se puede abordar con los PluginOutlets definidos allí?

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

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

¿Qué pasa si necesitaba más control sobre el estado de los botones y los nuevos que se agregaron? Siento que esto limita la funcionalidad.

¿Alguien sabe cómo manejar ese caso?

3 Me gusta

Hola :waving_hand:

¿Creo que esto ahora es posible con api.renderInOutlet?

5 Me gusta

Hola @Sören_Geier, es correcto, necesitarás usar “plugin outlets” para hacer cambios en esta parte de la interfaz de usuario. Los “plugin outlets” son una forma mucho más robusta de extender las cosas y serán más confiables en las actualizaciones principales de Discourse.

Si los “plugin outlets” existentes no funcionan para tu caso de uso, por favor, háznoslo saber y estaremos encantados de considerar la introducción de nuevos.

En este caso, podrías estar interesado en la propuesta en DEV: Add outlet and API for adding/controlling post selection buttons by keegangeorge · Pull Request #23782 · discourse/discourse · GitHub. Esta introduce un “wrapper plugin outlet” que permitirá a los temas/plugins reemplazar completamente la implementación principal si es necesario.

Esta es una forma alternativa de renderizar cosas en “plugin outlets”, sí. Pero es más una cuestión de estilo de código; en realidad, no introduce ninguna característica nueva en comparación con los archivos /connectors/....

7 Me gusta