Le texte js.compser.reply_placeholder semble être lié au texte dans le compositeur lors de la création d’un sujet, bien qu’il soit spécifique aux réponses.
Comment reproduire ?
Cela peut être observé en comparant une version modifiée du texte du placeholder avec le compositeur.
Quelques corrections possibles
Une correction pourrait être de changer le nom du placeholder, cependant nous adorerions avoir la possibilité de modifier séparément les placeholders des réponses et des créations.
Pourquoi les placeholders de création et de réponse seraient-ils utiles ?
Comme montré ci-dessous, nous avons commencé à utiliser le texte du placeholder suivant pour les nouveaux sujets. Cependant, ces instructions n’ont aucun sens dans le contexte d’une réponse.
Si la correction de ce problème entraînait un placeholder pour les réponses et les créations, nous pourrions fournir des instructions JIT améliorées pour tous les utilisateurs (ce qui serait formidable pour les communautés de support comme la nôtre).
C’est une excellente trouvaille. J’ai essayé rapidement et cela semble très bien séparer la réponse et créer des espaces réservés. J’aimerais beaucoup voir ce changement apporté au cœur, mais je suis très heureux d’utiliser les changements apportés par Joe. Merci d’avoir lié ceci @Moin
Pour faire suite, l’extrait de code posté par Joe n’a pas fonctionné comme prévu avec notre nouveau bouton de sujet : lorsqu’un utilisateur crée un nouveau sujet alors qu’il lisait un sujet, il recevait le texte de réponse.
Voici une approche alternative qui :
Présente un espace réservé pour les nouveaux sujets, qu’ils soient lancés depuis la page des catégories ou depuis un sujet
Présente un espace réservé différent pour les réponses
<script type="text/discourse-plugin" version="0.8">
// Custom placeholders
const placeHolderForReplies = `When helping someone else:
1. Describe what you think the problem is
2. Tell them what you think they should do
3. Show them how to do it (code snippets, images, etc)
4. Include links and references `;
const placeHolderForNewTopics = `Type here.
1. Tell us what you're trying to do.
2. Tell us what you already tried.
3. Post error logs as code snippets.`;
// Import required modules
const discourseComputed = require("discourse-common/utils/decorators").default;
const currentLocale = I18n.currentLocale();
I18n.translations[currentLocale].js.composer.custom_reply_placeholder = placeHolderForReplies;
I18n.translations[currentLocale].js.composer.custom_topic_placeholder = placeHolderForNewTopics;
api.modifyClass("component:composer-editor", {
@discourseComputed("composer.replyingToTopic", "composer.creatingTopic")
replyPlaceholder(replyingToTopic, creatingTopic) {
// Determine if the composer is for replying or creating a new topic
if (creatingTopic) {
return "composer.custom_topic_placeholder"; // New topic placeholder
} else if (replyingToTopic) {
return "composer.custom_reply_placeholder"; // Reply placeholder
}
return this._super(...arguments); // Fallback to default behavior
}
});
</script>