From 3b51e05de2aeb0cff547befcfde442f5ceeb329d Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Mon, 6 Jul 2020 17:03:27 +0200 Subject: [PATCH] FIX: CookText may be gone before promise resolves (#10097) * FIX: CookText may be gone before promise resolves Bug introduced in 293467a37ae33c5fd8fd40bbfc05bffa578b90ed. * DEV: Drop the window.requireModule in cook-text It was introduced in 2017 in 232311aa8c8e879c98dc061ac1755ee4d0dd9b0f but doesn't seem to be necessary anymore. --- .../discourse/app/components/cook-text.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/discourse/app/components/cook-text.js b/app/assets/javascripts/discourse/app/components/cook-text.js index 2019954826..be89fc8c62 100644 --- a/app/assets/javascripts/discourse/app/components/cook-text.js +++ b/app/assets/javascripts/discourse/app/components/cook-text.js @@ -1,7 +1,7 @@ -import { next } from "@ember/runloop"; import Component from "@ember/component"; import { cookAsync } from "discourse/lib/text"; import { ajax } from "discourse/lib/ajax"; +import { resolveAllShortUrls } from "pretty-text/upload-short-url"; const CookText = Component.extend({ cooked: null, @@ -10,13 +10,10 @@ const CookText = Component.extend({ this._super(...arguments); cookAsync(this.rawText).then(cooked => { this.set("cooked", cooked); - // no choice but to defer this cause - // pretty text may only be loaded now - next(() => - window - .requireModule("pretty-text/upload-short-url") - .resolveAllShortUrls(ajax, this.siteSettings, this.element) - ); + + if (this.element && !this.isDestroying && !this.isDestroyed) { + return resolveAllShortUrls(ajax, this.siteSettings, this.element); + } }); } });