From 324a89c9d652bf3dd2441fa56c8b52a10aa7e5e2 Mon Sep 17 00:00:00 2001 From: Isaac Janzen <50783505+janzenisaac@users.noreply.github.com> Date: Thu, 12 May 2022 13:17:33 -0500 Subject: [PATCH] DEV: Remove 'capitalize' string prototype extensions (#16738) Context: https://deprecations.emberjs.com/v3.x/#toc_ember-string-prototype_extensions --- .../javascripts/discourse/app/controllers/group.js | 3 ++- .../javascripts/discourse/app/models/bookmark.js | 11 +++++++---- .../app/pre-initializers/dynamic-route-builders.js | 11 ++++++----- .../javascripts/discourse/app/routes/app-route-map.js | 11 ++++++----- .../app/routes/build-private-messages-group-route.js | 3 ++- 5 files changed, 23 insertions(+), 16 deletions(-) diff --git a/app/assets/javascripts/discourse/app/controllers/group.js b/app/assets/javascripts/discourse/app/controllers/group.js index 5ef10c86c2..758c6a5e90 100644 --- a/app/assets/javascripts/discourse/app/controllers/group.js +++ b/app/assets/javascripts/discourse/app/controllers/group.js @@ -4,6 +4,7 @@ import I18n from "I18n"; import bootbox from "bootbox"; import deprecated from "discourse-common/lib/deprecated"; import discourseComputed from "discourse-common/utils/decorators"; +import { capitalize } from "@ember/string"; const Tab = EmberObject.extend({ init() { @@ -102,7 +103,7 @@ export default Controller.extend({ @discourseComputed("model.displayName", "model.full_name") groupName(displayName, fullName) { - return (fullName || displayName).capitalize(); + return capitalize(fullName || displayName); }, @discourseComputed("model.messageable") diff --git a/app/assets/javascripts/discourse/app/models/bookmark.js b/app/assets/javascripts/discourse/app/models/bookmark.js index 5d874499a8..9285ff7ccb 100644 --- a/app/assets/javascripts/discourse/app/models/bookmark.js +++ b/app/assets/javascripts/discourse/app/models/bookmark.js @@ -11,6 +11,7 @@ import { formattedReminderTime } from "discourse/lib/bookmark"; import getURL from "discourse-common/lib/get-url"; import { longDate } from "discourse/lib/formatter"; import { none } from "@ember/object/computed"; +import { capitalize } from "@ember/string"; export const AUTO_DELETE_PREFERENCES = { NEVER: 0, @@ -132,10 +133,12 @@ const Bookmark = RestModel.extend({ @discourseComputed("reminder_at", "currentUser") formattedReminder(bookmarkReminderAt, currentUser) { - return formattedReminderTime( - bookmarkReminderAt, - currentUser.resolvedTimezone(currentUser) - ).capitalize(); + return capitalize( + formattedReminderTime( + bookmarkReminderAt, + currentUser.resolvedTimezone(currentUser) + ) + ); }, @discourseComputed("reminder_at") diff --git a/app/assets/javascripts/discourse/app/pre-initializers/dynamic-route-builders.js b/app/assets/javascripts/discourse/app/pre-initializers/dynamic-route-builders.js index ebfb4bcd69..38bd37bf0e 100644 --- a/app/assets/javascripts/discourse/app/pre-initializers/dynamic-route-builders.js +++ b/app/assets/javascripts/discourse/app/pre-initializers/dynamic-route-builders.js @@ -4,6 +4,7 @@ import TagShowRoute from "discourse/routes/tag-show"; import User from "discourse/models/user"; import buildCategoryRoute from "discourse/routes/build-category-route"; import buildTopicRoute from "discourse/routes/build-topic-route"; +import { capitalize } from "@ember/string"; export default { after: "inject-discourse-objects", @@ -24,7 +25,7 @@ export default { const site = Site.current(); site.get("filters").forEach((filter) => { - const filterCapitalized = filter.capitalize(); + const filterCapitalized = capitalize(filter); app[ `Discovery${filterCapitalized}Controller` ] = DiscoverySortableController.extend(); @@ -66,17 +67,17 @@ export default { }); site.get("filters").forEach(function (filter) { - app["TagShow" + filter.capitalize() + "Route"] = TagShowRoute.extend({ + app["TagShow" + capitalize(filter) + "Route"] = TagShowRoute.extend({ navMode: filter, }); app[ - "TagsShowCategory" + filter.capitalize() + "Route" + "TagsShowCategory" + capitalize(filter) + "Route" ] = TagShowRoute.extend({ navMode: filter }); app[ - "TagsShowCategoryNone" + filter.capitalize() + "Route" + "TagsShowCategoryNone" + capitalize(filter) + "Route" ] = TagShowRoute.extend({ navMode: filter, noSubcategories: true }); app[ - "TagsShowCategoryAll" + filter.capitalize() + "Route" + "TagsShowCategoryAll" + capitalize(filter) + "Route" ] = TagShowRoute.extend({ navMode: filter, noSubcategories: false }); }); }, diff --git a/app/assets/javascripts/discourse/app/routes/app-route-map.js b/app/assets/javascripts/discourse/app/routes/app-route-map.js index 36d3dce271..e26451223f 100644 --- a/app/assets/javascripts/discourse/app/routes/app-route-map.js +++ b/app/assets/javascripts/discourse/app/routes/app-route-map.js @@ -1,4 +1,5 @@ import Site from "discourse/models/site"; +import { capitalize } from "@ember/string"; export default function () { // Error page @@ -29,7 +30,7 @@ export default function () { this.route("discovery", { path: "/", resetNamespace: true }, function () { // top by periods - legacy route Site.currentProp("periods").forEach((period) => { - const top = "top" + period.capitalize(); + const top = "top" + capitalize(period); this.route(top, { path: "/top/" + period }); this.route(top + "CategoryNone", { @@ -215,7 +216,7 @@ export default function () { this.route("show", { path: "/:tag_id" }); Site.currentProp("filters").forEach((filter) => { - this.route("show" + filter.capitalize(), { + this.route("show" + capitalize(filter), { path: "/:tag_id/l/" + filter, }); }); @@ -233,13 +234,13 @@ export default function () { }); Site.currentProp("filters").forEach((filter) => { - this.route("showCategory" + filter.capitalize(), { + this.route("showCategory" + capitalize(filter), { path: "/c/*category_slug_path_with_id/:tag_id/l/" + filter, }); - this.route("showCategoryAll" + filter.capitalize(), { + this.route("showCategoryAll" + capitalize(filter), { path: "/c/*category_slug_path_with_id/all/:tag_id/l/" + filter, }); - this.route("showCategoryNone" + filter.capitalize(), { + this.route("showCategoryNone" + capitalize(filter), { path: "/c/*category_slug_path_with_id/none/:tag_id/l/" + filter, }); }); diff --git a/app/assets/javascripts/discourse/app/routes/build-private-messages-group-route.js b/app/assets/javascripts/discourse/app/routes/build-private-messages-group-route.js index 3f1d2a9d8c..4ec54c92df 100644 --- a/app/assets/javascripts/discourse/app/routes/build-private-messages-group-route.js +++ b/app/assets/javascripts/discourse/app/routes/build-private-messages-group-route.js @@ -1,6 +1,7 @@ import createPMRoute from "discourse/routes/build-private-messages-route"; import I18n from "I18n"; import { findOrResetCachedTopicList } from "discourse/lib/cached-topic-list"; +import { capitalize } from "@ember/string"; export default (inboxType, filter) => { return createPMRoute(inboxType, "private-messages-groups", filter).extend({ @@ -10,7 +11,7 @@ export default (inboxType, filter) => { const groupName = this.groupName; if (groupName) { - let title = groupName.capitalize(); + let title = capitalize(groupName); if (filter !== "inbox") { title = `${title} ${I18n.t("user.messages." + filter)}`;