Js.composer.reply_placeholder se aplica tanto a Nuevos Temas como a Respuestas

Descripción del problema

El texto js.compser.reply_placeholder parece estar vinculado al texto en el compositor cuando se crea un tema, a pesar de ser específico para respuestas.

¿Cómo reproducir?

Esto se puede ver comparando una versión modificada del texto de marcador de posición con el compositor.

Algunas correcciones que se me ocurren

Una corrección podría ser cambiar el nombre del marcador de posición; sin embargo, nos encantaría tener la opción de modificar los marcadores de posición de respuestas y creaciones por separado.

¿Por qué serían útiles los marcadores de posición de creación y respuesta?

Como se muestra a continuación, hemos comenzado a usar el siguiente texto de marcador de posición para temas nuevos. Sin embargo, esta guía no tiene sentido en el contexto de una respuesta.


image

Si la solución a esto resultara en un marcador de posición tanto para respuestas como para creaciones, podríamos proporcionar una guía JIT mejorada para todos los usuarios (lo que sería increíble para comunidades de soporte como la nuestra).

2 Me gusta

Quizás el código en este tema te ayude

2 Me gusta

:heart: Ese es un gran hallazgo. Lo probé rápidamente y parece separar muy bien la respuesta y crear marcadores de posición. Me encantaría ver este cambio implementado en el núcleo, pero estoy muy feliz de usar los cambios proporcionados por Joe. Gracias por enlazar esto @Moin

4 Me gusta

Como seguimiento, el fragmento de código publicado por Joe no funcionó como se esperaba con nuestro nuevo botón de tema: cuando un usuario crea un nuevo tema mientras estaba leyendo un tema, recibiría el texto de respuesta.

A continuación, se presenta un enfoque alternativo que:

  • Presenta un marcador de posición para nuevos temas, ya sea que se inicien en la página de Categorías o dentro de un tema
  • Presenta un marcador de posición diferente para las respuestas.
<script type="text/discourse-plugin" version="0.8">
// Marcadores de posición personalizados
const placeHolderForReplies = `Al ayudar a alguien más:

1. Describe cuál crees que es el problema
2. Dile qué crees que debería hacer
3. Muéstrale cómo hacerlo (fragmentos de código, imágenes, etc.)
4. Incluye enlaces y referencias `;

const placeHolderForNewTopics = `Escribe aquí.

1. Cuéntanos qué intentas hacer.
2. Cuéntanos qué ya intentaste.
3. Publica los registros de errores como fragmentos de código.`;

// Importar módulos necesarios
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) {
    // Determinar si el compositor es para responder o para crear un nuevo tema
    if (creatingTopic) {
      return "composer.custom_topic_placeholder";  // Marcador de posición para nuevo tema
    } else if (replyingToTopic) {
      return "composer.custom_reply_placeholder";  // Marcador de posición para respuesta
    }
    return this._super(...arguments);  // Volver al comportamiento predeterminado
  }
});

</script>

2 Me gusta

También está

3 Me gusta