import computed from 'ember-addons/ember-computed-decorators'; import { categoryBadgeHTML } from 'discourse/helpers/category-link'; import { iconHTML } from 'discourse-common/lib/icon-library'; export default Ember.Component.extend({ elementId: 'suggested-topics', @computed('topic') suggestedTitle(topic) { return topic.get('isPrivateMessage') ? `${iconHTML('envelope', { class: 'private-message-glyph' })} ${I18n.t("suggested_topics.pm_title")}` : I18n.t("suggested_topics.title"); }, @computed('topic', 'topicTrackingState.messageCount') browseMoreMessage(topic) { // TODO decide what to show for pms if (topic.get('isPrivateMessage')) { return; } const opts = { latestLink: `${I18n.t("topic.view_latest_topics")}` }; let category = topic.get('category'); if (category && Em.get(category, 'id') === Discourse.Site.currentProp("uncategorized_category_id")) { category = null; } if (category) { opts.catLink = categoryBadgeHTML(category); } else { opts.catLink = "" + I18n.t("topic.browse_all_categories") + ""; } const unreadTopics = this.topicTrackingState.countUnread(); const newTopics = this.topicTrackingState.countNew(); if (newTopics + unreadTopics > 0) { const hasBoth = unreadTopics > 0 && newTopics > 0; return I18n.messageFormat("topic.read_more_MF", { "BOTH": hasBoth, "UNREAD": unreadTopics, "NEW": newTopics, "CATEGORY": category ? true : false, latestLink: opts.latestLink, catLink: opts.catLink }); } else if (category) { return I18n.t("topic.read_more_in_category", opts); } else { return I18n.t("topic.read_more", opts); } }, });