diff --git a/assets/javascripts/discourse/components/solved-accepted-answer.gjs b/assets/javascripts/discourse/components/solved-accepted-answer.gjs index fda655d..5987f5e 100644 --- a/assets/javascripts/discourse/components/solved-accepted-answer.gjs +++ b/assets/javascripts/discourse/components/solved-accepted-answer.gjs @@ -5,12 +5,13 @@ import { action } from "@ember/object"; import { service } from "@ember/service"; import { htmlSafe } from "@ember/template"; import AsyncContent from "discourse/components/async-content"; +import InterpolatedTranslation from "discourse/components/interpolated-translation"; import PostCookedHtml from "discourse/components/post/cooked-html"; +import UserLink from "discourse/components/user-link"; import concatClass from "discourse/helpers/concat-class"; import icon from "discourse/helpers/d-icon"; import { ajax } from "discourse/lib/ajax"; import escape from "discourse/lib/escape"; -import { iconHTML } from "discourse/lib/icon-library"; import { formatUsername } from "discourse/lib/utilities"; import { i18n } from "discourse-i18n"; @@ -40,10 +41,6 @@ export default class SolvedAcceptedAnswer extends Component { const username = this.acceptedAnswer.accepter_username; const name = this.acceptedAnswer.accepter_name; - if (!this.siteSettings.show_who_marked_solved) { - return; - } - const formattedUsername = this.siteSettings.display_name_on_posts && name ? escape(name) @@ -57,30 +54,45 @@ export default class SolvedAcceptedAnswer extends Component { ); } - get htmlSolvedBy() { + get showMarkedBy() { + return this.siteSettings.show_who_marked_solved; + } + + get showSolvedBy() { + return !(!this.acceptedAnswer.username || !this.acceptedAnswer.post_number); + } + + get postNumber() { + return i18n("solved.accepted_answer_post_number", { + post_number: this.acceptedAnswer.post_number, + }); + } + + get solverUsername() { + return this.acceptedAnswer.username; + } + + get accepterUsername() { + return this.acceptedAnswer.accepter_username; + } + + get solverDisplayName() { const username = this.acceptedAnswer.username; const name = this.acceptedAnswer.name; + + return this.siteSettings.display_name_on_posts && name ? name : username; + } + + get accepterDisplayName() { + const username = this.acceptedAnswer.accepter_username; + const name = this.acceptedAnswer.accepter_name; + + return this.siteSettings.display_name_on_posts && name ? name : username; + } + + get postPath() { const postNumber = this.acceptedAnswer.post_number; - - if (!username || !postNumber) { - return; - } - - const displayedUser = - this.siteSettings.display_name_on_posts && name - ? escape(name) - : formatUsername(username); - - const data = { - icon: iconHTML("square-check", { class: "accepted" }), - username_lower: username.toLowerCase(), - username: displayedUser, - post_path: `${this.topic.url}/${postNumber}`, - post_number: postNumber, - user_path: this.store.createRecord("user", { username }).path, - }; - - return htmlSafe(i18n("solved.accepted_html", data)); + return `${this.topic.url}/${postNumber}`; } @action @@ -119,10 +131,38 @@ export default class SolvedAcceptedAnswer extends Component { >