FIX: Memory Leaks when decorating posts (#7749)

* Remove long-deprecated method

* FIX: Memory Leaks when decorating posts

Previously we'd keep creating mixins dynamically when decorating the
same class.

This code changes the API to recommend an `id` parameter for each
decorator which will avoid leaks. All plugins should be updated to
include this parameter, although if they don't in the meantime it'll
just mean a warning in the console (and a continued leak.)
This commit is contained in:
Robin Ward
2019-06-11 11:21:23 -04:00
committed by Joffrey JAFFEUX
parent 934adb14d2
commit c322cccd53
7 changed files with 81 additions and 47 deletions

View File

@ -2,9 +2,12 @@ import { withPluginApi } from "discourse/lib/plugin-api";
import showModal from "discourse/lib/show-modal";
function initializeDiscourseLocalDates(api) {
api.decorateCooked($elem => {
$(".discourse-local-date", $elem).applyLocalDates();
});
api.decorateCooked(
$elem => {
$(".discourse-local-date", $elem).applyLocalDates();
},
{ id: "discourse-local-date" }
);
api.onToolbarCreate(toolbar => {
toolbar.addButton({