From 840ac6bd0afdd038c8cb67472e4bfbe1cf87816c Mon Sep 17 00:00:00 2001 From: David Taylor Date: Wed, 17 Apr 2024 15:19:23 +0100 Subject: [PATCH] DEV: Avoid using @tracked as a decorator in RenderGlimmer object literal Decorators in object literals are non-standard, and we're working to remove them. --- .../discourse/app/widgets/render-glimmer.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/discourse/app/widgets/render-glimmer.js b/app/assets/javascripts/discourse/app/widgets/render-glimmer.js index 983cc589093..e75d9ffa11e 100644 --- a/app/assets/javascripts/discourse/app/widgets/render-glimmer.js +++ b/app/assets/javascripts/discourse/app/widgets/render-glimmer.js @@ -152,13 +152,13 @@ export default class RenderGlimmer { component.name = "Widgets/RenderGlimmer"; setComponentTemplate(template, component); - this._componentInfo = { + this._componentInfo = new ComponentInfo({ element, component, - @tracked data: this.data, + data: this.data, setWrapperElementAttrs: (attrs) => this.updateElementAttrs(element, attrs), - }; + }); this.parentMountWidgetComponent.mountChildComponent(this._componentInfo); } @@ -209,3 +209,14 @@ export function registerWidgetShim(name, tagName, template) { createWidgetFrom(RenderGlimmerShim, name, {}); } + +class ComponentInfo { + @tracked data; + element; + component; + setWrapperElementAttrs; + + constructor(params) { + Object.assign(this, params); + } +}