find in render

This commit is contained in:
jusax23 2022-06-10 23:47:39 +02:00
parent 3994dc115f
commit f2822f219f

14
main.js
View file

@ -72,6 +72,7 @@ export class SFrame{
#preRender; #preRender;
#render; #render;
#call; #call;
#find = {};
#lastRender; #lastRender;
constructor({ preRender, render, call }){ constructor({ preRender, render, call }){
@ -84,8 +85,10 @@ export class SFrame{
} }
render(args={}){ render(args={}){
this.#lastRender = this.#render({}, args); this.#lastRender = this.#render({ find: this.#find }, args);
this.#lastRender.render; this.#lastRender.render;
for (var member in this.#find) delete this.#find[member];
Object.assign(this.#find, this.#lastRender.find);
return this.#lastRender; return this.#lastRender;
} }
@ -94,18 +97,17 @@ export class SFrame{
stear.elem.appendChild(this.#lastRender._); stear.elem.appendChild(this.#lastRender._);
this.#lastRender._.style.zIndex = layer; this.#lastRender._.style.zIndex = layer;
} }
var find = (this.#lastRender?.find) ?? {};
return new Promise((res,rej)=>{ return new Promise((res,rej)=>{
this.#call(stear,{ this.#call(stear,{
find, find: this.#find,
render: (args) => { render: (args) => {
this.render(args); this.render(args);
for (var member in find) delete find[member]; /*for (var member in find) delete find[member];
Object.assign(find, (this.#lastRender?.find) ?? {}); Object.assign(find, (this.#lastRender?.find) ?? {});*/
if ([...(stear.elem.children)].indexOf(this.#lastRender._) >= 0) stear.elem.removeChild(this.#lastRender._); if ([...(stear.elem.children)].indexOf(this.#lastRender._) >= 0) stear.elem.removeChild(this.#lastRender._);
stear.elem.appendChild(this.#lastRender._); stear.elem.appendChild(this.#lastRender._);
this.#lastRender._.style.zIndex = layer; this.#lastRender._.style.zIndex = layer;
return find; return this.#find;
}, },
resolve: (r,close=true)=>{ resolve: (r,close=true)=>{
if (close&&this.#lastRender&&[...(stear.elem.children)].indexOf(this.#lastRender._) >= 0) stear.elem.removeChild(this.#lastRender._); if (close&&this.#lastRender&&[...(stear.elem.children)].indexOf(this.#lastRender._) >= 0) stear.elem.removeChild(this.#lastRender._);