DEV: Explicitly allow NavItem customization (#17061)

Allow overriding NavItem's title and displayName. Fixes multiple instances of `computed-property.override` warnings in plugins.
This commit is contained in:
Jarek Radosz 2022-06-13 12:46:04 +02:00 committed by GitHub
parent 8d0c2cd4f8
commit 77632d2d36
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 35 additions and 15 deletions

View File

@ -17,27 +17,47 @@ import { reads } from "@ember/object/computed";
const NavItem = EmberObject.extend({
@discourseComputed("name")
title(name) {
return I18n.t("filters." + name.replace("/", ".") + ".help", {});
title: {
get(name) {
if (this._title) {
return this._title;
}
return I18n.t("filters." + name.replace("/", ".") + ".help", {});
},
set(value) {
this.set("_title", value);
},
},
@discourseComputed("name", "count")
displayName(name, count) {
count = count || 0;
displayName: {
get(name, count) {
if (this._displayName) {
return this._displayName;
}
if (
name === "latest" &&
(!Site.currentProp("mobileView") || this.tagId !== undefined)
) {
count = 0;
}
count = count || 0;
let extra = { count };
const titleKey = count === 0 ? ".title" : ".title_with_count";
if (
name === "latest" &&
(!Site.currentProp("mobileView") || this.tagId !== undefined)
) {
count = 0;
}
return emojiUnescape(
I18n.t(`filters.${name.replace("/", ".") + titleKey}`, extra)
);
let extra = { count };
const titleKey = count === 0 ? ".title" : ".title_with_count";
return emojiUnescape(
I18n.t(`filters.${name.replace("/", ".") + titleKey}`, extra)
);
},
set(value) {
this.set("_displayName", value);
},
},
@discourseComputed("filterType", "category", "noSubcategories", "tagId")