Remplacer les fichiers .gjs - pas possible ?

Bonjour,

Avec une mise à jour récente, l’un de nos composants s’est cassé. Le composant étendait précédemment le bouton de citation en ligne qui était quote-button.hbs. Ce fichier n’existe plus - à la place, tout le code a été déplacé dans un fichier gjs post-text-selection-toolbar.gjs et si j’essaie de le remplacer de l’“ancienne manière”, le navigateur se plaint avec le message suivant.

component-templates.js:62 [discourse/theme-48/discourse/templates/components/post-text-selection-toolbar] post-text-selection-toolbar a été créé avec gjs et son template ne peut pas être remplacé. Ignorer le remplacement.

Cela signifie-t-il que cette partie de l’interface utilisateur dans Discourse ne peut être ciblée que par les PluginOutlets définis là-bas ?

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

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

Et si j’avais besoin de plus de contrôle sur l’état des boutons et des nouveaux ajoutés. J’ai l’impression que cela limite les fonctionnalités.

Quelqu’un sait comment gérer ce cas ?

3 « J'aime »

Bonjour :waving_hand:

Je pense que c’est possible maintenant avec api.renderInOutlet ?

5 « J'aime »

Salut @Sören_Geier - c’est exact, vous devrez utiliser des points de connexion de plugin pour apporter des modifications à cette partie de l’interface utilisateur. Les points de connexion de plugin sont un moyen beaucoup plus robuste d’étendre les choses et seront plus fiables lors des mises à jour du cœur de Discourse.

Si les points de connexion de plugin existants ne conviennent pas à votre cas d’utilisation, veuillez nous en informer et nous serons heureux d’envisager d’en introduire de nouveaux.

Dans ce cas, la proposition dans DEV: Add outlet and API for adding/controlling post selection buttons by keegangeorge · Pull Request #23782 · discourse/discourse · GitHub pourrait vous intéresser. Elle introduit un « point de connexion de plugin wrapper » qui permettra aux thèmes/plugins de remplacer totalement l’implémentation de base s’ils en ont besoin.

C’est une autre façon de rendre des éléments dans les points de connexion de plugin, oui. Mais c’est plutôt une question de style de code - cela n’introduit en fait aucune nouvelle fonctionnalité par rapport aux fichiers /connectors/....

7 « J'aime »