import { default as computed } from "ember-addons/ember-computed-decorators"; import { PRIVATE_MESSAGE, CREATE_TOPIC, CREATE_SHARED_DRAFT, REPLY, EDIT, EDIT_SHARED_DRAFT } from "discourse/models/composer"; import { iconHTML } from "discourse-common/lib/icon-library"; const TITLES = { [PRIVATE_MESSAGE]: "topic.private_message", [CREATE_TOPIC]: "topic.create_long", [CREATE_SHARED_DRAFT]: "composer.create_shared_draft", [EDIT_SHARED_DRAFT]: "composer.edit_shared_draft" }; export default Ember.Component.extend({ classNames: ["composer-action-title"], options: Ember.computed.alias("model.replyOptions"), action: Ember.computed.alias("model.action"), isEditing: Ember.computed.equal("action", EDIT), @computed("options", "action") actionTitle(opts, action) { if (TITLES[action]) { return I18n.t(TITLES[action]); } switch (action) { case REPLY: if (opts.userAvatar && opts.userLink) { return this._formatReplyToUserPost(opts.userAvatar, opts.userLink); } else if (opts.topicLink) { return this._formatReplyToTopic(opts.topicLink); } case EDIT: if (opts.userAvatar && opts.userLink && opts.postLink) { return this._formatEditUserPost( opts.userAvatar, opts.userLink, opts.postLink, opts.originalUser ); } } }, _formatEditUserPost(userAvatar, userLink, postLink, originalUser) { let editTitle = ` ${postLink.anchor} ${userAvatar} ${userLink.anchor} `; if (originalUser) { editTitle += ` ${iconHTML("share", { class: "reply-to-glyph" })} ${originalUser.avatar} ${originalUser.username} `; } return editTitle.htmlSafe(); }, _formatReplyToTopic(link) { return `${link.anchor}`.htmlSafe(); }, _formatReplyToUserPost(avatar, link) { const htmlLink = `${ link.anchor }`; return `${avatar}${htmlLink}`.htmlSafe(); } });