mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Use scheduleOnce correctly (#8865)
* DEV: Use scheduleOnce correctly * remove jquery usage here
This commit is contained in:
parent
926d5f1c0a
commit
6f52bbefb8
@ -10,34 +10,13 @@ export default class ComponentConnector {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
const $elem = $(
|
const elem = document.createElement("div");
|
||||||
'<div style="display: inline-flex;" class="widget-component-connector"></div>'
|
elem.style.display = "inline-flex";
|
||||||
);
|
elem.className = "widget-component-connector";
|
||||||
const elem = $elem[0];
|
this.elem = elem;
|
||||||
const { opts, widget, componentName } = this;
|
scheduleOnce("afterRender", this, this.connectComponent);
|
||||||
|
|
||||||
scheduleOnce("afterRender", this, () => {
|
return this.elem;
|
||||||
const mounted = widget._findView();
|
|
||||||
|
|
||||||
const view = widget.register
|
|
||||||
.lookupFactory(`component:${componentName}`)
|
|
||||||
.create(opts);
|
|
||||||
|
|
||||||
if (setOwner) {
|
|
||||||
setOwner(view, getOwner(mounted));
|
|
||||||
}
|
|
||||||
|
|
||||||
// component connector is not triggering didReceiveAttrs
|
|
||||||
// we force it for selectKit components
|
|
||||||
if (view.selectKit) {
|
|
||||||
view.didReceiveAttrs();
|
|
||||||
}
|
|
||||||
|
|
||||||
mounted._connected.push(view);
|
|
||||||
view.renderer.appendTo(view, $elem[0]);
|
|
||||||
});
|
|
||||||
|
|
||||||
return elem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update(prev) {
|
update(prev) {
|
||||||
@ -56,6 +35,27 @@ export default class ComponentConnector {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
connectComponent() {
|
||||||
|
const { elem, opts, widget, componentName } = this;
|
||||||
|
|
||||||
|
const mounted = widget._findView();
|
||||||
|
const view = widget.register
|
||||||
|
.lookupFactory(`component:${componentName}`)
|
||||||
|
.create(opts);
|
||||||
|
|
||||||
|
if (setOwner) {
|
||||||
|
setOwner(view, getOwner(mounted));
|
||||||
|
}
|
||||||
|
|
||||||
|
// component connector is not triggering didReceiveAttrs
|
||||||
|
// we force it for selectKit components
|
||||||
|
if (view.selectKit) {
|
||||||
|
view.didReceiveAttrs();
|
||||||
|
}
|
||||||
|
mounted._connected.push(view);
|
||||||
|
view.renderer.appendTo(view, elem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ComponentConnector.prototype.type = "Widget";
|
ComponentConnector.prototype.type = "Widget";
|
||||||
|
Loading…
Reference in New Issue
Block a user