J’utilise pour cela un composant de thème simple dans mon instance. Voici une adaptation de la mienne, qui accepte également #upload (une nouvelle réponse ouvrant la fenêtre de téléchargement sur le bureau) et #edit (pour les OP de wiki), en plus de #reply.
Il nécessite quelques améliorations, comme éviter setTimeout et gérer correctement draftSequence (je ne pense pas que topic.draft_sequence soit correct), et je ne sais pas quelle serait la meilleure pratique ici. Cela dit, cela fonctionne bien pour moi.
La navigation vers n’importe quel sujet comme /t/[slug]/[id]#reply ouvrira le compositeur avec une nouvelle réponse vide.
Si vous avez besoin d’un texte prérempli, c’est possible en définissant l’attribut reply sur l’objet passé à composer.open. De plus, s’il existe déjà un brouillon pour ce sujet, il vous demandera si vous souhaitez le sauvegarder ou l’abandonner avant de créer cette nouvelle réponse. draftSequence doit être correct si le comportement souhaité est de reprendre ce brouillon.
<script type="text/discourse-plugin" version="0.4">
if (/.*#reply$/g.test(document.URL)) {
const { REPLY } = require('discourse/models/composer').default;
const composer = Discourse.__container__.lookup('controller:composer');
setTimeout(function() {
const topic = Discourse.__container__.lookup("controller:topic").get("model");
if (topic) {
composer.open({
action: REPLY,
draftKey: topic.draft_key,
draftSequence: topic.draft_sequence,
topic,
});
}
}, 0)
}
</script>
J’espère que cela vous aidera.