Js.composer.reply_placeholder가 새 주제와 답변 모두에 적용됩니다

문제 설명

js.compser.reply_placeholder 텍스트는 답글에 특화된 텍스트임에도 불구하고, 주제가 생성될 때 작성기(composer)의 텍스트와 연결되어 있는 것으로 보입니다.

재현 방법

수정된 플레이스홀더 텍스트를 작성기와 비교해 보면 이를 확인할 수 있습니다.

떠오르는 몇 가지 수정 방안

플레이스홀더 이름을 변경하는 것이 하나의 수정 방안이 될 수 있지만, 답글과 주제 생성의 플레이스홀더를 각각 독립적으로 수정할 수 있는 옵션을 반드시 가지고 싶습니다.

생성 및 답글 플레이스홀더가 왜 유용할까요?

아래에 표시된 바와 같이, 우리는 새로운 주제에 대해 다음과 같은 플레이스홀더 텍스트를 사용하기 시작했습니다. 그러나 이러한 안내는 답글의 맥락에서는 의미가 없습니다.


image

이 문제에 대한 수정이 답글과 생성 모두에 대한 플레이스홀더로 이어진다면, 모든 사용자에게 개선된 JIT(Just-In-Time) 안내를 제공할 수 있게 됩니다(우리 같은 지원 커뮤니티에는 놀라운 일이 될 것입니다).

2개의 좋아요

이 주제에 있는 코드가 도움이 될 수도 있습니다

2개의 좋아요

:heart: 정말 좋은 발견이네요. 바로 테스트해 봤는데, 답글을 아주 깔끔하게 분리하고 플레이스홀더를 생성하는 것 같아요. 이 변경 사항이 코어에 반영되었으면 좋겠지만, Joe가 제공한 변경 사항을 사용하는 것도 충분히 만족스럽습니다. 링크를 공유해 주셔서 감사합니다 @Moin

4개의 좋아요

추가로 말씀드리면, Joe님이 게시한 코드 스니펫은 새로운 주제 버튼과 함께 예상대로 작동하지 않았습니다. 사용자가 주제를 읽는 중에 새 주제를 생성하면 답글 텍스트가 표시되었습니다.

아래는 대안적인 접근 방식입니다:

  • 카테고리 페이지에서든 주제 내에서든 새 주제를 시작하는 경우 모두 새 주제용 플레이스홀더를 표시합니다.
  • 답글에는 다른 플레이스홀더를 표시합니다.
<script type="text/discourse-plugin" version="0.8">
// Custom placeholders
const placeHolderForReplies = `다른 사람을 도울 때:

1. 문제가 무엇이라고 생각하는지 설명하세요
2. 그들이 무엇을 해야 한다고 생각하는지 알려주세요
3. 어떻게 하는지 보여주세요 (코드 스니펫, 이미지 등)
4. 링크와 참고 자료를 포함하세요 `;

const placeHolderForNewTopics = `여기에 입력하세요.

1. 무엇을 하려는지 알려주세요.
2. 이미 무엇을 시도해 보았는지 알려주세요.
3. 에러 로그를 코드 스니펫으로 게시하세요.`;

// 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>

2개의 좋아요

다음도 있습니다.

3개의 좋아요