diff --git a/app/assets/javascripts/discourse/app/components/composer-editor.js b/app/assets/javascripts/discourse/app/components/composer-editor.js index aca1f7cd047..6817ed6353e 100644 --- a/app/assets/javascripts/discourse/app/components/composer-editor.js +++ b/app/assets/javascripts/discourse/app/components/composer-editor.js @@ -519,8 +519,12 @@ export default class ComposerEditor extends Component { resolveAllShortUrls(ajax, this.siteSettings, preview); } - _decorateCookedElement(preview) { - this.appEvents.trigger("decorate-non-stream-cooked-element", preview); + _decorateCookedElement(preview, helper) { + this.appEvents.trigger( + "decorate-non-stream-cooked-element", + preview, + helper + ); } @debounce(DEBOUNCE_JIT_MS) @@ -896,13 +900,13 @@ export default class ComposerEditor extends Component { } @action - previewUpdated(preview) { + previewUpdated(preview, helper) { this._renderMentions(preview); this._renderHashtags(preview); this._refreshOneboxes(preview); this._expandShortUrls(preview); - this._decorateCookedElement(preview); + this._decorateCookedElement(preview, helper); this.composer.afterRefresh(preview); } diff --git a/app/assets/javascripts/discourse/app/components/composer-messages.js b/app/assets/javascripts/discourse/app/components/composer-messages.js index 223b94df9b7..bc68c9c3027 100644 --- a/app/assets/javascripts/discourse/app/components/composer-messages.js +++ b/app/assets/javascripts/discourse/app/components/composer-messages.js @@ -2,6 +2,7 @@ import { tracked } from "@glimmer/tracking"; import Component from "@ember/component"; import EmberObject, { action } from "@ember/object"; import { not } from "@ember/object/computed"; +import { schedule } from "@ember/runloop"; import { service } from "@ember/service"; import { classNameBindings } from "@ember-decorators/component"; import { ajax } from "discourse/lib/ajax"; @@ -70,8 +71,10 @@ export default class ComposerMessages extends Component { return; } - this.reset(); - this.popup(EmberObject.create(info)); + schedule("actions", () => { + this.reset(); + this.popup(EmberObject.create(info)); + }); } // Resets all active messages. diff --git a/app/assets/javascripts/discourse/app/components/d-editor.hbs b/app/assets/javascripts/discourse/app/components/d-editor.hbs index ae965622c54..38c8a052585 100644 --- a/app/assets/javascripts/discourse/app/components/d-editor.hbs +++ b/app/assets/javascripts/discourse/app/components/d-editor.hbs @@ -71,12 +71,16 @@ + {{! template-lint-disable no-invalid-interactive }}
-
- {{html-safe this.preview}} -
+ { - if ( - this._state !== "inDOM" || - !this.element || - this.isDestroying || - this.isDestroyed - ) { - return; - } - - const previewElement = this.element.querySelector(".d-editor-preview"); - - if (previewElement && this.previewUpdated) { - this.previewUpdated(previewElement); - } - }); + this.preview = cooked; } @observes("ready", "value", "processPreview") @@ -716,7 +694,7 @@ export default class DEditor extends Component { }); }); - observer.observe(document.querySelector(".d-editor-preview"), { + observer.observe(document.querySelector(".d-editor-preview-wrapper"), { childList: true, subtree: true, attributes: false,