@benev/slate
Version:
frontend web stuff
27 lines • 1.12 kB
JavaScript
import { LightElement } from "../../element/silver.js";
import { usekey } from "../parts/use/parts/utils/usekey.js";
import { UseLightComponent } from "../parts/use/tailored.js";
import { setup_reactivity } from "../parts/setup_reactivity.js";
export const prepare_light_component = ((shell) => (renderer) => class extends LightElement {
#use = new UseLightComponent(this, () => void this.requestUpdate(), shell.context);
#rend = this.#use[usekey].wrap(() => renderer(this.#use));
#reactivity;
render() {
this.updateComplete.then(() => this.#use[usekey].afterRender());
return this.#reactivity?.render();
}
connectedCallback() {
super.connectedCallback();
this.#reactivity = setup_reactivity(this.#rend, () => void this.requestUpdate());
this.#use[usekey].reconnect();
}
disconnectedCallback() {
super.disconnectedCallback();
if (this.#reactivity) {
this.#reactivity.stop();
this.#reactivity = undefined;
}
this.#use[usekey].disconnect();
}
});
//# sourceMappingURL=light_component.js.map